Commit graph

119878 commits

Author SHA1 Message Date
Andoni Morales Alastruey
2d1a442baf discoverer: fix segfault in race condition adding a new uri's
There is a race condition adding new uri's right after receiving
the `discovered` event. We must wait until we have cleaned-up
the last discovery to start processing the new one

Fix #3758

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7934>
2024-11-21 00:03:09 +00:00
Nirbheek Chauhan
b87a5677a0 meson: Don't use libdrm_dep in cc.has_header()
It can't handle subproject dependencies. Pointed out in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4033#note_2665974

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7932>
2024-11-20 19:22:13 +00:00
Philippe Normand
7ecb189eb9 sdp: Add debug categories for message and mikey modules
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7926>
2024-11-19 20:48:00 +00:00
Guillaume Desmottes
0aa34b7527 libav: avviddec: log the old resolution when updating the pool
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7925>
2024-11-19 20:04:13 +00:00
Guillaume Desmottes
1cfc47dd08 libav: viddec: provide details if meta has the wrong resolution
Will produce a more useful assert error message.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7925>
2024-11-19 20:04:13 +00:00
Guillaume Desmottes
4e16445e6e Revert "avviddec: Unlock video decoder stream lock temporarily while finishing frames"
This reverts commit 6b18f02339.

This commit introduced a regression, see
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4032

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7921>
2024-11-19 11:54:12 +01:00
Robert Rosengren
31770d3fda gstdeviceprovider: fix leaking hidden providers
Free list of hidden providers upon stop and dispose.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7915>
2024-11-18 11:10:37 +00:00
Albert Sjolund
dfbb6dafca rtpmanager: don't map READWRITE in twcc header ext
There is no need to map the buffer as writable, as there is
only a read performed on the mapped buffer. This is in line
with other header extensions, as no other extensions maps
it as readwrite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7910>
2024-11-17 11:31:16 +00:00
Philippe Normand
f1d4e594d9 playbackutils: Fix caps leak in get_n_common_capsfeatures()
The gst_static_caps_get() return value is transfer-full.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7909>
2024-11-17 10:36:26 +00:00
Nicolas Dufresne
27533302b8 glupload: Upgrade uploader selection message to INFO
This allow using INFO log to quickly see what uploader we
picked. This is very useful as the DEBUG category has became
very noisy.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7907>
2024-11-16 15:49:33 +00:00
Nicolas Dufresne
0e672340e5 glupload: dmabuf: Fix emulated tiled import
The added check for LINEAR modifier broke dmabuf import for
NV12 emulation (R8/RG88) of all sort (linear and tiled).

Fixes !5461

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7907>
2024-11-16 15:49:33 +00:00
Sebastian Dröge
65d18bca7d audiostreamalign: Don't report disconts for every buffer if alignment-threshold is too small
If it is too small, the maximum allowed diff becomes 0 samples which would then
trigger if there is no discontinuity at all.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7906>
2024-11-16 01:26:01 +00:00
Jan Alexander Steffens (heftig)
653983addc mpegtsmux: Mux timestampless buffers immediately
Instead of leaving them queued indefinitely, or until we're timing out
and it's the only buffer queued.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7901>
2024-11-15 19:19:32 +00:00
Sebastian Dröge
3afff17117 mpegtsmux: Don't time out in live mode if no timestamped next buffer is available
The muxer can only advance the time if it has a timestamped buffer that can be
output, otherwise it will just busy-wait and use up a lot of CPU.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3912

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7901>
2024-11-15 19:19:32 +00:00
Jan Alexander Steffens (heftig)
b79f1a6b1a flvmux: Mux timestampless buffers immediately
Instead of leaving them queued indefinitely, or until we're timing out
and it's the only buffer queued.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7902>
2024-11-15 17:45:30 +00:00
Sebastian Dröge
39d4740cc4 flvmux: Don't time out in live mode if no timestamped next buffer is available
But also don't wait for a buffer on both pads, which might take forever in case
of gaps in one of the streams.

