Commit graph

4244 commits

Author SHA1 Message Date
Seungha Yang
00b7ebab48 awstranscriber2: Handle multiple stream-start event
Do not spawn new task loop with channel if we have one already.
The same change as 731ceb58bd
for awstranscriber2

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2404>
2025-08-05 14:26:38 +00:00
Mathieu Duponchelle
47a3d4a37f speechmatics: expose mask-profanities property
When enabled, words tagged as profanities are replaced with an
equal-sized amount of "*"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2344>
2025-08-05 11:46:22 +00:00
Taruntej Kanakamalla
4e2c16a2af Revert "threadshare: udp: avoid getifaddrs in android"
This reverts commit 75a0baa6fa.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1918>
2025-08-05 11:20:06 +00:00
Xavier Claessens
78c8d4df55 webrtcsink: Move videorate before videoconvert and videoscale
Since videorate has drop-only=true, this could reduce the number of
frames to convert and scale.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2402>
2025-08-05 10:56:54 +00:00
Sanchayan Maity
44a632811e hlsmultivariantsink: Update version tag in tests
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2415>
2025-08-05 13:07:11 +05:30
Sanchayan Maity
750fd2c589 hlsmultivariantsink: Fix master playlist version
hlscmafsink already uses version 6 as use of tags like EXT-X-MAP
require version 5 and above.

As per RFC 8216, the value of EXT-X-VERSION tag (Section 4.3.1.2)
SHOULD NOT be greater than what is required for the tags & attributes
in the Playlist (see Section 7).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2415>
2025-08-05 13:07:11 +05:30
Sebastian Dröge
45c30065a7 tracers: Update to etherparse 0.19
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2414>
2025-08-05 09:59:48 +03:00
Sebastian Dröge
9ccf887553 mpegtslivesrc: Remove leftover debug message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2412>
2025-08-04 16:30:55 +03:00
François Laignel
907fca2aa2 threadshare: fix regression in ts-proxysrc
This [MR] introduced a race condition when the `ts-proxysink` started pushing
items before `ts-prosysrc` had started.

This commit reverts the changes to `ProxySrcTask::start`: wake up the pending
queue when starting the task. Also applies this to `ts-queue` even though the
race condition is less likely to happen.

[MR]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2400

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2405>
2025-07-30 16:24:48 +02:00
François Laignel
21578ccb83 threadshare: fix flush for ts-intersrc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2400>
2025-07-29 20:40:48 +02:00
François Laignel
ecc198e5c2 threadshare: fix flush for ts-queue ts-proxy
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2400>
2025-07-29 20:40:48 +02:00
François Laignel
9f4a8d3eeb tracers: queue-levels: add support for threadshare DataQueue related elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2399>
2025-07-29 15:55:00 +02:00
François Laignel
2f10e6e23f threadshare: add cur-level properties to DataQueue related elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2399>
2025-07-29 15:55:00 +02:00
Seungha Yang
42a72d034e transcriberbin: Release lock before forwarding caps event
Don't hold lock while sending caps events

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2398>
2025-07-28 14:56:03 +00:00
Seungha Yang
37a5acc788 transcriberbin: Fix handling of upstream latency query
Forward latency query upstream instead of downstream.
Fix regression introduced by 4074f4c275

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2398>
2025-07-28 14:56:03 +00:00
Matthew Waters
f55641f5ca ceaX08overlay: support ANY caps features
Allows e.g. memory:GLMemory as long as meta::GstVideoOverlayCompositionMeta is
supported downstream.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/710
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2390>
2025-07-25 01:33:57 +00:00
Mathieu Duponchelle
9451c821ae cea708mux: expose "discarded-services" property on sink pads
This can be useful when muxing in an original caption stream with
a newly-created one (eg transcription / translation), in which case one
might wish to discard select services from the original stream in order
to avoid garbled captions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2389>
2025-07-24 14:41:01 +00:00
Taruntej Kanakamalla
486a373dcb net/webrtc/whep: add WHEP client signaller
Rewrite the whepsrc element with WHEP Client as a signaller
on top of webrtcsrc

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1545>
2025-07-24 14:11:35 +00:00
Taruntej Kanakamalla
6d0cdb30f2 webrtcsrc: add capability to initiate offer and handle answer
- add the handler for session-request signal from the signaller
to initiate an offer

