Commit graph

3498 commits

Author SHA1 Message Date
Sebastian Dröge
06e5d7cb95 Depend on gstreamer 0.14.4 for gst::calculate_linear_regression()
Instead of having our own unsafe binding for it.
2019-08-14 22:49:55 +03:00
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