The muxer can only advance the time if it has a timestamped buffer that can be
output, otherwise it will just busy-wait and use up a lot of CPU.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7902>
2024-11-15 17:45:30 +00:00
Robert Rosengren
15602d5c14 udpsrc: protect cancellable from unlock/unlock_stop race
Protect cancellable from simultaneous unlock and unlock_stop calls from
basesrc class.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7897>
2024-11-15 12:39:16 +00:00
Edward Hervey
2083aae9e3 ci: Don't use a massive image for the cerbero trigger
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4024

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7896>
2024-11-15 11:19:14 +00:00
Théo Maillart
81f2488f20 mpegvideoparse: do not set delta unit flag on unknown frame type
When encoding an image to mpeg2 video, with something like:
  gst-launch-1.0 encodebin name=e profile=mpegpsmux:video/mpeg,mpegversion=2,systemstream=false ! \
                 filesink location=sample.mpg filesrc num-buffers=1 blocksize=$(stat -c%s sample.png) \
                 location=sample/dts.png ! pngdec ! e.
The only frame's type is set to an invalid value 0
The consequence is that mpegvideoparse sets the delta unit flag on the buffer because
it is not an I frame, then decodebin3 drops this only frame because the delta
unit flag is set and the decoder receives eos before it was able to receive any
encoded data

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7876>
2024-11-12 16:30:26 +00:00
Taruntej Kanakamalla
f10c800b8e ptp: use ip_mreq instead of ip_mreqn for macOS
To join a multicast the macOS still uses the interface address
from the ip_mreq instead of the ip_mreqn unlike other Linux systems.

So add a new conditional block for macOS to use ip_mreq for IP_ADD_MEMBERSHIP
and ip_mreqn for IP_MULTICAST_IF

This is similar to the fix in the glib for multicast join/leave
operation on macOS
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4333

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7864>
2024-11-11 11:33:06 +00:00
Sebastian Dröge
6e8ecb1c1a ccconverter: Don't override in_fps_entry when trying to take output
This allows to handle CDP streams where the framerate is not provided by the
caps and generally gives preference to the framerate inside the CDP packets over
the one in the caps.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7862>
2024-11-10 10:47:39 +00:00
Edward Hervey
7a875a0474 urisourcebin: Also use event probe for HLS use-cases
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3957

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7857>
2024-11-08 14:49:27 +00:00
Sebastian Dröge
09179fa413 timecodestamper: Don't fail the latency query in LTC mode if we have no framerate
Only in LTC mode we introduce additional latency that is depending on only on a
property and not on the framerate, so waiting for the framerate is not necessary.

In all other modes no latency is introduced at all and the latency query can
simply be proxied.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7846>
2024-11-06 15:45:02 +00:00
Stefan Riedmüller
ab91eb1ac6 v4l2object: Remove little endian marker on 8 bit bayer format names
There is no point in having an endian marker on 8 bit bayer format names since
it is just one byte. Thus remove it.

This also fixes an incompatibility with plugins bad where there is no endian
marker on 8 bit bayer format names as well.

Fixes: #3729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7845>
2024-11-06 14:52:34 +00:00
Jan Schmidt
d6a082d58a video-converter: Set TIME segment format on appsrc
Combine the appsrc and appsink settings into one place and ensure that
the appsrc will output a TIME segment, to avoid incorrect segment format
criticals in some situations.

The D3D11 path was already setting the segment format correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7842>
2024-11-06 09:57:18 +00:00
Philippe Normand
4bfd700c52 rtpfunnel: Ensure segment events are forwarded after flushs
gst_rtp_funnel_forward_segment() returns early when the current_pad is set.
Without clearing current_pad a critical warning would be emitted when
attempting to chain a buffer following a flush.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7835>
2024-11-05 16:57:49 +00:00
Sebastian Dröge
ca0be08d61 avcodecmap: Use avcodec_get_supported_config() instead of struct fields
The struct fields are deprecated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7833>
2024-11-05 16:13:32 +00:00
Andoni Morales Alastruey
fac2de9e80 cocoa: fix rendering artefacts in retina displays
Set the correct contentsScale in the CALayer instead of using
the default (1.0) which causes rendering artefacts in retina
displays due to using a smaller bitamp than the display size.

See: https://developer.apple.com/documentation/quartzcore/calayer/1410746-contentsscale?language=objc

