Commit graph

1007 commits

Author SHA1 Message Date
Sanchayan Maity
5639a0640e net/hlsmultivariantsink: Add since marker to fix doc build failure
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1515>
2025-01-28 16:37:35 +05:30
Sanchayan Maity
05b5aa939f hlsmultivariantsink: Add hlssink3 and cmafmux as dev dependencies
This is required for the hlsmultivariantsink tests to work. Also
register the plugins before running the test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1515>
2025-01-28 16:37:35 +05:30
Sanchayan Maity
362898cd54 hlsmultivariantsink: Enable MPEG-TS codec string support only for Linux
For the MPEG-TS case, we depend on cros-codecs for parsing SPS to get
the relevant information for building codec strings. Do not compile it
for non-linux platforms. Users needing MPEG-TS on non-linux platform
need to set codec string manually as a workaround.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1515>
2025-01-28 16:37:35 +05:30
Sanchayan Maity
4218e88fce Add HLS sink with multi-variant playlist support
`hlsmultivariantsink` adds support for the following as per RFC 8216

- Multivariant/master playlist
- Alternate Renditions
- Variant Streams

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1515>
2025-01-28 16:37:35 +05:30
Yaakov Selkowitz
f7ba4c40a7 Add missing copies of license files
This should fix the crates that are missing license files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2050>
2025-01-27 19:26:53 -05:00
Sebastian Dröge
aa06572e42 mpegtslivesrc: Handle zero-byte adaption fields
Simply skip over them instead of handling them as parse error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2047>
2025-01-21 14:22:54 +02:00
Tim-Philipp Müller
74760e1b42 rtp: ac3: validate depayloaded AC-3 data in unit tests
Check for valid frame header.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2044>
2025-01-20 18:32:50 +00:00
Tim-Philipp Müller
f6d21810ff rtp: tests: add run_test_pipeline variants with data validation
So we can actually check the content of depayloaded buffers too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2044>
2025-01-20 18:32:50 +00:00
Tim-Philipp Müller
5ccef7a453 rtpac3depay2: fix handling of non-fragmented payloads
The frames of a non-fragmented payload would contain
an extra two bytes before the frame sync and then
missing two bytes at the end which which would cause
decoding errors on the last block and/or frame crc
check failures.

This happened because we didn't take into account
the 2-byte packet payload header when creating output
sub-buffers, as the offsets we were using were in
relation to the payload data after the headers.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/645

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2044>
2025-01-20 18:32:50 +00:00
Mathieu Duponchelle
c51a65d973 awstranscriber, speechmatics: store language tags on translation source pads
In order to do so we need to activate the pad as soon as it is added,
which means we can no longer start the task at this point, instead wait
for stream-start to do so now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2029>
2025-01-20 14:27:05 +00:00
Sebastian Dröge
8e62e54cc9 rtp: basepay: Only forward buffers if we have a segment
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.

Also reject any incoming buffers if no segment was received.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2037>
2025-01-15 09:43:12 +00:00
Sebastian Dröge
536f4db5c1 rtp: basedepay: Only forward buffers if we have a segment
If there are pending buffers without a segment then they must come from
the caps only and should be forwarded at a later time, if any.

