Mathieu Duponchelle
959463ff65
webrtcsink: fix session not in place errors
...
The InPlace/Taken logic was introduced to avoid using an extra lock
around the session, but it places expectations that are not always
obvious to meet around when a session is expected to be taken or not.
Any code that expects to have access to the sessions at all times thus
needs either extra logic in the session wrapper, or to maintain the
state of the session outside of the session (eg mids).
This commit removes the logic, and wraps sessions in Arc<Mutex>>.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1852 >
2024-10-17 12:29:53 +00:00
Mathieu Duponchelle
ef06421a25
webrtcsrc: make updated transceiver retrieval backward compatible
...
In 1.24 and before transceivers for remote sendonly medias are only
created at answer time. If that is the case, we can add the transceiver
ourself, it will get associated when creating the answer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1853 >
2024-10-16 14:48:20 +00:00
Mathieu Duponchelle
82d0eaf438
webrtcsrc: fix debug message on offer created
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1853 >
2024-10-16 14:48:20 +00:00
Mathieu Duponchelle
3d257b4819
webrtcsink: improve debut message when start session failed
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1853 >
2024-10-16 14:48:20 +00:00
Chris Bainbridge
785209cc7f
custom-signaller: add missing manual-sdp-munging property
...
All signallers must now implement this property
Fixes #611
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1854 >
2024-10-16 15:45:50 +02:00
Mathieu Duponchelle
5f0ca7acde
webrtcsink: fix custom_signaller hanging
...
Since 6a23ae168f
, the chain function
of webrtcsink adds a custom meta on input buffers.
That custom meta was registered only by the class_init of the subclasses
of BaseWebRTCSink, but the custom signaller example uses
BaseWebRTCSink::with_signaller() directly.
Fix by registering the meta in BaseWebRTCSink::class_init()
Fixes : #610
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1854 >
2024-10-16 15:25:09 +02:00
Sebastian Dröge
628dee9079
gtk4: Use a correctly typed None value when retrieving the paintable property fails
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/609
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1850 >
2024-10-14 18:22:04 +03:00
Mathieu Duponchelle
5e49f1d10e
webrtcsrc: address non-compliant transceiver creation
...
Instead of adding transceivers explicitly then setting the remote
description, expecting the manually added transceivers to get picked
up, we pass a promise to set-remote-description-set, and set the
relevant properties on the automatically created transceivers at that
point.
We then call create-answer and proceed as before.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/596
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1829 >
2024-10-14 11:19:38 +00:00
Guillaume Desmottes
027eead86d
webrtc: janus: add 'janus-state' property to the sink
...
This property can be used by applications to track the state of the
signaller, especially to know when the stream is up.
Fix #510
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1505 >
2024-10-10 10:59:50 -04:00
Guillaume Desmottes
d8b9a7a486
webrtc: janus: fix typo in doc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1505 >
2024-10-10 10:57:02 -04:00
Matthew Waters
d4fd21d197
rtp2/jitterbuffer: check for event query earlier
...
If a serialized query arrives (e.g. allocation) and the jitterbuffer has never
received a packet, then jitterbuffer would never forward the serialized query
resulting in a hang.
Fix by forwarding queries/events before the conditions that require the first
packet to arrive.
Also update unit test to check for this scenario.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1846 >
2024-10-09 16:21:13 +00:00
Ray Tiley
06c8874752
[cea608overlay] - don't indent centered text.
...
Adding the additional 10% padding was causing captions to render to far
to the right.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1845 >
2024-10-08 16:30:43 -04:00
Mathieu Duponchelle
b3ace3678b
webrtcsink: fix naming of error dot files for discovery pipelines
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1843 >
2024-10-03 14:35:45 +00:00
Jordan Petridis
3788914cea
ci: Specify the number of build jobs on windows
...
Followup to b5e0e071
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1840 >
2024-10-03 10:32:22 +00:00
Jordan Petridis
24ffee3fd6
ci: Use cargo nextest as the test runner and export junit reports
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1840 >
2024-10-03 10:32:22 +00:00
Guillaume Desmottes
2fc8d6a27d
togglerecord: provide details when RT assertion fails
...
We hit this assertion once during our tests but it's unclear why.
This change will hopefully help us understanding what's going on next
time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1809 >
2024-10-03 09:24:35 +00:00
Sebastian Dröge
36304a7d36
gtk4paintablesink: Don't initialize a GL context unless a GL platform is enabled
...
And also don't suggest in the template caps that GL might be supported.
For clarification, the wayland feature is also renamed to waylandegl and
using wayland gives a deprecation warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1837 >
2024-10-02 14:12:12 +00:00
Sebastian Dröge
d1254fc4ef
gtk4paintablesink: Don't check for a GL context when filtering dmabuf caps
...
There's no connection between the two and dmabuf can also not be
supported if GL is also unsupported.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1837 >
2024-10-02 14:12:12 +00:00
Mathieu Duponchelle
867408b1c0
speechmaticstranscriber: add debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1831 >
2024-10-02 11:16:02 +00:00
Mathieu Duponchelle
115e12c09a
transcriberbin: fix linking of user-provided transcriber
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1831 >
2024-10-02 11:16:02 +00:00
Mathieu Duponchelle
5eccb180be
transcriberbin: support both latency and transcribe-latency properties
...
Also don't set translate-latency property if not present
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1831 >
2024-10-02 11:16:02 +00:00
Mathieu Duponchelle
8fae519c8d
transcriberbin: add debug
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1831 >
2024-10-02 11:16:02 +00:00
Sebastian Dröge
ccb9610d6b
Update Cargo.lock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1835 >
2024-10-02 06:36:56 +00:00
Sebastian Dröge
2c9be9f236
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1835 >
2024-10-02 06:36:56 +00:00
Guillaume Desmottes
d9e8f4054c
webrtc: allow PAR change in webrtcsink input caps
...
We are already allowing resolution changes which can lead to change in
pixel-aspect-ratio.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1830 >
2024-09-30 14:40:48 +02:00
Sebastian Dröge
dcb072ee23
webrtc: livekit: Set connection earlier during setup
...
Otherwise it's not available yet when handling the initial participants
that are already in the session when joining.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1794 >
2024-09-30 13:04:24 +03:00
Sebastian Dröge
cd2b641321
livekitwebrtcsrc: Add API for disabling/enabling a track
...
A disabled track is still negotiated but no data is sent for it
temporarily until it is enabled again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1794 >
2024-09-30 13:04:24 +03:00
Sebastian Dröge
27dc76826e
livekitwebrtcsrc: Add pad properties for various LiveKit participant / track metadata
...
The content of the TrackInfo and ParticipantInfo structs is exposed as
gst::Structure.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1794 >
2024-09-30 13:04:24 +03:00
Sebastian Dröge
ceb88d960f
rtpav1depay: Add wait-for-keyframe and request-keyframe properties
...
These behave the same as the properties in other depayloaders. Keyframe
detection is based on the N flag in the aggregation header.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/598
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1823 >
2024-09-27 12:25:16 +03:00
Nick Steel
5f055160ba
spotify: add missing tokio crate feature rt-multi-thread
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1818 >
2024-09-26 09:56:46 +01:00
Nick Steel
32aaf19fa3
spotify: depend on librespot-core and librespot-playback only
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1818 >
2024-09-26 09:54:27 +01:00
Nick Steel
e006c20556
spotify: avoid librespot::discovery dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1815 >
2024-09-26 06:48:56 +00:00
Mathieu Duponchelle
0d160d8cf6
Cargo.toml: turn lto off for dev profile
...
Turning on opt-level=1 is necessary to make things reasonably fast, but
it also turns on lto which since thinlto became enabled by default slows
down compile times by a factor of 2 compared to lto off.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1814 >
2024-09-25 16:09:29 +00:00
Mathieu Duponchelle
87c6719e1d
webrtcsink: add define-encoder-bitrates signal
...
When congestion control is used for a session with multiple encoders,
the default implementation simply divides the overall bitrate equally
between encoders.
This is not always desirable, and this patch exposes a new signal
that users can register to, with two arguments:
* The overall bitrate to allocate
* A structure with an encoder.stream_name -> bitrate mapping
Handlers should return a similar structure with a custom mapping.
An example is also provided.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1792 >
2024-09-25 15:19:44 +00:00
François Laignel
f532d523b2
webrtcsink: fix RFC7273 attributes
...
RFC7273 related attributes are set in the SDP offer by passing them via the
transceiver `codec-preferences` signal. These attributes are intended to be set
at the media level so they must be prefixed by `a-` in the `Caps` argument to
the signal. Otherwise they end up under `a=fmtp`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1810 >
2024-09-25 09:30:48 +00:00
Sebastian Dröge
b5586095bc
tracers: Update to etherparse 0.16
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1808 >
2024-09-25 09:05:56 +03:00
Mathieu Duponchelle
5c66d8c107
webrtcsrc: ensure source pad has msid when added
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1800 >
2024-09-24 14:50:30 +00:00
Mathieu Duponchelle
f70482d9bc
webrtcsrc: fix default msid property value
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1800 >
2024-09-24 14:50:30 +00:00
Guillaume Desmottes
bd7b94e305
fmp4: use the right DEFAULT constant
...
Does not really matter as both have the same value but best to have it
right.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1799 >
2024-09-23 12:48:42 +00:00
Jochen Henneberg
8313260e09
fmp4mux: Renamed caps_change_allowed() to header_update_allowed()
...
Because tag events like orientation and language require a header
update as well.
For proper logging the function now takes a reason parameter and logs
a debug message in case the header update is allowed.
And added some explanation to the function to make sure that it is
used in the right place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1762 >
2024-09-23 11:52:18 +00:00
Jochen Henneberg
c0f3eff18e
fmp4mux: Renamed caps_changed to need_new_header
...
Because the header update is needed in case of language code or
orientation changes as well that come with tag events.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1762 >
2024-09-23 11:52:18 +00:00
Jochen Henneberg
1be92c4b86
fmp4mux: Added tests for caps change feature
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1762 >
2024-09-23 11:52:18 +00:00
Jochen Henneberg
0c8b84d8a8
fmp4mux: Send new fragment with header in case of caps change
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1762 >
2024-09-23 11:52:18 +00:00
Jochen Henneberg
4d71525eee
fmp4mux: Simplified EOS detect logic
...
The all_eos cannot be set without having sinkpad.is_eos(). Thus
all_eos || sinkpad.is_eos() == sinkpad.is_eos().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1762 >
2024-09-23 11:52:18 +00:00
Guillaume Desmottes
431adaa2f9
fmp4: examples: hls_live: don't set header-update-mode=update
...
No need to update the header in live mode.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1798 >
2024-09-23 12:24:22 +02:00
Jordan Petridis
b5e0e0713c
ci: Set build jobs according to FDO_CI_CONCURRENT when available
...
The CI runners run multiple jobs concurrently, and as such we should
only be building with the number of jobs allocated to us when the
variable is set.
Related to https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1545
Also move the rest of the common flags we pass to cargo together so it's
a bit easier to read.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1791 >
2024-09-20 15:05:21 +03:00
Jendrik Weise
1ff761e410
fmp4: Add tests for split-at-running-time signal
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1761 >
2024-09-20 12:35:24 +03:00
Jendrik Weise
d5a9c7a940
fmp4: Add split-at-running-time signal
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1761 >
2024-09-20 12:35:24 +03:00
Mathieu Duponchelle
a85b0cb72e
webrtcsrc: expose MSID property on source pad
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1789 >
2024-09-20 09:31:57 +03:00
Sebastian Dröge
c9b370a6e4
cea708mux: Fix off-by-one in deciding whether a buffer belongs to this or the next frame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1774 >
2024-09-19 12:05:42 +00:00