Commit graph

3466 commits

Author SHA1 Message Date
Sebastian Dröge
553f36cfdb hlssink3: Update to sprintf 0.2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 21:48:52 +03:00
Sebastian Dröge
9f7984d7ed fmp4: Update to dash-mpd 0.17
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1757>
2024-08-27 21:48:32 +03:00
Sebastian Dröge
6fb68aa1fa Update Cargo.lock 2024-08-27 21:48:16 +03:00
Sebastian Dröge
87cdc125ad Update versions to 0.13.1 2024-08-27 21:33:11 +03:00
Sebastian Dröge
6dcc818305 Update CHANGELOG.md for 0.13.1 2024-08-27 21:32:52 +03:00
Sanchayan Maity
988c58de43 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/1756>
2024-08-27 09:51:05 +01:00
Sanchayan Maity
11e5262adb 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/1750>
2024-08-26 12:38:09 +00:00
Mathieu Duponchelle
6eac72d78c 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/1752>
2024-08-26 11:52:10 +01:00
Mathieu Duponchelle
88a6b6d428 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/1747>
2024-08-23 10:30:18 +00:00
Mathieu Duponchelle
4559b6a9f9 webrtcsink: fix segment format mismatch with remote offer
webrtcsink was starting the negotiation process on Ready and concurrently
moving the consumer pipeline to Playing, but when answering the remote
description was set so fast that input streams were connected (and the time
format set on appsrc) before the state change to Paused had completed.

This meant gst_base_src_start was happening after that and setting the format
back to bytes, the time segment that was next coming in then caused:

basesrc gstbasesrc.c:4255:gst_base_src_push_segment:<video_0> segment format mismatched, ignore

And the consumer pipeline errored out.

The same issue existed in theory when webrtcsink was creating the offer,
but was much harder to trigger as it required that the remote answer
came in before the state change to Paused had completed.

This commit fixes the issue by simply waiting for the state to have
changed to Paused before negotiating.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1738>
2024-08-23 09:30:03 +00:00
Piotr Brzeziński
bd5154ebe4 cmafmux: Add opus support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1742>
2024-08-23 08:11:46 +00:00
Sebastian Dröge
85151a6e4f Fix various 1.80 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1740>
2024-08-23 08:59:20 +03:00
Jordan Petridis
17938477ff ci: Use the windows specific image tags
Followup to c5dfc87953

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1740>
2024-08-22 15:26:35 +00:00
Sebastian Dröge
7d73038e3a livesync: Report latency query results when handling latency query too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1744>
2024-08-22 10:48:21 +00:00
Jerome Colle
1abe0fd5fe webrtcsink: add nvv4l2av1enc support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1743>
2024-08-22 09:59:22 +00:00
Jordan Petridis
f194d8483b ci: Pin the windows jobs to gstreamer runners for now
There seem to be some seemingly random failures if the
jobs get scheduled on the other windows runners,
and they need to be debugged further.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1741>
2024-08-22 09:13:45 +01:00
Jordan Petridis
33379c78f0 ci: Update the .cargo/config file
```
warning: `/builds/alatiera/gst-plugins-rs/.cargo/config` is deprecated in favor of `config.toml`
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1741>
2024-08-22 09:13:45 +01:00
Jordan Petridis
a240b0feed ci: Add a default retry policy for jobs
Automatically retry if it's a system failure or similar

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1741>
2024-08-22 09:13:45 +01:00
Jordan Petridis
80126b1c63 ci: Remove leftover scripts
Both of these have been moved in the main image for a while now

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1734>
2024-08-21 11:41:15 +01:00
Sebastian Dröge
b99aab06f8 ndisrc: Move timestamp handling from demuxer to source
This allows putting correct timestamps on buffers coming out of the
source already instead of leaving them unset until the demuxer.

And also calculate timestamps for metadata buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1726>
2024-08-17 01:17:47 +01:00
Tim-Philipp Müller
05cf05db23 ci: tag cerbero trigger job as placeholder job
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1723>
2024-08-15 02:10:19 +00:00
Sebastian Dröge
71cd06e975 mpegtslivesrc: Handle PCR discontinuities as errors for now
More work is needed to make this work seemlessly and right now it would
simply cause invalid timestamps to be created.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1722>
2024-08-14 18:30:06 +01:00
Sebastian Dröge
2e2af95e2d hlssink3: Don't use is-live=true
This sometimes produces imperfect timestamps that cause the fragment
duration to be slightly different than expected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1719>
2024-08-14 14:02:06 +01:00
Tim-Philipp Müller
6aedda36b1 ci: set cerbero trigger job timeout to 4h
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1719>
2024-08-14 14:02:06 +01:00
Dave Lucia
a3d6308579 net/webrtc: Fix turn-servers nick: user -> use
Noticed this typo

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1713>
2024-08-14 09:34:59 +00:00
Sebastian Dröge
b673de4e07 webrtcsrc: Make sure to always call end_session() without the state lock
This was already done in another place for the same reason: preventing a
deadlock. It's probably not correct as hinted by the FIXME comment but
better than deadlocking at least.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1715>
2024-08-14 08:17:48 +00:00
Guillaume Desmottes
dad755ece3 gtk4: log paintable size in snapshot
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1712>
2024-08-13 21:45:16 +00:00
Mathieu Duponchelle
c87ddd43e4 webrtcsink: fix assertions when finalizing
Dumping the pipeline on state changes from an async bus handler was
triggering criticals.

Instead, dump from the sync handler.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1714>
2024-08-13 18:07:13 +01:00
Sebastian Dröge
19cb695ce0 rtp: mp4gpay: Don't set seqnum-base on the caps
This is supposed to be set by another layer, e.g. rtspsrc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:04 +01:00
Sebastian Dröge
bc81e78873 rtp: basepay: Fix off-by-one with seqnum-offset
Setting a seqnum-offset of 1 would've caused the first packet to have a
seqnum of 2 instead of 1.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:04 +01:00
Sebastian Dröge
489021ed55 rtp: basepay: Don't negotiate twice in the beginning
If srcpad caps are already set as part of sinkpad caps handling, unset
the reconfigure flag so negotiation does not happen yet another time on
the first buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:03 +01:00
Sebastian Dröge
76f21f3b50 rtp: basepay: Negotiate SSRC and PT with downstream if not set via property
This makes the new payloaders closer to the old ones, and makes usage in
webrtcbin easier.

Also properly configure default PT of subclasses. Previously any PT that
was set for these subclasses via g_object_new() would be overridden by
the default one during construction.

Additionally, do SSRC collision handling while queueing output packets.
This is the more natural place as that's where the SSRC is actually
used, it happens potentially earlier and also allows to drain any
pending packets before the SSRC change in the caps.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:03 +01:00
Sebastian Dröge
2d2aab3f3c rtp: basepay: Initialize class fields
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:03 +01:00
Sebastian Dröge
3cce3f18c1 rtp: basepay: Don't unset stats on FlushStop
They are still valid and unsetting them here would cause no stats to
ever be updated again until the next state change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:03 +01:00
Sebastian Dröge
f020fdac93 rtp: basepay: Don't use suggested SSRC on collissions if it's the current one
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1705>
2024-08-10 11:46:03 +01:00
Sebastian Dröge
0c397179da fmp4mux: Remove _ prefix of actually used parameter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1698>
2024-08-07 14:12:38 +00:00
Sebastian Dröge
d5a7e39ec6 mp4mux: added image orientation tag support
Based on a patch by sergey radionov <rsatom@gmail.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1698>
2024-08-07 14:12:38 +00:00
Sebastian Dröge
c712b36082 webrtcsrc: Don't hold the state lock while removing sessions
Removing a session can drop its bin and during release of the bin its
pads are removed, but the pad-removed handler is also taking the state
lock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1700>
2024-08-07 12:00:57 +00:00
sergey radionov
228c75f80f fmp4mux: added image orientation tag support
fix #565

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1696>
2024-08-07 11:17:59 +00:00
Guillaume Desmottes
88d070f815 gtk4: add custom widget automatically updating the window size
Use it in the example and debug window but let's not make it public yet.
Plan is to have a proper bin on top of gtk4paintablesink at some point.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1697>
2024-08-07 10:37:04 +01:00
Guillaume Desmottes
5f234d734e gtk4: add window-{width,height} property
Allow the application to pass the actual rendering size so overlays can
be rendered accordingly.

Fix #562

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1697>
2024-08-07 10:37:04 +01:00
Jordan Petridis
d68312989c video/gtk4: Move the dmabuf cfg to the correct bracket level
This was defined one bracket above, which was causing the
gst-gl codepath below to also be disabled when there was
no dmabuf feature enabled.

This was also resulting in the following warning as
we were never creating the MappedFrame::GL vartiant due to this

```
warning: unused variable: `wrapped_context`
   --> video/gtk4/src/sink/frame.rs:541:85
    |
