Commit graph

3681 commits

Author SHA1 Message Date
Mathieu Duponchelle
6a23ae168f webrtcsink: implement mechanism to forward metas over control channel
It may be desirable for the frontend to receive ancillary information
over the control channel.

Such information includes but is not limited to time code metas, support
for other metas (eg custom meta) might be implemented in the future, as
well as downstream events.

This patch implements a new info message, probes buffers that arrive at
nicesink to look up timecode metas and potentially forwards them to the
consumer when the `forward-metas` property is set appropriately.

Internally, a "dye" meta is used to trace the media identifier the
packet we are about to send over relates to, as rtpfunnel bundles all
packets together.

The example frontend code also gets a minor update and now logs info
messages to the console.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1749>
2024-09-19 08:41:47 +00:00
Mathieu Duponchelle
db026ad535 gstwebrtc-api: expose API on consumer-session for munging stereo
We cannot do that by default as this is technically non-compliant,
so we need to expose API to let the user opt into it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1754>
2024-09-19 07:37:23 +00:00
Sebastian Dröge
aae9d5c0e9 closedcaption: cea608utils: Avoid overflow when deciding which lines to retain
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1776>
2024-09-17 12:00:56 +03:00
Seungha Yang
1675e517b3 hlscmafsink: Add playlist-root-init property
Adding a property to allow setting base path for init fragment to be
written in manifest file

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1773>
2024-09-11 03:36:08 +09:00
Sebastian Dröge
1d20028b00 ci: Ignore test-with update until MSRV can be updated to 1.75+
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Sebastian Dröge
975e4e157b deny: Add link to issue about replacing sodiumoxide
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Sebastian Dröge
6a7118e535 deny: Ignore proc-macro-error being unmaintained
See https://github.com/yanganto/test-with/issues/91

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Sebastian Dröge
7843209692 ci: Ignore bitstream-io update until MSRV can be updated to 1.80+
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Sebastian Dröge
c505d9a418 Update to async-tungstenite 0.28
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Sebastian Dröge
0c9fb369d3 Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1772>
2024-09-10 09:19:18 +03:00
Jerome Colle
fef6601094 dav1ddec: add properties for film grain synthesis and in-loop filters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1763>
2024-09-09 14:23:15 +00:00
Sebastian Dröge
24003a79f6 mpegtslivesrc: Make sure to use the object as context for all debug logs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1767>
2024-09-09 13:29:14 +00:00
Sebastian Dröge
c32cb20906 mpegtslivesrc: Check if old compared to new PCR clock estimation is too far off
It the difference between the two estimations is more than 1s then
consider this a discontinuity too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1767>
2024-09-09 13:29:14 +00:00
Sebastian Dröge
c5b1ebc7d8 mpegtslivesrc: Fix order of parameters passed to add_observation()
The first one should be the internal time, i.e. the monotonic clock time
in our case, and the second one the external time.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1767>
2024-09-09 13:29:14 +00:00
Sebastian Dröge
44f64fb3f6 mpegtslivesrc: Scale monotonic time on PCR disconts to allow for continuous clock times
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1767>
2024-09-09 13:29:14 +00:00
Sebastian Dröge
453b3014e6 mpegtslivesrc: Set DISCONT flag on buffers at PCR discontinuities
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1767>
2024-09-09 13:29:14 +00:00
Sebastian Dröge
8fd2b7daa4 uriplaylistbin: Properly check for stream-collection/streams-selected events
There is only a new stream-collection event if the media has actually
changed, and that's also the only time in these tests when a
streams-selected event is sent as the default stream selection is always
used and never changed.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/597

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1769>
2024-09-09 14:37:48 +03:00
Sebastian Dröge
2e0f52de2c uriplaylistbin: Track actual caller in test assertion functions
Makes it easier to figure out from where it is actually called when the
assertion is failing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1769>
2024-09-09 14:35:40 +03:00
Sebastian Dröge
7a959b9e9d uriplaylistbin: Properly clean up the pipeline on panics/assertions too
Reduces log noise.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1769>
2024-09-09 14:35:10 +03:00
Sebastian Dröge
a709eb96d9 Fix new Rust 1.81 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1768>
2024-09-05 22:01:01 +03:00
Sebastian Dröge
295b9f01c2 ndisrc: Use correct receive time to re-initialize time tracking on disconts
The base receive time should not be the monotonic system clock time, but
the monotonic system clock time adjusted by the current clock calibration.
For the first time this is equivalent as the clock calibration is the default,
but for further discontinuities it is not and would cause a
discontinuity in the clock times at this point.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1766>
2024-09-05 10:18:48 +00:00
Mathieu Duponchelle
bfc32cc692 net/aws: fix spurious dispatch failures
Since https://github.com/awslabs/aws-sdk-rust/discussions/956, the AWS
SDK errors out HTTP streams that do not transfer data for more than 5
seconds.

