Commit graph

3165 commits

Author SHA1 Message Date
Nirbheek Chauhan b73bea4a90 meson: Printing a list is only available with meson >=1.3
Fixes https://gitlab.freedesktop.org/tpm/gstreamer/-/jobs/60108579

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1633>
2024-06-20 11:14:45 +01:00
Sebastian Dröge 8bd94e284d Update CHANGELOG.md for 0.12.7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1631>
2024-06-19 20:18:59 +03:00
Sebastian Dröge 804c9bdf92 Update versions to 0.12.7
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1631>
2024-06-19 20:18:59 +03:00
Sebastian Dröge d4b17ec62c Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1631>
2024-06-19 19:35:24 +03:00
Nirbheek Chauhan ef09a54b32 meson: Handle features needed only by examples separately
Currently we incorrectly require gtk4 to build the fallbackswitch, livesync,
togglerecord plugins when the examples option is allowed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan 44a8a05aa3 meson: Actually build plugin examples
This broke in 8b5a398135.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan 93491826e8 meson: Fix gtk4 plugin build on linux
dmabuf feature needs the wayland feature too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan 01ad705bf6 meson: Only enable the gtk4 plugin when deps are found
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan 2478b47445 meson: Fix plugin requirement checking and add logging
We were silently skipping plugins that didn't find a required feature,
even if the plugin option was enabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan 46094f8e40 meson: Fix typo in gstreamer-gl dep fetching
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Nirbheek Chauhan e705f0a8a4 meson: Make gstreamer-gl dependency optional
Minimal systems like docker containers may not have GL

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1614>
2024-06-19 15:09:59 +00:00
Sebastian Dröge 627a756f04 rtp: av1pay: Derive Default trait for the state instead of manual implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1628>
2024-06-18 10:52:50 +00:00
Sebastian Dröge 433acfb2c6 rtp: av1pay: Correctly use N flag for marking keyframes
The "first packet of a coded video sequence" means that this should be
the first packet of a keyframe that comes together with a sequence
header, not the first packet of a new frame.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1628>
2024-06-18 10:52:50 +00:00
Sebastian Dröge 5b04b65a5e rtp: av1pay: Correctly skip over ignored OBUs
The reader is already after the header at this point so only the OBU
content has to be skipped.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1628>
2024-06-18 10:52:50 +00:00
Sebastian Dröge 8840861861 rtp: av1: Drop padding OBUs too like Chrome does
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1628>
2024-06-18 10:52:50 +00:00
Sebastian Dröge 998b4734bf Fix various new clippy 1.79 warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1627>
2024-06-18 10:01:13 +00:00
Angelo Verlain 0186930777 gtk4: update flatpak integration code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1626>
2024-06-18 10:33:55 +01:00
Sebastian Dröge c07abf04f0 rtp: av1depay: Also log warnings on errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1621>
2024-06-17 12:05:05 +03:00
Sebastian Dröge c821130947 rtp: av1depay: Parse internal size fields of OBUs and handle them
They're not recommended by the spec to include in the RTP packets but it
is valid to include them. Pion is including them.

When parsing the size fields also make sure to only take that much of a
payload unit and to skip any trailing data (which should not exist in
the first place).

Pion is also currently storing multiple OBUs in a single payload unit,
which is not allowed by the spec but can be easily handled with this
code now.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1621>
2024-06-17 12:04:15 +03:00
Sebastian Dröge dd4c466265 deny: Add override for older tungstenite
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1616>
2024-06-14 05:46:18 +00:00
Sebastian Dröge 1a03edd27d webrtc: Update to async-tungstenite 0.26
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1616>
2024-06-14 05:46:18 +00:00
Sebastian Dröge 61d2259b6b webrtchttp: Fix race condition when unlocking
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.

To solve this remember if cancellation should happen and reset this
later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1617>
2024-06-13 13:19:41 +00:00
Sebastian Dröge d7b2f15df6 aws: Fix race condition when unlocking
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.

To solve this remember if unlock() was called and reset this in
unlock_stop().

Also implement actual unlocking in s3hlssink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1617>
2024-06-13 13:19:41 +00:00
Sebastian Dröge c59be26b5c spotifyaudiosrc: Fix race condition when unlocking
It would be possible that there is no cancellable yet when unlock() is
called, then the setup task is started and it would simply run and being
waited on instead of not being run at all.

To solve this, remember if unlock() was called and reset this in
unlock_stop().

Also make sure to not keep the abort handle locked while waiting,
otherwise cancellation would never actually work.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1617>
2024-06-13 13:19:41 +00:00
Sebastian Dröge 6fd184cc96 reqwesthttpsrc: Fix race condition when unlocking
It would be possible that there is no cancellable yet when unlock() is
called, then a new future is executed and it wouldn't have any
information that it is not supposed to run at all.