541 | ...", feature = "gst-gl"))] wrapped_context: Option<
    |                             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wrapped_context`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: variant `GL` is never constructed
  --> video/gtk4/src/sink/frame.rs:80:5
   |
74 | enum MappedFrame {
   |      ----------- variant in this enum
...
```

Move the cfg to the appropriate place where it encaplsulates only
the dmabuf related code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1687>
2024-08-05 09:41:18 +01:00
Sebastian Dröge
4f6b4093d0 ci: Use gstreamer-rs 0.23 CI image templates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1685>
2024-08-05 06:20:07 +00:00
Mathieu Duponchelle
27770324c7 transcriberbin: fix inspect with missing elements
Relax the dependency on `awstranscriber` by still building the initial
state when it is absent, this also means an alternative transcriber can
be linked even when `awstranscriber` was not available during
construction.

Also fix property getter / setters to avoid unwrapping the pad state,
and bubble up channel bin construction errors instead of unwrapping (eg
when textwrap was not available).

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/584
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1681>
2024-07-30 12:41:35 +01:00
Loïc Le Page
4bef63ba26 gstwebrtc-api: always include index file in dist for convenience
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1675>
2024-07-18 23:38:56 +00:00
Sebastian Dröge
0d83350f0e gtk4: Enable GtkGraphicsOffload::black-background property when building with GTK 4.16
This allows offloading in more situations.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1676>
2024-07-18 20:49:59 +01:00
Sebastian Dröge
fea2343968 rtp: Require bitstream-io < 2.4.0
Version 2.4.0 contains a breaking change that it shouldn't, and updating
to 2.4.0 requires a newer Rust version.

See https://github.com/tuffy/bitstream-io/issues/22
2024-07-16 19:06:54 +03:00
Sebastian Dröge
e28c62bb58 gopbuffer: Add version to gst-plugin-version-helper dependency 2024-07-16 19:04:32 +03:00
Sebastian Dröge
06fb47d197 webrtc: Add version to gst-plugin-webrtc-protocol dependency 2024-07-16 18:59:19 +03:00
Sebastian Dröge
5cba0c1d12 Add versions to gst-plugin-gtk4 dependencies for examples 2024-07-16 18:57:29 +03:00