- rename `handle_offer` function as `handle_remote_description` to use
if for the both remote offer and answer.

- in the function `remote_description_set` add checks to deal with answer and
offer separately

- in the session-description signal handler, call the handle_remote_description
for both offer and answer type remote description

- add a new member clock_rate in the Codec struct which is determined from the depayloader
pad templates

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1545>
2025-07-24 14:11:34 +00:00
François Laignel
34462445e8 ts-audiotestsrc: fix non-desirable harmonics
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2392>
2025-07-23 17:02:17 +00:00
François Laignel
00cd58a21c ts-audiotestsrc: actually use volume & mute properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2392>
2025-07-23 17:02:17 +00:00
François Laignel
b5af06c88b rtpmp4apay2: fix payload size prefix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2391>
2025-07-23 17:53:16 +02:00
Mathieu Duponchelle
0a7cbb8d59 awstranscriber2: add property for setting show_speaker_labels
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2240>
2025-07-22 18:51:10 +00:00
François Laignel
79f5bc96d9 threadshare: udpsrc / tcpclientsrc: latency report
Incoming packets might be pushed up to `context-wait` late if the scheduler
just parked due to no tasks needing progress.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2387>
2025-07-17 19:19:44 +02:00
François Laignel
10ec242460 ts-intersink: post Latency message on first buffer
Push a Latency message on first buffer, so as to make sure latency is properly
configured even with dynamic pipelines.

Future improvement: implement Prerolling & async state change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2387>
2025-07-17 19:19:42 +02:00
François Laignel
3a53d857b8 ts-audiotestsrc: rework
This element didn't comply with usual convetions.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2387>
2025-07-17 19:18:48 +02:00
François Laignel
ff77fc0089 Update gst_plugins_cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2382>
2025-07-17 10:32:27 +00:00
François Laignel
7781dff8e5 rtp: basepay: fix timestamp property's range
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2382>
2025-07-17 10:32:27 +00:00
François Laignel
c9b08188f2 ts-rtpdtmfsrc: fix some property ranges
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2382>
2025-07-17 10:32:27 +00:00
Sebastian Dröge
715a6bcd69 rtpbin2: add send / recv examples
Co-authored-by: Sebastian Dröge <sebastian@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2360>
2025-07-17 10:58:49 +03:00
Sebastian Dröge
31af6cb46b rtprecv: Drop state lock before chaining RTCP packets from the RTP chain function
Otherwise the state lock is taken twice and will cause a deadlock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2381>
2025-07-16 18:03:36 +03:00
Sebastian Dröge
71d723de48 Update CHANGELOG.md for 0.14.0 2025-07-16 14:28:41 +03:00
Sebastian Dröge
cfe5da44cb Update versions to 0.15.0-alpha.1 2025-07-16 14:28:41 +03:00
François Laignel
96dde2d337 ts-inter: fix racy test
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2380>
2025-07-16 12:24:25 +02:00
François Laignel
716ac58a20 threadshare: src elements: don't pause the task in downward state transitions
The threadshare async Task doesn't cancel a currently running iteration. If the
streaming thread is blocked, the iteration will not return blocking the state
change.

This commit skips the `pause` transition for the src elements, so a blocked
iteration can be interrupted transitioning to `Stop`.