To solve this remember if unlock() was called and reset this in
unlock_stop().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1617>
2024-06-13 13:19:41 +00:00
Sebastian Dröge ec26fcc65a ndi: Add support for loading NDI SDK v6
The library name and environment variable name have changed but the ABI
is completely compatible.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1615>
2024-06-13 13:01:11 +00:00
Sebastian Dröge ac79b52cff rtp: Don't restrict payload types for payloaders
WebRTC uses payload types 35-63 as dynamic payload types too to be able
to place more codec variants into the SDP offer.

Instead of allowing just certain payload types, completely remove any
restrictions and let the user decide. There's technically nothing wrong
with using any payload type, especially when using the encoding-name.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1595>
2024-06-13 12:37:52 +00:00
Francisco Javier Velázquez-García 205cc10e6e webrtcsink: Refactor value retrieval to avoid lock poisoning
When setting an incorrect property name in settings,
start_stream_discovery_if_needed would panic because it attempts to
unwrap a poisoned lock for settings.

This refactor avoids that situation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1598>
2024-05-31 12:41:45 +03:00
Francisco Javier Velázquez-García 3cdb350626 webrtcsink: Fix typo in property name for av1enc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1598>
2024-05-31 12:41:45 +03:00
cdelguercio 88b8e35871 webrtcsink: Support av1 via nvav1enc, av1enc, and rav1enc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1597>
2024-05-31 11:18:08 +03:00
Sebastian Dröge 9c3182132e Update versions to 0.12.6 2024-05-23 17:20:54 +03:00
Sebastian Dröge 3c15b3109b Update CHANGELOG.md for 0.12.6 2024-05-23 17:20:31 +03:00
Sebastian Dröge 8e0f10196f Update Cargo.lock
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:23:50 +03:00
cdelguercio 32b987d73e webrtcsink: Add VP9 parser after the encoder for VP9 too
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:21:54 +03:00
Sebastian Dröge 4be259035c deny: Update with itertool 0.12 override
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:21:45 +03:00
Sebastian Dröge 73158bf58b aws: Update to base32 0.5
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:21:25 +03:00
Robert Ayrapetyan 3036cadd20 webrtc: add support for insecure tls connections
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:19:26 +03:00
Mathieu Duponchelle ea832a6726 examples/dash_vod: compare durations to the millisecond
Otherwise when the segment durations aren't as clean cut as in the
example, multiple segments with the exact same duration in milliseconds
will get output, even though they could have been repeated.

Fix this so that people copying this code don't encounter the bug.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:19:20 +03:00
Martin Nordholts d0dc85293d rtpgccbwe: Also log self.measure in overuse_filter()
Also log `self.measure` in overuse_filter() since tracking
`self.measure` over time help a lot in making sense of
`self.estimate` (and `amplified_estimate`).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:18:01 +03:00
Martin Nordholts be72988545 rtpgccbwe: Rename variable t to amplified_estimate
We normally multiply `self.estimate` with `MAX_DELTAS` (60).
Rename the variables that holds the result of this
calculation to `amplified_estimate` to make the distinction
clearer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:17:56 +03:00
Sebastian Dröge 64949458ef gtk4: Fix Python example in the non-GL code path
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:17:50 +03:00
Sebastian Dröge 9b166691ad gtk4: Clean up Python example
It's not more or less equivalent to the Rust example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:15:22 +03:00
Rafael Caricio 6c67c00113 fmp4mux: Support AV1 packaging in the fragmented mp4 plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:15:05 +03:00
Rafael Caricio 135de50918 fmp4mux: Add language from tags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:14:54 +03:00
Martin Nordholts 536601e65d rtpgccbwe: Log effective bitrate in more places
While monitoring and debugging rtpgccbwe, it is very helpful
to get continuous values of what it considers the effective
bitrate. Right now such prints will stop coming once the
algorithm stabilizes. Print it in more places so it keeps
coming. Use the same format to make it simpler to extract
the values by parsing the logs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:14:20 +03:00
Martin Nordholts 26f63c5e1e rtpgccbwe: Add mising 'ps' suffix to 'kbps' of 'effective bitrate'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:14:13 +03:00
Martin Nordholts 3a6c663f3c rtpgccbwe: Log delay and loss target bitrates separately
When debugging rtpgccbwe it is helpful to know if it is
delay based or loss based band-width estimation that puts a
bound on the current target bitrate, so add logs for that.

To minimize the time we need to hold the state lock, perform
the logging after we have released the state lock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:13:53 +03:00
Sebastian Dröge cfbefb9b9e gtk4: Fix description of the plugin
A paintable is not a widget and that aspect does not belong in the short
description anyway.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:13:47 +03:00
Mathieu Duponchelle e72e361b63 webrtcsink: improve error when no discovery pipeline runs
If for instance no encoder was found or the RTP plugin was missing,
it is possible that no discovery pipeline will run for a given stream.

Provide a more helpful error message for that case.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/534
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:13:42 +03:00
Sebastian Dröge 1bee96ccb4 Fix new Rust 1.78 clippy warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1582>
2024-05-23 16:13:15 +03:00