Fix: #3942
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7834>
2024-11-05 14:39:28 +00:00
Matthew Waters
40fd20e7a6 ci: handle changing wrap file refs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7809>
2024-11-05 10:21:44 +00:00
Matthew Waters
d5057c904c ci: update macos CI to 15 Sequoia
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7809>
2024-11-05 10:21:44 +00:00
Tim-Philipp Müller
61b9ba092c gst-plugins-ugly: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
2024-11-03 18:34:50 +00:00
Tim-Philipp Müller
a35479e418 gst-plugins-bad: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
2024-11-03 18:34:50 +00:00
Tim-Philipp Müller
ce48b50278 gst-plugins-good: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
2024-11-03 18:34:50 +00:00
Tim-Philipp Müller
e4022f25cd gst-plugins-base: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
2024-11-03 18:34:50 +00:00
Tim-Philipp Müller
d05654f3c7 gstreamer: update translations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7820>
2024-11-03 18:34:50 +00:00
Tim-Philipp Müller
ff302eb1fe ci: tag rustfmt job as placeholder job
Not really cpu bound and should finish quickly in any case.
Reduces wait time for initial stage and contention with the
normal job queue.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7815>
2024-11-02 00:45:59 +00:00
Sebastian Dröge
377b4525d9 rtph264depay, rtph265depay: various parameter-set string handling fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7812>
2024-11-01 16:39:02 +00:00
Albert Sjolund
6575d1de8e appsrc: Fix use-after-free when making buffer / buffer-lists writable
make_writable can cause a reallocation of the buffer, meaning that obj
would point to an invalid object, both for buffer and for bufferlist.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7806>
2024-11-01 00:56:04 +00:00
Edward Hervey
2e198d4e59 validate: Fix leaks in ssim components
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7802>
2024-10-31 12:18:41 +00:00
Tim-Philipp Müller
5630be477f Back to development after 1.24.9 2024-10-30 20:40:12 +00:00
Tim-Philipp Müller
b309f90bfd Release 1.24.9 2024-10-30 20:33:30 +00:00
Sebastian Dröge
1b302d01f7 flvmux: Consider timestamps before segment start to map to segment start
Instead of mapping them to running time 0, which is wrong if e.g. the segment
base is not equal to 0.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7798>
2024-10-30 19:55:01 +00:00
Sebastian Dröge
cb6bb1a0b3 flvmux: Use first running time on the initial header instead of 0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7798>
2024-10-30 19:55:01 +00:00
Edward Hervey
4a41f6f3fe srt: Don't attempt to reconnect on authentication failures
This is a fatal issue which can't be recovered

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1550

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7797>
2024-10-30 19:14:35 +00:00
Thibault Saunier
f408cda172 multiqueue: Do not unref the query we get in pad->query
We do not own any ref to queries when running them.

If we end up processing the query from the streaming thread, it means that it was
a serialized query, and the query is being waited to be processed on the sinkpad
streaming thread, thread which owns the reference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7796>
2024-10-30 18:26:38 +00:00
Johan Sternerup
041a0f9e5e twcc: Handle wrapping of reference time
Previously the wrapping of the 24-bit reference time was not handled
correctly when transforming it into GstClockTime. Given the unit of 64ms
the span that could be represented by 24 bits is 12 days and depending
on the start value we could get a wrapping problem anytime within this
time frame. This turned out to be particularly problematic for the GCC
algorithm in gst-plugins-rs which tried to evict old packages based on
the "oldest" timestamp, which due to wrapping problems could be in the
future. Thus, the container managing the packets could grow without
limits for a long time thereby creating both CPU and memory problems.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7792>
2024-10-30 14:33:54 +00:00
Emil Ljungdahl
9cde2f0927 webrtcbin: Clean up bin elements when datachannel is removed
When a datachannel within a session is removed after proper close,
reference to the error_ignore_bin elements of the datachannel
appsrc/appsink were left in webrtcbin.

This caused the bin-objects to be left and not freed until the whole
webrtc session was terminated. Among other things that includes a thread
from the appsrc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7791>
2024-10-30 13:48:01 +00:00
Jordan Petridis
206cb5c8f0 ci: Set SUBPROJECTS_CACHE_DIR variable
It's used in the build script and it fails if it's undefined.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7789>
2024-10-30 12:08:06 +00:00
Nicolas Dufresne
e6d95f4385 wayland: Add NV15 support
This format, which maps to NV12_10LE40 in GStreamer is produced by Rockchip
video decoders when decoding 4:2:0 10 bit content.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7789>
2024-10-30 10:08:06 +00:00
Seungha Yang
0d6c356dfc ci: Update fluster VP8 result
Updating vp80-03-segmentation-1425 and vp80-03-segmentation-1436
results

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7787>
2024-10-30 01:16:58 +00:00