Also reject any incoming buffers if no segment was received.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2037>
2025-01-15 09:43:12 +00:00
Sebastian Dröge
7b4665c793 Fix some new clippy 1.84 warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2032>
2025-01-10 10:08:38 +02:00
Sebastian Dröge
81ff664666 rtp: Add AMR NB/WB RTP payloader/depayloader
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2016>
2025-01-02 16:42:14 +00:00
Sebastian Dröge
38e8134edd Update to itertools 0.14
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2018>
2025-01-01 12:46:07 +02:00
Sanchayan Maity
3aa1fa81b5 net/quinn: Update QUIC multiplexing examples for WebTransport
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1966>
2024-12-30 09:40:43 +05:30
Sanchayan Maity
59cc4af3ba net/quinn: Support stream multiplexing in quinnwtclientsrc
While at it, drop the use-datagram property since the data handler
thread receives data for both streams and datagram irrespective of
the property.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1966>
2024-12-30 09:40:43 +05:30
Sanchayan Maity
a02296eb95 net/quinn: Support stream multiplexing in quinnwtserversink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1966>
2024-12-30 09:40:43 +05:30
Ruben Gonzalez
ebfa0fb890 deps: update itertools to 0.13
same used in gstreamer-rs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2002>
2024-12-20 16:23:52 +00:00
Sanchayan Maity
e21e07c46a net/quinn: Fix ChildProxy implementation for muxer & demuxer
The demuxer did not need the ChildProxy implementation while
the muxer was missing the call to child_added, child_removed
and the interface entry in ObjectSubclass.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1998>
2024-12-20 17:45:50 +05:30
Thibault Saunier
1e3eef253b webrtcsrc: Add a 'connect-to-first-producer' property
This is an helper property which allows to avoid requiring to know
peer IDs, which is very useful during development.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/386
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1996>
2024-12-19 14:32:16 +00:00
Sebastian Dröge
7d4ddc7eb9 webrtc: Specify to use playbin3 instead of playbin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1995>
2024-12-18 07:31:17 +00:00
Sebastian Dröge
248b7ac059 webrtcsink: Configure custom host/port on the signaller when running signalling server internally
Otherwise it just tries connecting to the default URL, which doesn't
work if either the host or the port are changed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1994>
2024-12-17 16:22:41 +02:00
Sebastian Dröge
6a8f1bdc61 mpegtslivesrc: Parse PES packets and check for reasonable PTS/DTS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1977>
2024-12-13 13:11:16 +00:00
Sebastian Dröge
44978159a3 mpegtslivesrc: Refactor section parser
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1977>
2024-12-13 13:11:16 +00:00
Mathieu Duponchelle
8886cceaf0 webrtcsink: add nvh265enc support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1980>
2024-12-11 08:07:15 +00:00
Mathieu Duponchelle
be00ae7999 aws/polly: expose property for overflow control
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1965>
2024-12-10 14:19:30 +00:00
Andoni Morales Alastruey
1ba2468a05 quinn: fix clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
b020ae6fc2 quinn: fix racy tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
2d6f084596 quinn: ignore the test using the hostname
Ignore the test for now, since the CI runners only resolve to
an IPv6 address which are not handled correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
a791cfff2b quinn: allow unsecure connections in WebTransport elements
WebTransport requires a secure connection, but certificates
can have a validity of 2 weeks. For testing, a new property
is added to allow unsecure connections.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Sanchayan Maity
be02c0e388 net/quinn: Move quinnwtclientsrc to PushSrc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Sanchayan Maity
850331699a net/quinn: Use LazyLock instead of once_cell::Lazy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
d80c4c4351 quinn: add tests for WebTransport
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Ruben González
6fed4acf53 quinn: add a new WebTransport server sink
Co-authored-by: Andoni Morales Alastruey <amorales@fluendo.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
ef21a6aa3b quinn: add a new WebTransport client element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
62e49b3ed5 quinn: add support for Sec1 keys
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
cf8b49b257 quinn: make private key optional for clients
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Andoni Morales Alastruey
4104ebca25 quinn: cleanup transport config creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1867>
2024-12-09 12:26:48 +00:00
Taruntej Kanakamalla
c9a0731e61 webrtc: use the nick to set enum type properties on openh264enc
The properties `rate-control` and `complexity` are of enum types and passing
a gint value is resulting in a panic. So pass the corresponding nick of the enum
value instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1970>
2024-12-05 17:28:09 +05:30
Sebastian Dröge
050e582366 mpegtslivesrc: Reset rate to 1/1 on disconts and flush observations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1964>
2024-12-03 10:38:48 +02:00
Guillaume Desmottes
45519a7d85 webrtc: janus: handle slowlink event
Fix this warning:

webrtc-janusvr-signaller imp.rs:426:gstrswebrtc::janusvr_signaller:👿:Signaller::handle_msg:<GstJanusVRWebRTCSignallerU64@0x7f317009b4d0> Unknown message from server: {
   "janus": "slowlink",
   "session_id": 980554280060589,
   "sender": 5867141593320621,
   "mid": "video0",
   "media": "video",
   "uplink": false,
   "lost": 15
}

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1929>
2024-12-02 15:38:24 +00:00
Guillaume Desmottes
867c2b78b6 webrtc: janus: handle slow_link videoroom event
Fix this warning:

webrtc-janusvr-signaller imp.rs:426:gstrswebrtc::janusvr_signaller:👿:Signaller::handle_msg:<GstJanusVRWebRTCSignallerU64@0x7f317009b4d0> Unknown message from server: {
   "janus": "event",
   "session_id": 980554280060589,
   "sender": 5867141593320621,
   "plugindata": {
      "plugin": "janus.plugin.videoroom",
      "data": {
         "videoroom": "slow_link",
         "current-bitrate": 0
      }
   }
}

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1929>
2024-12-02 15:38:24 +00:00
Sebastian Dröge
6ee745edee Update for GLib signal accumulator API changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954>
2024-11-30 15:10:06 +02:00
Sebastian Dröge
6aeb3f2af2 Fix / silence various new Rust 1.83 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954>
2024-11-30 14:57:24 +02:00
Mathieu Duponchelle
9c844acba5 aws/transcriber: fix unsynced_translate_src_%u presence
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
f16f8f69d5 aws/transcriber: don't adjust late item duration
It makes for a better user experience to simply adjust the pts of a late
item, but to preserve its duration: for instance a speech synthesis
element might use the duration as a hint for speeding up the audio.

Future late items may also be similarly offset anyway.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
9972c83c60 aws/transcriber: put posting of warning messages behind property
Repeated warning messages are fairly noisy with gst-launch, better make
this behavior opt-in.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
4d45ae0e44 aws/polly: expose ssml-set-max-duration property
With standard voices, AWS polly supports passing a max-duration
attribute.

When the element gets raw text passed in, it can wrap it as SSML and set
the max duration attribute, this to make sure synthesized speech
doesn't overlap.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
c57b74e269 awstranscriber: release matching unsynced pad along request pads
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00