Antonio Kevo
cf21bfabf2
fmp4: Use updated start_pts when checking stream filled
...
After calculating the earliest pts, the fragment_start_pts and
chunk_start_pts in State are updated. However, when checking if the
stream is filled, the previous start_pts (set to None) is used instead.
This means that chunk_filled and fragment_filled will be false the first
time aggregate() is called, assuming timeout is false, all_eos is false,
and the sinkpad is not EOS. This requires aggregate() having to be
called a second time before the first fragment is sent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1207 >
2023-05-10 16:09:25 +02:00
Sebastian Dröge
8b2b12e767
Update CHANGELOG.md for 0.10.7
2023-05-09 20:48:43 +03:00
François Laignel
680d5221db
net/webrtc: src: add signal "request-encoded-filter"
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1202 >
2023-05-09 12:02:15 +02:00
François Laignel
092ae1fec8
net/webrtc: sink: add signal "request-encoded-filter"
...
The new "request-encoded-filter" signal is emitted when the encoder and related
elements are added to the pipeline. When defined, the element returned by the
signal is inserted between the encoder and the payloader.
The transformation can be reverted using the [insertable streams API] on the
receiver side.
[insertable streams API]: https://developer.mozilla.org/en-US/docs/Web/API/Insertable_Streams_for_MediaStreamTrack_API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1202 >
2023-05-09 11:17:32 +02:00
François Laignel
dc5ddd3022
net/webrtc: sink: abort stats collection before stopping the Signaller
...
In some rare cases, the webrtc-test entered a deadlock while executing
`WebRTCSink::unprepare`. Attaching gdb to a blocked instance showed:
* `gstrswebrtc::signaller:👿 :Signaller::stop()` parked, waiting for a
`Condvar` in `Signaller::stop()`. This was most likely awaiting for the
receive task to complete while it was locked in `element.end_session()`.
This code path is triggered from `unprepare` with the `State` `Mutex` locked.
* `webrtcsink:👿 :WebRtcSink::process_stats` waiting for a contended `Mutex`,
which is also the `State` `Mutex`. This prevented completion of the signal
`gst_webrtc_bin_get_stats`.
This commit aborts the task in charge of periodically collecting stats and
ensures any remaining iteration completes before requesting the Signaller to
stop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1202 >
2023-05-09 10:26:11 +02:00
François Laignel
eca269cbf2
net/webrtc: src: don't set stun-server on webrtcbin when our property is None
...
... otherwise an error occurs about the stun-server address being an empty
string which doesn't comply with the expected address format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1202 >
2023-05-09 10:26:07 +02:00
Sebastian Dröge
de1c8ece43
deny: Update
2023-05-08 18:44:12 +03:00
Sebastian Dröge
cb5b527d74
Update to AWS SDK 0.27 and async-tungstenite 0.22
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1199 >
2023-05-02 15:30:00 +03:00
Guillaume Desmottes
76c8279101
fmp4: define minBufferTime in example mpd
...
Required to validate the manifest with https://beta.conformance.dashif.org/
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1196 >
2023-04-27 14:16:40 +02:00
Sebastian Dröge
05ee55d617
fmp4: Update example to dash-mpd 0.8
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1193 >
2023-04-25 08:54:48 +03:00
Nick Steel
3d01c9b363
spotify: check cached creds username before use
...
If a username was specified, only use cached credentials that match
that username.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1192 >
2023-04-24 15:29:22 +01:00
Jan Beich
8d6751c88d
gtk4: unbreak wayland, x11egl, x11glx features on non-Linux
...
As the features are non-default leave the responsibility to filter by
platform to consumers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1191 >
2023-04-22 12:58:29 +00:00
Lily Foster
8e4fd2c167
meson: support rust cross-compiling with cargo wrapper
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1188 >
2023-04-21 16:55:37 +00:00
Sebastian Dröge
41ba4b2bc3
deny: Update
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1187 >
2023-04-21 10:48:10 +00:00
Sebastian Dröge
5451035215
Update async-tungstenite and AWS SDK dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1187 >
2023-04-21 10:48:10 +00:00
John King
2bd2e501d9
spotify: fix credentials cache
...
Cache Spotify response instead of username and password.
This should resolve frequent "New login to Spotify" emails.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1183 >
2023-04-21 09:12:47 +02:00
Sebastian Dröge
cc3646640e
Fix a couple of new Rust 1.69 clippy warnings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1186 >
2023-04-20 16:47:45 +03:00
Lily Foster
760e97c7e7
meson: avoid passing the --features flag to wrapper when empty
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1184 >
2023-04-18 16:26:11 -04:00
Edward Hervey
721d17e181
rtpgccbwe: Don't process empty lists
...
The structure parsing could result in an empty vector. Don't do any processing
since the loss code assumes it's non-empty for average estimates which would
result in weird/invalid results.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1181 >
2023-04-15 19:35:27 +02:00
Mathieu Duponchelle
dbdb9bc164
webrtcsink: fix navigation data channel
...
At some point, presumably recently, the data channel stopped being
requested in Ready, making webrtcbin refuse to create it.
There was quite a lot of churn recently so I couldn't pinpoint the
breaking commit easily.
Fix by simply restoring the correct behavior of requesting the channel
after going to the Ready state
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/341
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1180 >
2023-04-14 14:26:22 +02:00
Sebastian Dröge
47159ad3c2
Make sure to keep around and drop bus watches after usage in all the examples
2023-04-14 12:46:43 +03:00
Arun Raghavan
aabfb61834
ffv1dec: Drop rank for now
...
We'll keep the rank lower than avdec_ffv1, at least until we're
comfortable with support for the entire range of possible inputs working
well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1174 >
2023-04-13 15:58:49 +00:00
Mathieu Duponchelle
f1fd8d84c3
webrtc: extract a BaseWebRTCSink
...
For documentation purposes, AwsKVSWebRTCSink should not inherit from
another element.
+ Mark base class as plugin API and update plugin cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1178 >
2023-04-13 15:06:59 +00:00
Guillaume Desmottes
367b98bfcb
fmp4: dash_vod example: reformat
...
Not sure why rustfmt updated those because of my previous change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1177 >
2023-04-13 09:50:15 +02:00
Guillaume Desmottes
371ac83169
fmp4: dash_vod example: use dash-mpd to generate the manifest
...
Maybe a bit overkill for such simple example but more exemplary for
actual applications.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1177 >
2023-04-13 09:50:11 +02:00
Loïc Le Page
dba91bceca
webrtc: fix documentation after signaller interface changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1175 >
2023-04-12 20:19:22 +02:00
Thibault Saunier
8f2273328b
webrtcsrc: Return bool en 'end-session' as required
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1172 >
2023-04-12 12:17:56 +00:00
Sebastian Dröge
5dcdf645d6
net: ndi: Update to libloading 0.8
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1173 >
2023-04-12 11:03:05 +03:00
Sebastian Dröge
011f0d5fee
deny: Update for miniz_oxide dependency duplication
2023-04-11 11:14:08 +03:00
Mathieu Duponchelle
355f925954
tttocea608: specify raw 608 field
...
The element can only output field=0 raw 608 data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1166 >
2023-04-11 09:26:24 +10:00
Mathieu Duponchelle
f366c20869
awstranscriber: fix what we send over for translations
...
Prior to this commit, we were sending over words concatenated together
with no separators, for instance "Idon'twanttobeanemperor".
The translation service seems clever enough to translate the contents
anyway, but there is no reason to make its task harder than necessary,
and it didn't re-add separators when the target language was the same as
the source language, which resulted in less than ideal output.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1171 >
2023-04-10 20:47:12 +00:00
Mathieu Duponchelle
408fd2030c
awstranscriber: slight debug improvement
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1171 >
2023-04-10 20:47:12 +00:00
Mathieu Duponchelle
4fcbb6ae61
textwrap: add some logs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1171 >
2023-04-10 20:47:12 +00:00
Guillaume Desmottes
3eca8c60e3
ci: check for typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1170 >
2023-04-10 13:35:32 +02:00
Guillaume Desmottes
403004a85e
fix typos
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1170 >
2023-04-10 13:35:32 +02:00
Mathieu Duponchelle
a455819871
webrtcsink: fix tracking of signaller state
...
For the signaller to get stopped, we need to remember that we started it
in the first place.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1167 >
2023-04-10 07:58:10 +03:00
Mathieu Duponchelle
3368f55a88
webrtcsink: don't return value from error closure
...
the signal doesn't expect a return value, which meant we were panicking
as soon as the signaller tried to report an error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1167 >
2023-04-10 07:58:10 +03:00
Mathieu Duponchelle
58c8c0edc7
webrtc: signaller iface: fix session-ended vs end-session confusion
...
Session ending is bidirectional: the signaller can tell the sink that a
session was ended, and the sink can tell the signaller to end a session.
As such, two signals are needed, before this patch the second case was
not working as in essence the sink was telling itself that a session was
ended, and obviously failing to even find it when trying to end it again.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1167 >
2023-04-10 07:58:10 +03:00
Tim-Philipp Müller
0b5cf4e5fd
ci: add check for symlinks
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1169 >
2023-04-08 23:20:54 +01:00
Tim-Philipp Müller
7c30430320
webrtc-api: replace LICENSE file symlink with copy
...
As in !1157
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1169 >
2023-04-08 17:22:37 +01:00
Seungha Yang
6e36e2ddfd
transcriberbin: Allow video with ANY caps features
...
transcriberbin does not read/write video buffers actually.
Allow ANY caps features in order to avoid unnecessary GPU
upload/download
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1165 >
2023-04-08 02:40:49 +09:00
Mathieu Duponchelle
c846147275
transcriberbin: require final framerate from cea608mux
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1164 >
2023-04-07 17:46:45 +02:00
Matthew Waters
c141a82dfb
webrtcsink: update docs for property and signal changes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
e69b4b7f45
webrtc/signaller/iface: give variables appropriate names
...
Rather than arg0, arg1, etc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
4f4e5f0d75
webrtcsink/signaller: don't call signals while having state/settings locked
...
It is a recipe for deadlocks if the signal callback calls back into
webrtcsink in some way.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
1c61e46f37
webrtcsink: privatise signalling functions
...
The functionality is now access through the relevant signals instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
2ac560975c
webrtc/signaller: emit the relevant signals instead of the interface vtable
...
In order to support the use case of an external user providing their own
signalling mechanism, we want the signals to be used and only if nothing
is connected, fallback to the default handling. Calling the interface
vtable directly will bypass the signal emission entirely.
Also ensure that the signals are defined properly for this case. i.e.
1. Signals the the application/external code is expected to emit are
marked as an action signal.
2. Add accumulators to avoid calling the default class handler if
another signal handler is connected.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
343b659755
webrtc/signaller: remove SignallableImplExt
...
This pattern is used for subclassing and calling parent class/interface functions.
However that is not useful for the signaller object.
1. The signals are the API contract and should instead be used by
webrtcsrc/sink to ask or provide outside for/with information.
2. The default case (no signal attached)is instead handled by default class
handlers that call directly using the relevant rust trait. No parent
(GObject) vfuncs necessary.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Matthew Waters
b6e78b5f04
webrtcsink: expose signaller as a property
...
in the process move the signaller field to the settings struct
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:58:13 +10:00
Thibault Saunier
8236f3e5e7
webrtcsink: Port to the 'webrtcsrc' signaller object/interface
...
With contributions from:
Matthew Waters <matthew@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1141 >
2023-04-07 09:03:47 +10:00