Commit graph

245 commits

Author SHA1 Message Date
Sebastian Dröge 9c540d8abb Move everything to net/ndi for preparing to merge into gst-plugins-rs 2022-10-12 19:25:32 +03:00
Samuel Alonso Rodriguez 12656afe7d
Merge pull request #98 from ubifred/master
Error out on EOS event if no src pad exist
2022-04-09 11:59:53 +02:00
Frédéric Chanal 03d4d916f5 Error out on EOS event if no src pad exist
This let the application get an error message when ndisrc emits an EOS
triggered by 'connect-timeout' for instance.

Without this, a simple gst-launch-1.0 ndisrc pad-name="badname"
connect-timeout=1000 ! ndisrcdemux ! fakesink will block.
2022-04-05 16:32:47 +02:00
Samuel Alonso Rodriguez 08b52ffd2f
Merge pull request #96 from ubifred/master
Drop NdiSrcMeta after ndisrcdemux
2022-03-28 19:11:06 +02:00
Frédéric Chanal 71dd5182f3 Drop NdiSrcMeta after ndisrcdemux
The NdiSrcMeta is no longer needed after the demux and if kept, it
generates many errors as the transform_func() always false.
2022-03-25 10:36:16 +01:00
Samuel Alonso Rodriguez 83797e9df3
Merge pull request #94 from seungha-yang/audio-discont
Set discont flag on the first audio buffer correctly
2022-02-28 19:15:10 +01:00
Seungha Yang b682833cca Set discont flag on the first audio buffer correctly
Fixing typo which should check audio buffer not video
2022-02-28 22:16:45 +09:00
Samuel Alonso Rodriguez 1d5089dfa7
Merge pull request #91 from sdroege/gst-0.18
Update to gstreamer-rs 0.18
2022-02-26 20:07:37 +01:00
Sebastian Dröge ddb3bde942 Remove unused TimeMapping struct 2022-01-22 12:13:04 +02:00
Sebastian Dröge c221e9e870 Update to gstreamer-rs 0.18 2022-01-22 12:12:03 +02:00
Samuel Alonso Rodriguez c05f2bca27
Merge pull request #87 from teltek/fixed_doc
fixed doc
2021-11-12 13:11:33 +01:00
Samuel 4a8848e5e9 fixed Doc 2021-11-12 13:10:42 +01:00
Samuel 1818a5a7a2 Merge branch 'master' of github.com:teltek/gst-plugin-ndi into fixed_doc 2021-11-12 13:08:15 +01:00
Samuel Alonso Rodriguez 4b00c7d40b
Merge pull request #84 from sdroege/unsigned-c-char
Fix compilation on platforms with unsigned `c_char`
2021-11-12 13:07:47 +01:00
Samuel d568d85c4b fixed doc 2021-11-09 09:34:07 +01:00
Sebastian Dröge 3acaaa50f4 Fix compilation on platforms with unsigned c_char
Fixes https://github.com/teltek/gst-plugin-ndi/issues/83
2021-11-05 09:50:20 +02:00
Samuel Alonso Rodriguez cdfa63f341
Merge pull request #76 from sdroege/require-gstreamer-0.17.4
Require at least version 0.17.4 of the GStreamer core bindings
2021-10-06 12:36:16 +02:00
Sebastian Dröge 8585ef1e66 Require at least version 0.17.4 of the GStreamer core bindings
Fixes https://github.com/teltek/gst-plugin-ndi/issues/75
2021-10-06 12:53:51 +03:00
Samuel Alonso Rodriguez 74b47f016f
Merge pull request #74 from sdroege/src-compressed-data
Add support for receiving compressed data from the source
2021-10-02 11:02:29 +02:00
Sebastian Dröge f890abe5cb Add support for receiving compressed data from the source
This requires building against and using the NDI Advanced SDK and is
opt-in via the "advanced-sdk" cargo feature.
2021-10-01 13:12:14 +03:00
Sebastian Dröge db6b9531ca Add various header definitions from the NDI advanced SDK 2021-10-01 12:50:57 +03:00
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