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
Seungha Yang
538e2e0c9e
transcriberbin: Add support for runtime translation-languages update
...
Allows updating translation-languages at runtime
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1162 >
2023-04-06 21:43:04 +09:00
Seungha Yang
65c6117962
transcriberbin: Wrap conversion channel elements into bin
...
Make dynamic reconfiguration easier
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1162 >
2023-04-06 11:49:36 +00:00
Sebastian Dröge
884a8a8b23
meson: Update version
2023-04-06 11:25:33 +03:00
Sebastian Dröge
0bc9718e3b
Update CHANGELOG.md for 0.10.6
2023-04-06 11:25:22 +03:00
Seungha Yang
762fb86ce7
awstranscriber: Reset start_time per task
...
Otherwise wrong start time can be assigned if the element is
reused with state change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1159 >
2023-04-05 18:22:59 +00:00
Sebastian Dröge
9cb211470f
ndisrc: Fix copying of raw video frames with different NDI/GStreamer strides
...
And also don't copy each line twice for single-plane formats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1158 >
2023-04-05 16:45:48 +03:00
Sebastian Dröge
e549f5c4a9
deny: Update for older versions of the windows bindings
2023-04-05 12:04:21 +03:00
Matthew Waters
a8b46f1bf4
closedcaption: add cea608tocea708 element
...
Implement an element that can take an input 608 caption stream and
generate a valid 708 caption stream by parsing the 608 data and
generating the equivalent DTVCCPackets and Service blocks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1112 >
2023-04-05 13:00:32 +10:00
Matthew Waters
c0dc6eb35c
cea608utils: track last channel for characters without channel embedded
...
If a basicna character is received, it will always have a channel of 0
even if it's directed at a different data channel. Fix by keeping track
of the last channel from other commands and using that when producing
text in the basicna subset.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1112 >
2023-04-05 12:18:15 +10:00
Matthew Waters
9a5e5db271
closedcaption: move 608 utility functions to a separate file
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1112 >
2023-04-05 12:18:15 +10:00
Loïc Le Page
f17622a1e1
webrtc: Add gstwebrtc-api subproject in net/webrtc plugin
...
This subproject adds a high-level web API compatible with GStreamer
webrtcsrc and webrtcsink elements and the corresponding signaling
server. It allows a perfect bidirectional communication between HTML5
WebRTC API and native GStreamer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/946 >
2023-04-04 16:29:44 +02:00
Tim-Philipp Müller
8845f6a4c6
git: replace LICENSE file symlinks with copies
...
Git will de-duplicate the contents for us anyway, and
symlinks can cause problems with some versions of git
and also on Windows.
https://github.com/mesonbuild/meson/issues/11646
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4326
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1157 >
2023-04-04 14:26:37 +01:00
Sebastian Dröge
722dba1203
fallbacksrc: Don't check caps when linking to the fallbackswitch
...
Downstream might have different caps requirements and linking might
fail. Instead of having linking fail, give upstream an opportunity to
reconfigure and otherwise have a normal negotiation error during data
flow.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/334
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1156 >
2023-04-04 10:14:06 +00:00
Guillaume Desmottes
138c318be6
uriplaylistbin: example: add queues
...
Prevent pipeline starvation with some media such as
https://assets.onestream.live/studio/Videos/1080p/osl-interval-1080p-8.mp4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1064 >
2023-04-04 08:24:55 +00:00
Seungha Yang
8576af247b
transcriberbin: Set start-time-selection=first to cea608mux
...
We don't want to modify running time of caption stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1155 >
2023-04-03 13:32:55 +00:00
Seungha Yang
4000d60305
awstranscriber: Avoid too large initial GAP event
...
Initialized GstSegment.position is always zero
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1154 >
2023-04-03 13:05:15 +00:00
Vivia Nikolaidou
c6e1efa0fe
livesync: Actually assume zero upstream latency when query fails
...
The code said "assuming zero" but left latency at None instead of
Some(0), failing to unwrap the value later.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1153 >
2023-03-31 17:40:32 +03:00
Mathieu Duponchelle
15e1844956
webrtcsink: fix calculation of fec_ratio with multiple encoders
...
In this context, the bitrate variable is for all encoders, but the
max_bitrate field is per encoder. To calculate a proper FEC ratio, we
need to scale max_bitrate to the number of encoders.
+ Also clamp the fec-percentage that we set on the transceiver for extra
safety
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1151 >
2023-03-31 12:19:07 +00:00
Sebastian Dröge
23c165dee1
deny: Update for duplicated old dependencies in dependencies
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1152 >
2023-03-31 09:12:26 +00:00
Sebastian Dröge
315e53f064
webrtc: Update to AWS SDK 0.55/0.25
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1152 >
2023-03-31 09:12:26 +00:00
Sebastian Dröge
6fe806c2b5
aws: Update to AWS SDK 0.55/0.25
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1152 >
2023-03-31 09:12:26 +00:00
Mathieu Duponchelle
8cb328b6f2
transcriberbin: add support for translations
...
With this, if the transcriber element in use supports "translation_src_"
request source pads, the user can now specify what languages to
translate to and how to map them to 608 channels (only CC1 and CC3 are
supported).
For instance, translation-languages="languages, CC3=transcript, CC1=fr"
will cause the original transcript to be muxed into the CC3 channel, and
the French translation to be muxed into the CC1 channel.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1149 >
2023-03-29 01:58:37 +02:00