Commit graph

3707 commits

Author SHA1 Message Date
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
Matthew Waters
a3d114e18f cea708overlay: fix background/foreground type
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
01ef35eac8 cea708overlay: enable a black background by default
It is the recommended colour sceheme in CEA-608.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
144a0e431c cea708overlay: produce a slightly more CEA-608 layout
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
9787b187de deps: update cea708-types to 0.3.5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
34c928e9fe tttocea708: log the bytes and times generated
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
b23a514657 tttocea708: don't incorrectly recode timestamp to frame conversion on gap events
Simply use the already existing generate() which will convert from a timestamp
and duration into frames for processing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
fe49837107 cea708mux: handle different timestamped inputs
If different inputs have different framerates, then an input buffer may need
to be combined or split.  Account for that in the aggregate loop.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
00cb3fefe9 cea708mux: output padding by default
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
c0a3b0c868 tttocea708: output CEA-X08 padding by default
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Matthew Waters
9eb3ad4412 cea708mux: forward CEA-608 data correctly
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1942>
2024-12-09 05:16:04 +00:00
Mathieu Duponchelle
39a8db51de transcriberbin: register pad templates for unsynced source pads
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1963>
2024-12-06 09:38:39 +00:00
Mathieu Duponchelle
4e722d6dcc speechmatics: expose unsynced pads on transcriber
This can be used for storing original transcripts for editing after the
fact.

Modeled on the aws transcriber, to be usable from transcriberbin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1963>
2024-12-06 09:38:39 +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
Jochen Henneberg
be6074f4f4 fmp4mux: Fix state cleanup on flush
State cleanup was incomplete. If a flush happens we do not have any
buffers anymore so all buffer queue related settings must be cleared
on the state. Flush action has been moved into state impl.

The GstAggregatorPad flush() was implemented as well as the pad flush
handler - with different implementations. Unify it.

Fixes #636

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1945>
2024-12-04 11:12:55 +00:00
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
Edward Hervey
4d31001c4b cea708mux: Always pad cea708
Instead of pushing gaps, we should send out valid (empty) cea708 buffers
downstream, like we do in most other caption element

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1946>
2024-12-02 10:35:45 +00:00
Guillaume Desmottes
80b9d7081a togglerecord: release rec_state before pushing buffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1961>
2024-12-02 10:36:23 +01: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
204c4101f2 deny: Remove obsolete entries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954>
2024-11-30 15:01:01 +02:00
Sebastian Dröge
f3c4a106a6 Update dependencies
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954>
2024-11-30 15:00:30 +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
Sebastian Dröge
9e59efd9d6 ci: Don't consider no runnable tests an error
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1954>
2024-11-30 14:52:19 +02:00
Edward Hervey
0d4f512e8d gitlab-ci: Don't use massive image for cerbero trigger
Just use a lightweight alpine:latest image

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1950>
2024-11-30 09:28:50 +00: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
01b3e2a8f2 transcriberbin: take synthesis latency into account
and factor out a method to calculate the element's internal latency, to
be shared with the code for calculating the size of the passthrough
queues.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
a71fd35ebf transcriberbin: set latencies on transcribers as soon as possible
Otherwise if we wait for setup_transcription(), the transcribers might
already have reached the playing state.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1930>
2024-11-29 22:09:37 +00:00
Mathieu Duponchelle
ee6ab26d2a textwrap: fix text accumulating for longer than accumulate-time
By draining before *and* after the word wrapping loop.

We don't do that during the loop in order not to break up sentences
unnecessarily.

Also adds tests

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
4406851ae7 transcriberbin: add support for speech synthesis
This commit adds a new "synthesis-languages" property. Users can set it
to define a map of languages (typically translations) that should then
be routed through a "synthesis" bin, with its description specifiable
as the value of the map.

The output of this bin is then exposed as a new pad on the top-level
bin.

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
Mathieu Duponchelle
4720b575b6 webrtscink: fix deadlock when answering
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/637
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1955>
2024-11-29 18:52:41 +01:00
Ruben Gonzalez
f646504fce webrtcsink: add openh264enc support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1948>
2024-11-29 13:44:11 +00:00
Guillaume Desmottes
95fc407de3 togglerecord: move the next pad id to its own variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
3f5396af58 togglerecord: stop copying settings
It's racy as the settings values can be changed between the copy and
reading them.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
5f007ed7ee togglerecord: define total order on mutexes
I'm tracking a bug which may or may not be related to a deadlock in
togglerecord.

I audited the code and figured we could define a total order on the
mutexes with just a few changes.
I don't know yet if that will help with my bug but it can't hurt to have
a order properly documented with so many mutexes involved.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
20fb4f82d8 togglerecord: move pads and other_streams to State
Allow us to remove two mutexes, making dead locks easier to debug.

Also now use the State lock with `main_stream_cond` as we want to use
the higher order mutex in order to prevent dead locks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
fb54cfa425 togglerecord: implement Debug on Stream and StreamState
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
Guillaume Desmottes
7a336cf8ad togglerecord: document mutexes hold when calling ToggleRecord methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1935>
2024-11-29 11:56:37 +00:00
L. E. Segovia
6e0d6c1a5a version-helper: Add script for setting the release date in Cargo.toml
See #599

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1939>
2024-11-29 10:42:06 +00:00
Edward Hervey
8bb0a7eecc tttocea708: Fix off-by-one issue
last_frame_no is used to eventually calculate the outgoing pts. We want to
increment it *after* having created the content

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1947>
2024-11-29 09:48:17 +00:00