Commit graph

3497 commits

Author SHA1 Message Date
Sebastian Dröge
b17773a574 rav1e: Fix build after videoencoder API changes 2019-08-14 22:12:26 +03:00
ahamedsajeer.15
9119349c08 reqwesthttpsrc: add timeout 2019-08-13 17:41:06 +03:00
François Laignel
0e11ac87d3 Update for new {Value, StructureRef}::get signature
See https://github.com/gtk-rs/glib/pull/513
and https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/merge_requests/310
2019-08-13 15:29:28 +02:00
Mathieu Duponchelle
da2332d814 ts-queue: Make PendingQueue a proper struct 2019-08-09 11:44:47 +00:00
Mathieu Duponchelle
892c812669 ts-queue: split up enqueue_item
This is far from a full refactoring, but it makes the current
implementation slightly easier to understand
2019-08-09 11:44:47 +00:00
ahamedsajeer.15
f2dca12de6 reqwesthttpsrc: add http auth 2019-08-09 12:23:23 +05:30
Ray Tiley
ccd607707d threadsharing/udpsrc: Fix build on Windows 2019-08-08 10:32:19 -04:00
ahamedsajeer.15
923f6e3a5c reqwesthttpsrc: add is-live property 2019-08-07 19:20:48 +00:00
Sebastian Dröge
1e71767b40 cdg: Update to image 0.22 and cdg_renderer 0.3 2019-08-07 15:52:50 +03:00
Ruben Gonzalez
8e3c6c39b7 Update README (fix #38) 2019-08-06 23:23:22 +02:00
Ruben Gonzalez
842603482b
Merge pull request #40 from sdroege/negotiate
Don't do anything in BaseSrc::negotiate()
2019-08-06 23:17:03 +02:00
Sebastian Dröge
7246b1b147 Don't do anything in BaseSrc::negotiate()
We can't negotiate anything meaningful with downstream and will always
set the caps based on the data we receive in ::create() later.
2019-08-06 18:48:24 +03:00
ahamedsajeer.15
324b205926 reqwesthttpsrc: add user-agent header to request 2019-08-06 08:04:16 +00:00
Philippe Normand
0fcc0cb2d3 reqwest: Rename again reflecting the crate name
rshttp is too generic, so rename the plugin in a similar fashion as most other
GStreamer Rust plugins in this repository.
2019-08-02 16:34:53 +01:00
Charlie Turner
a844d765da reqwesthttpsrc: name lib the same as plugin name
Otherwise it won't be discoverable by gst-inspect-1.0 or registry
lookup.
2019-08-02 10:45:17 +01:00
Charlie Turner
7137d3d389 rav1enc: PixelRange::Unspecified was removed.
1f8f62a04dca13302ccef6371ec5211a001ed356 in rav1e removed this
enumeration. They changed the default value from Unspecified to
Limited, so that's what I've done here as well.
2019-08-02 10:13:14 +01:00
rubenrua
892e54ac4d Reorder ndisys to reduce complexity 2019-07-30 17:52:15 +02:00
rubenrua
b0b42f8f17 Fix travis CI 2019-07-30 17:29:42 +02:00
Ruben Gonzalez
43eee4740b
Merge pull request #37 from sdroege/rust-2018
Switch to 2018 edition
2019-07-30 17:06:33 +02:00
ahamedsajeer.15
4b4a2798b6 reqwesthttpsrc: Set offset field on outgoing buffers 2019-07-24 11:17:14 +00:00
ahamedsajeer.15
367ca9b996 reqwesthttpsrc: Map error response codes to the correct error messages 2019-07-24 11:17:14 +00:00
ahamedsajeer.15
542f68dd07 reqwesthttpsrc: Add a seeking test 2019-07-24 11:17:14 +00:00
Sebastian Dröge
59f004de24 togglerecord: Update parking_lot to 0.9 2019-07-24 13:52:40 +03:00
Sebastian Dröge
c888094f68 Update to url 2.0 where we can 2019-07-24 13:38:36 +03:00
Sebastian Dröge
1a20ec4c2c Add myself to the authors list in Cargo.toml 2019-07-23 14:26:04 +03:00
Sebastian Dröge
57d928ad96 Switch to 2018 edition
Fixes https://github.com/teltek/gst-plugin-ndi/issues/15
2019-07-23 14:26:04 +03:00
Ruben Gonzalez
060190d59a
Update README.md 2019-07-23 07:22:52 +02:00
Ruben Gonzalez
a0c5b24fb8
Merge pull request #34 from sdroege/safe-ndi-wrapper
Lots of improvements
2019-07-23 07:19:04 +02:00
Sebastian Dröge
cd741f37be Fix compilation with --no-default-features 2019-07-22 09:12:04 +03:00
Sebastian Dröge
3ac1a6b288 Handle receiving in the beginning without clock gracefully
We'll only have a clock once the source element is actually in Playing.
2019-07-19 13:00:27 +03:00
Sebastian Dröge
bbdfae8cdd Compare IP addresses in lowercase
Only really relevant for IPv6.
2019-07-19 12:55:18 +03:00
Sebastian Dröge
98c290602c Improve error reporting/handling
And minor refactoring.
2019-07-19 12:51:06 +03:00
Sebastian Dröge
d352a0c20d Print all found sources in the debug log 2019-07-19 12:15:08 +03:00
Sebastian Dröge
5e5007091e Always return 1 frame of latency except for timecode mode
This allows for some slack when receiving, as up to 1 frame difference between
receive times can easily happen because of capturing alone.

And return 5 frames maximum latency as that is the size of our internal
queue.
2019-07-19 11:37:33 +03:00
Sebastian Dröge
fa9f788190 Improve type-safety a bit by making the Receiver generic over the stream type 2019-07-19 11:34:20 +03:00
Sebastian Dröge
33370e42ad Collect observations for the timestamp/receive time mappings and smoothen them
This allows keeping audio/video more in sync with how the sender was
sending it, while also handling network jitter and clock drift in a
reasonable way.
2019-07-19 10:52:47 +03:00
Sebastian Dröge
66d4fd1d90 Move connecting and capturing to separate threads
This ensures that we'll be able to capture every frame even if
downstream of the source is blocking for a moment, and also allows us to
make all operations cancellable.
2019-07-18 15:44:31 +03:00
Sebastian Dröge
19d25d20a7 Implement cancellation of connection attempts 2019-07-17 12:12:58 +03:00
Sebastian Dröge
f27c2507c5 Refactor huge create() functions into multiple smaller functions
And don't hold any mutexes when unnecessary, especially not while trying
to receive a frame.
2019-07-17 11:44:53 +03:00
Sebastian Dröge
cd0726b037 Make RecvInstance reference counted and allow lock-less capturing 2019-07-17 11:01:40 +03:00
Sebastian Dröge
34858762f7 Consolidate element properties
stream-name is called ndi-name everywhere in the NDI SDK and documentation
ip is called ip-address everywhere

Rename loss-threshold to timeout and change it to be in milliseconds
instead of iterations.

Add connect-timeout for timeout during connection

Add bandwidth and receiver-ndi-name properties, and initialize the
latter with a reasonable default value.
2019-07-17 11:01:40 +03:00
Sebastian Dröge
8b00e80316 Add property for selecting between different timestamping modes 2019-07-17 11:01:40 +03:00
Sebastian Dröge
a4890d3295 Add timestamp/timecode into ReferenceTimestampMeta on every buffer 2019-07-16 16:03:15 +03:00
Sebastian Dröge
fabcc65460 Properly support interlaced video and signal it correctly in the caps and buffer flags 2019-07-16 13:07:50 +03:00
Sebastian Dröge
a500b5297b Simplify boolean expression 2019-07-16 12:49:31 +03:00
Sebastian Dröge
b91d23521f Remove unnecessary TODO comment 2019-07-16 12:49:31 +03:00
Sebastian Dröge
cd8bca11aa Run everything to rustfmt to give it a consistent indentation 2019-07-15 20:38:00 +03:00
Sebastian Dröge
4ebcd78acc Print frame timestamp/timecode in debug output 2019-07-15 20:38:00 +03:00
Sebastian Dröge
75eb959c80 Add support for all other video formats 2019-07-15 20:38:00 +03:00
Sebastian Dröge
5022ff412c Fix caps negotiation
We can't just fixate to any close to what we receive right now but only
support exactly the caps we receive. So check the format of each frame
and negotiate exactly those caps as needed when receiving frames.

Also re-negotiate if the caps are ever changing.
2019-07-15 20:13:12 +03:00