This probably should be an opt-in bhevior as it clearly not generically
useful, but as it is we need to opt out.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1760>
2024-09-05 07:43:23 +00:00
Mathieu Duponchelle
65508cfe75 net/aws: don't discard errors from transcribe loop
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1760>
2024-09-05 07:43:23 +00:00
Arun Raghavan
e72db57179 webrtc: Fix whipclientsink name in README
The element name was changed, but the documentation wasn't updated to
match.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1764>
2024-09-03 16:44:19 -04:00
Sebastian Dröge
871756bb70 ndisrc: Reset timestamp tracking if remote time goes backwards
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 20:53:13 +03:00
Sebastian Dröge
ee4416ee5f ndisrc: Add a clocked timestamp mode that provides a clock that follows the remote timecodes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 20:53:13 +03:00
Sebastian Dröge
ab3db748be ndisrc: Get rid of unnecessary AtomicRefCell dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Sebastian Dröge
0c4ec370cf ndisrc: Remove slope workaround in timestamping code
This was needed for an old version of the NDI HX Camera iOS application
and is fixed since quite a while. Let's get rid of unnecessarily
complicated code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Sebastian Dröge
57821cade4 ndisrc: Only calculate timecode/timestamp mappings if necessary
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Sebastian Dröge
04da3b2047 ndisrc: receiver: Improve debug message when receiving frames
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Sebastian Dröge
84fef267b5 ndisrc: receiver: Remove some code duplication
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Sebastian Dröge
f2658eb773 ndisrc: Move from start/stop to change_state for slight code simplification
All state change related code is in a single place now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1727>
2024-08-29 16:32:51 +00:00
Seungha Yang
0135c4251c transcriberbin: Fix passthrough state change
Sync state of child bin appropriately when passthrough is disabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1758>
2024-08-28 05:51:26 +00:00
Sebastian Dröge
c57b6c9c0a Update CHANGELOG.md for 0.13.1 2024-08-27 22:00:48 +03:00
Sebastian Dröge
3c38ed7ff0 deny: Update
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 21:10:48 +03:00
Sebastian Dröge
fc29ff7d8b hlssink3: Update to sprintf 0.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 21:06:52 +03:00
Sebastian Dröge
52895223a8 fmp4: Update to dash-mpd 0.17
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 21:02:43 +03:00
Sebastian Dröge
7e9a6d6893 Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 20:58:48 +03:00
Mathieu Duponchelle
2f9bb62b6b gstwebrtc-api: create control data channel when offering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1755>
2024-08-27 07:52:12 +02:00
Sanchayan Maity
f0d42b88cb Add s3putobjectsink to README
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1550>
2024-08-26 19:56:34 +00:00
Sanchayan Maity
f3206c2e1a aws: Add next-file support to putobjectsink
Add `next-file` support to `awss3putobjectsink` on similar lines to
the `next-file` support in `multifilesink`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1550>
2024-08-26 19:56:34 +00:00
Sanchayan Maity
d274caeb35 whepsrc: Fix incorrect default caps
add-transceiver needs application/x-rtp caps and not raw caps. We were
providing raw caps which is incorrect.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1748>
2024-08-26 19:44:37 +05:30
Mathieu Duponchelle
66727188cf net/aws: fix sanity check in transcribe loop
When we receive a new alternative we want to avoid iterating out of
bounds, but the comparison between the current index and the length of
the alternative should not log an error when partial_index == length, as
Vec::drain(length..) is valid, and it is completely valid for AWS to
send us a new alternative with as many items as we have already
dequeued.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1751>
2024-08-26 11:37:08 +02:00
Sebastian Dröge
7e912b0dde video/gtk4: Clean up imports a bit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1708>
2024-08-23 08:11:15 +00:00
Sebastian Dröge
3fd3a32b6f video/gtk4: Clean up GStreamer GL context initialization
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1708>
2024-08-23 08:11:15 +00:00
Jordan Petridis
4f01421cc4 video/gtk4: Make feature "v4_6" the default assumption
It's our minimum gtk4 version we target anyway so we
can remove some of the extra features in the toml and require
it by default.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1708>
2024-08-23 08:11:15 +00:00
Jordan Petridis
ff5032934d video/gtk4: Remove some indentation in frame.rs
We have less cfg features now and don't need the extra
brackets to guard the codepaths.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1708>
2024-08-23 08:11:15 +00:00
Jordan Petridis
602760d0d8 video/gtk4: Remove cfg flag for gst-gl
GTK 4 hard depends on GL on all platforms, and now both
windows and macos have codepaths for the paintable sink to
produce GLTextures.

This we can now drop the cfg build flag we have making it optional.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1708>
2024-08-23 08:11:15 +00:00
Sanchayan Maity
320f36a462 hlssink3: Use fragment duration from splitmuxsink if available
splitmuxsink now reports fragment offset and duration in the
splitmuxsink-fragment-closed message. Use this duration value
for the MediaSegment when available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1728>
2024-08-22 15:13:21 +00:00
Mathieu Duponchelle
4cf93ccbdb net/webrtc: Add missing npm command to README
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/589

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1746>
2024-08-22 15:46:28 +02:00