Sebastian Dröge
b98efea5aa
Allow selecting the receive color format in the source
2021-10-01 12:50:57 +03:00
Sebastian Dröge
ce45f5a673
Update README.md
2021-10-01 12:50:57 +03:00
Sebastian Dröge
8cf682d72b
Move to NDIlib_recv_capture_v3() and NDIlib_send_send_audio_v3()
...
These allow more control over the data that is being sent/received, but
require NDI SDK 4.0 or newer.
2021-10-01 12:50:57 +03:00
Sebastian Dröge
7483a66b66
Convert NDIlib_recv_color_format_e to a type alias with constants
...
There are also other values available.
2021-10-01 12:50:57 +03:00
Sebastian Dröge
c8f12b8c3b
Use a const function to create fourccs from strings
2021-10-01 12:50:57 +03:00
Samuel Alonso Rodriguez
c98b626f69
Merge pull request #73 from sdroege/ndisrc-timestamp-tracking-improvements
...
Various improvements to timestamp tracking code in the source
2021-10-01 10:50:36 +02:00
Sebastian Dröge
e642d6a4c1
Set the RESYNC flag on buffers after time tracking state was reset
2021-09-30 17:54:15 +03:00
Sebastian Dröge
0911775142
Set the discont flag on the first audio/video buffer
2021-09-30 13:33:18 +03:00
Sebastian Dröge
9a53bcd405
Implement remote/local clock estimation with the same algorithm as the RTP jitterbuffer
...
This gives fewer jumps and generally leads to smoother and more correct
results, while at the same time also being faster.
2021-09-30 13:29:12 +03:00
Sebastian Dröge
0c89e0819f
Use gst::Element::current_running_time() instead of manually implementing it
2021-09-30 11:02:26 +03:00
Sebastian Dröge
febb2fb035
Add receive-time timestamping mode
...
This directly uses the receive times of each packet.
2021-09-30 11:02:26 +03:00
Samuel Alonso Rodriguez
7c3e50c629
Merge pull request #72 from sdroege/combined-source-and-demuxer
...
Combine audio/video source into a single element and add a demuxer fo…
2021-09-30 09:51:46 +02:00
Sebastian Dröge
b3184b45bc
Combine audio/video source into a single element and add a demuxer for that
...
This simplifies the code considerably.
2021-09-29 14:48:32 +03:00
Samuel Alonso Rodriguez
0f88b3df68
Merge pull request #71 from sdroege/gst-0.17
...
Update to gstreamer-rs 0.17
2021-09-24 11:30:22 +02:00
Sebastian Dröge
291d951b01
Update to gstreamer-rs 0.17
2021-09-13 13:43:31 +03:00
Samuel Alonso Rodriguez
160571e251
Merge pull request #65 from sdroege/max-queue-length-setting
...
Make the maximum receive queue length size configurable
2021-08-17 09:56:45 +02:00
Sebastian Dröge
7604a0c596
Make the maximum receive queue length size configurable
2021-08-02 08:45:32 +03:00
Pablo Nieto
50548c8e6a
Merge pull request #55 from sdroege/sink
...
Add initial version of NDI sink
2021-03-15 13:01:43 +01:00
Sebastian Dröge
2345c455c1
Add initial version of NDI sink
...
The sink can accept audio or video directly, or if both should be
provided at once it is necesary to use the ndisinkcombiner before the
ndisink to merge both audio and video into the same stream.
Fixes https://github.com/teltek/gst-plugin-ndi/issues/10
2021-02-26 11:00:23 +02:00
Sebastian Dröge
e7b3b87757
Add safe bindings for the send API
...
Including creation of frames from GStreamer buffers.
2021-02-26 11:00:23 +02:00
Luke Moscrop
83962cbb8c
Add FFI bindings for NDIlib_send_instance_t and related functions
2021-02-26 11:00:23 +02:00
Sebastian Dröge
84e4fe7f59
Add new timestamp mode based on the receive time and timecode
...
In addition to the old one based on the receive time and timestamp.
Also make that new mode the default as it will usually give more
accurate results because the timestamp is just the send time while the
timecode is usually set by the sender based on the media timestamps.
2021-02-26 11:00:23 +02:00
Samuel Alonso Rodriguez
a02fe56871
Merge pull request #54 from sdroege/cleanups
...
Various minor cleanups
2021-02-26 09:37:16 +01:00
Sebastian Dröge
4e93604fe9
Fix various clippy warnings
2021-02-23 12:46:27 +02:00
Sebastian Dröge
bb1e1b1529
Use glib GEnum derive macro instead of implementing this manually
2021-02-23 12:40:28 +02:00
Sebastian Dröge
0aef5152a7
Simplify code for Rust 2018 a bit
2021-02-23 12:37:24 +02:00
Sebastian Dröge
eee4a65d19
Update to byte-slice-cast 1.0 and switch from lazy_static to once_cell
2021-02-23 12:29:04 +02:00
Ruben Gonzalez
c1d9c0e958
Merge pull request #51 from sdroege/timeouts
...
Only consider timeouts if configure bigger than 0
2020-09-07 20:20:45 +02:00
Ruben Gonzalez
3c5c06c9f8
Merge pull request #48 from sdroege/gstreamer-rs-0-16
...
Update to gstreamer-rs 0.16
2020-09-07 20:20:27 +02:00
Sebastian Dröge
3ea203825a
Only consider timeouts if configure bigger than 0
...
Configuring 0 will never time out.
2020-09-01 21:38:43 +03:00
Sebastian Dröge
5fa3b689f0
Update to gstreamer-rs 0.16
2020-07-27 16:10:39 +03:00
Alfonso Rodríguez Pereira
9d4e427e14
Merge pull request #47 from sdroege/device-provider
...
Add device provider
2020-01-31 10:09:25 +01:00
Alfonso Rodríguez Pereira
21d7298843
Merge pull request #46 from sdroege/ndi-sdk-4
...
Port to NDI SDK v4
2020-01-31 10:08:56 +01:00
Sebastian Dröge
4d620cd737
Allow connecting to either an NDI name or URL/address again
...
Apparently the SDK allows both but the documentation was a bit
confusing.
2020-01-20 22:01:33 +02:00
Sebastian Dröge
8d2c025e47
Allow creating source elements from the device provider and don't do discovery during element setup anymore
...
While making it possible to create elements from the device provider,
this also speeds up the connection generally when starting up the
elements.
Also add the url-address property for additional filtering in addition
to the NDI name.
2020-01-20 22:01:33 +02:00
Sebastian Dröge
f2a4699d13
Add a device provider for listing available sources
...
Fixes https://github.com/teltek/gst-plugin-ndi/issues/36
2020-01-20 22:01:33 +02:00
Sebastian Dröge
afc301de3a
Port to NDI SDK v4
...
Most notably this allows the video line stride to be set to 0, in which
case a default value is to be used, and it deprecates selecting NDI
sources by their IP address and because of that we remove the relevant
properties.
Usually the SDK will give an URL instead of an IP address now, so usage
would've been broken anyway.
2020-01-10 12:29:24 +02:00
Sebastian Dröge
05b807aff0
Fix some minor clippy warnings
2020-01-02 13:06:53 +02:00
Alfonso Rodríguez Pereira
edcb10820d
Merge pull request #45 from sdroege/update-to-gstreamer-0.15
...
Update to gstreamer 0.15 and byte-slice-cast 0.3
2019-12-23 16:24:30 +01:00
Sebastian Dröge
6aea804c6c
Update byte-slice-cast to 0.3
2019-12-19 01:04:59 +02:00
Sebastian Dröge
5923adf333
Update to gstreamer 0.15 bindings release
2019-12-19 01:04:59 +02:00
Ruben Gonzalez
5f020ad5b8
Merge pull request #43 from UbiCastTeam/master
...
fix comparaison to detect source uniqueness in a pipeline, fixes #42
2019-08-30 10:20:29 +02:00
Ruben Gonzalez
732100f293
Merge pull request #41 from sdroege/calculate-linear-regression
...
Depend on gstreamer 0.14.4 for gst::calculate_linear_regression()
2019-08-30 08:13:48 +02:00
Amaury Denoyelle
5e10693aa6
fix comparaison to detect source uniqueness in a pipeline, fixes #42
2019-08-23 17:23:52 +02:00
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
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
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