Also make sure the stop transition is called chaining the state change up.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2380>
2025-07-16 12:18:10 +02:00
Sebastian Dröge
9612655f50 Update to async-tungstenite 0.30
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2379>
2025-07-16 11:50:17 +03:00
Sebastian Dröge
e848fb67d5 Update CHANGELOG.md for 0.13.7 2025-07-16 10:33:02 +03:00
Sebastian Dröge
3d088278da Update CHANGELOG.md for 0.13.6 2025-07-16 10:33:02 +03:00
François Laignel
50c6e42b58 ts-intersrc: handle dynamic inter-ctx changes
Users can now update the `inter-context` property of a `ts-intersrc`, which will
disconnect from the `ts-intersink` associated with previous value of
`inter-context` and attempt to connect to the `ts-intersink` associated with the
new value.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2378>
2025-07-16 06:44:34 +00:00
François Laignel
858aee39b5 ts: inter: better ParamSpec Builder usage
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2378>
2025-07-16 06:44:34 +00:00
François Laignel
1ce1a41ca7 rtprecv: optimize src Pad scheduling
This commit implements optimizations to reduce the number of threads and
context switches necessary to handle items on src Pads.

1. A single task for all src pads in a session

Instead of starting one pad task (thread) per src pad in a session, we can
spawn a single async task that dequeues all ready items out of the jitter
buffers and pushes them to their respective src pads.

2. Handle downstream-travelling items immediately when possible

It is possible to immediately handle downstream-travelling items without queuing
them in the jitter buffer:

* for an RTP packet, if the packet is the next packet that we were expecting
  and the src Pad's jitter buffer is empty.
* for a downstream query or event if the src Pad's jitter buffer is empty.

Otherwise, the item needs to be enqueued in the jitter buffer.

3. Making sure the above strategies play well together

If a jitter buffer is empty because the src pad task just dequeued items,
the sink pad might push incoming items before the src pad task had time to push
the dequeued items, which would break ordering.

In order to avoid this situation, each src pad uses a semaphore which is held
from the moment when the sink pad or the src pad makes decisions regarding the
jitter buffer and hold it as long as necessary so as to guarantee ordering.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2346>
2025-07-15 15:30:08 +00:00
François Laignel
41ea936e51 rtpbin2: allow process-wide RUNTIME thread related configuration...
... using env vars.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2346>
2025-07-15 15:30:08 +00:00
François Laignel
c575c93d89 rtprecv: pass RtpRecvSrcPad around instead of only the JitterBufferStore
This allows accessing the src pad too (e.g. to get its name), which can ease
log intepretation when multiple ssrc are involved and more will also ease
subsequent commits.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2346>
2025-07-15 15:30:08 +00:00
François Laignel
618a348b28 rtpbin2: add a bit of documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2346>
2025-07-15 15:30:07 +00:00
Sebastian Dröge
19e92e5625 rtp: Update to rtcp-types 0.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2373>
2025-07-15 14:34:51 +03:00
Sebastian Dröge
98b61b1e56 rtprecv: Improve detection of rtcp-mux RTCP packets received on the RTP sink pad
Most RTCP packets are also valid RTP packets and just have the marker
bit set and a payload type between 64 and 95. If we don't know RTP caps
for such packets, try parsing them as RTCP packet instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2362>
2025-07-15 10:48:12 +00:00
Vivia Nikolaidou
20eb83367d tttocea{6,7}08: Disallow pango markup from input caps
Otherwise the elements treat pango markup as plain text, making the text
appear corrupted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2367>
2025-07-15 10:04:38 +00:00
Sebastian Dröge
f01565cd69 quinn: Remove unused once_cell dependency 2025-07-15 13:00:28 +03:00
Mathieu Duponchelle
362a1a22ce cea708mux: fix clipping function
The intention of the original implementation was to clip buffers outside
the segments, but the second map was getting Some(None) in that case.

Fix by using `and_then` for a flat map

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2372>
2025-07-15 08:38:37 +03:00
Sebastian Dröge
3a6a78d07f Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2317>
2025-07-14 16:34:47 +00:00