Commit graph

8272 commits

Author SHA1 Message Date
Ruben Gonzalez
47c29127b6 tracers: Fix issue in the BC layer added in refactor to simplify params handling
Issue added in refactor done in commit 5e18499372, which includes a
logic to not break the backward compatibility. Issue found with Rust
pcap-writer tracer, fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/644

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8248>
2025-01-06 20:29:00 +01:00
Dean Zhang (张安迪)
e000a1ec1f v4l2videodec: release decode only frame in input list
For some frames with decode-only flag, the v4l2 decoder will not
put them in output list. The corresponding decode-only frames will
be still kept in input list, which may cause potential performance
issue when the input list is full. So release the decode-only frames
according to the decode-only flag after they are processed by decoder
driver.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8153>
2025-01-06 16:27:53 +00:00
Sebastian Dröge
06a0ab7b33 matroskamux: Consider audio buffers as keyframes when writing out simpleblocks
Otherwise mpv complains and considers the file broken.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8225>
2025-01-06 11:43:59 +00:00
Sebastian Dröge
32e79c1041 matroskamux: Fix audio-only stream conditions
The num_a_streams and related counters are used for pad numbers and don't give
the absolute number of streams in this run of the muxer.

Also, consider the output audio-only if there are more than 1 audio stream too.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8225>
2025-01-06 11:43:59 +00:00
Christian Meissl
422fca76ca qtdemux: fix accumulated base offset in segment seeks
analog to fix for matroska-demux
commit f3c126d07c

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8240>
2025-01-06 09:44:00 +00:00
Guillaume Desmottes
94253529c4 glmixerbin: derivate the mixer name from the bin name
Make it easier to identify a specific instance in logs in complex
pipelines.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8183>
2025-01-06 07:50:43 +00:00
Guillaume Desmottes
69cd1a2d60 glcontext: add trace log when scheduling function in GL thread
There is already a log when the function is executed. Adding one when
scheduled can be useful to know how long we are waiting.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8190>
2025-01-06 06:56:50 +00:00
Sam James
775a2bd26f codec2json: move option to right section
It has an external dependency (json-glib) so should be under
that heading.

Fixes: fd588a50e4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8238>
2025-01-04 20:30:07 +00:00
Sam James
fd54c57260 analyticsoverlay: move option to right section
It has an external dependency (pango/cairo) so should be under
that heading. Also, fix an inconsistency with the ':' style.

Fixes: 95464c8977
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8238>
2025-01-04 19:53:00 +00:00
Tim-Philipp Müller
64970e721f tcpclientsrc, tcpserversrc: don't try to get stats from NULL socket
Fixes criticals during gst-inspect.

Wasn't an issue before because the entire stats gathering
code path was inactive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8211>
2025-01-04 12:20:18 +00:00
Tim-Philipp Müller
b4bef7fd35 tcpclientsrc, tcpserversrc: fix tcp stats gathering
Fix-up after commit e56b78417. Unclear how that could
ever have worked. Code only built because basically
everything was disabled due to the missing config.h
include.

- Include config.h so that HAVE_* defines are available.
- Fix missing variable declarations that somehow disappeared
  when moving the stats gathering code block into a separate
  function in a new file.
- Fix structure variable modified to match name in new function.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8211>
2025-01-04 12:15:03 +00:00
Daniel Morin
e272e229e8 python tests: Adapt analytics unit test
- Adapt test to batch size moved into dims field

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8191>
2025-01-03 23:14:39 +00:00
Daniel Morin
0a343fa738 analytics: remove batch-size
- Batch-size will be the outer-most dimension. Presence of batch dimension can
  be identified using `dims` and `id`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8191>
2025-01-03 23:14:39 +00:00
Sebastian Dröge
2f3deb4009 message: Remove nullable annotation from gst_message_writable_details()
This function can never return NULL as the details are created for the message
if there are none yet.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8235>
2025-01-03 13:21:28 +00:00
Sebastian Dröge
0aeba9275c qtdemux: Add support for ISO/IEC 23003-5 raw PCM audio
And also support the ISO/IEC 14496-12 chnl channel layout box as required
by ISO/IEC 23003-5.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8171>
2025-01-03 10:11:31 +00:00
Sebastian Dröge
fd91abfc9a audio: Add top-surround-left and right channel positions
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8171>
2025-01-03 10:11:31 +00:00
Sebastian Dröge
9e3bb0a009 audio: Add new gst_audio_reorder_channels_with_reorder_map()
This allows reordering the samples with a pre-calculated reorder map instead of
calculating it again every time.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8171>
2025-01-03 10:11:31 +00:00
Sebastian Dröge
f39812dc8f pad: Reset not-linked last flow return on reconfigure events
The pad might actually be linked now and we'd only find out by actually pushing
a buffer downstream again.

The last flow return is used by GstFlowCombiner to detect if all pads are not
linked, and not resetting this when re-linking creates a race condition when
switching between pads where all pads are temporarily considered not linked.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8224>
2025-01-02 16:23:19 +00:00
Jochen Henneberg
68cdeeb882 qtdemux: Undef helper macros after use
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
2025-01-02 15:22:47 +00:00
Jochen Henneberg
d86f60ffdf qtdemux: Validate matrix before doing simplified multiply
The matrix multiplication makes some assumption about the element
values to simplify the math with fixpoint values. If this is allowed
for the given matrices is now checked first.

Then the debug output for matrix and a comment have been fixed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
2025-01-02 15:22:47 +00:00
Jochen Henneberg
5c005733ea qtdemux: Fixup for orientation matrix parsing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
2025-01-02 15:22:47 +00:00
Jochen Henneberg
c4d0f4bbd9 qtdemux: Use mvhd transform matrix and support for flipping
The mvhd matrix is now combined with the tkhd matrix. The combined
matrix is then checked if it matches one of the standard values for
GST_TAG_IMAGE_ORIENTATION.
This check now includes matrices with flipping.

Fixes #4064

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8127>
2025-01-02 15:22:47 +00:00
Sebastian Dröge
f0a8938133 decodebin3: Free main input even if it is not part of the list of inputs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8216>
2025-01-02 14:30:02 +00:00
Seungha Yang
126d6f0815 d3d12screencapturesrc: Add support for HDR capture in DDA mode
Use IDXGIOutput5::DuplicateOutput1() if HDR is enabled.
Note that scRGB color space is not defined in GStreamer,
this element will output SDR tonemapped frame
with linear or reinhard filtering.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3834
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8227>
2025-01-02 06:55:33 +09:00
Seungha Yang
2ff7b5a5ab d3dshader: Add sampling pixel shader for scRGB SRV
Shaders required for HDR capturing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8227>
2025-01-02 05:57:38 +09:00
Albert Sjolund
97a3bba629 webrtc: add new post-rtp-aux-sender signal
Adds a new signal to webrtcbin, to allow for placement
of an object after rtp, before sendbin. This is usable for
objects such as congestion control elements, that don't want
to be burdened by the synchronization requirements of rtpsession.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>
2025-01-01 19:34:55 +00:00
Albert Sjolund
90d99c7b52 rtpsession: send twcc struct in both directions
As there are signals around rtpsession in both directions,
send twcc data both upstream and downstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7940>
2025-01-01 19:34:54 +00:00
Tim-Philipp Müller
a2119fb12e aacparse: add test to make sure output caps are set also on reuse
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/350

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8214>
2025-01-01 15:30:32 +00:00
Tim-Philipp Müller
9aab2ddd13 tsdemux: fix JPEG XS framerate handling for 29.97fps
.. and other framerate values with a 1.001 denominator.

The coded framerate denominator value is a code that maps to
either 1 (for 1) or 1.001 (for 2) not a direct value.

Before, 29.97fps would be announced as 15fps because it
would calculate 30/2 instead of 30/1.001.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8226>
2024-12-31 16:19:16 +00:00
Samuel Thibault
faa4d572c4 meson: Also disable drm on GNU/Hurd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8223>
2024-12-30 22:53:02 +01:00
Seungha Yang
f1f5d6002e docs: Update qsv plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
21606dac35 docs: Update d3d11 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
9444a90bc9 docs: Update d3d12 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
ca56fd285a d3d12: Add "Since" markers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
6f5d58da11 docs: Add asio plugin docs
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3745
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
256005be13 asio: Add "Since" markers and fix typos in property description
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Seungha Yang
9ed220bafb docs: Add webview2 plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220>
2024-12-29 14:24:55 +00:00
Sebastian Dröge
9909654a9a play: Fix stream id leaks on initial stream selection
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
2024-12-28 13:51:50 +02:00
Sebastian Dröge
13ed55f0ee play: Actually check for valgrind for the tests
Other tests in gst-plugins-bad also assumed it to be checked.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
2024-12-28 13:51:50 +02:00
Sebastian Dröge
0464076b26 play: Fix tests after the switch to playbin3
And also fix various memory leaks and other issues that always existed
in the tests.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
2024-12-28 13:51:50 +02:00
Sebastian Dröge
1414b754c9 play: Port tests to libsoup 3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7650>
2024-12-28 11:49:42 +02:00
Sebastian Dröge
0b00cb04b3 play: Add stream-id based selection of streams to match better playbin3's API
As part of this

  - Add accessors for the stream ID and selection API based on the
    stream ID
  - Deprecate the old index-based APIs
  - Remove playbin support
  - Implement the track enable API based on stream selection

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7648>
2024-12-27 19:00:18 +00:00
Thibault Saunier
15e9573957 videoflip: Add support for Y444_16XX
Necessary code already existed, it was just a matter of advertising it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8177>
2024-12-27 14:58:38 +00:00
Tim-Philipp Müller
a3cdfc06b5 srtpdec: fix build when libsrtp1 is being used
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8204>
2024-12-23 21:38:35 +00:00
Philippe Normand
d4bfbdcfb4 wpe: Fix build for version 2.44
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8203>
2024-12-23 18:54:28 +01:00
Philippe Normand
17e5491b60 videodecoder: Gracefully handle missing data without prior input segment
Exit early in case the decoder has been resetted and hasn't received a new
segment event yet.

This was detected with netsim dropping buffers in a WebRTC pipeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8200>
2024-12-23 10:49:28 +00:00
Philippe Normand
7152d5c07a srtpdec: Fix a use-after-free buffer issue
The gst_srtp_dec_decode_buffer() function modifies the input buffer after making
it writable, so the pointer might change as well, depending on the refcount of
the buffer.

This issue was detected using a netsim element upstream of the decoder in a
WebRTC pipeline.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8198>
2024-12-22 15:00:07 +01:00
Robert Mader
04c6727fcd v4l2: object: Add P010 format
For 10bit content. Tested with HEVC on a Pixel3a (qcom).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8194>
2024-12-21 18:26:46 +01:00
Sebastian Dröge
d08fb9c241 baseparse: Add bitrate tags to empty taglists too
It's unclear why empty taglists should be handled in a special way. If the
subclass or upstream did not provide any tags at all then we can still provide
bitrate tags at least.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8157>
2024-12-21 13:07:44 +00:00
Hosang Lee
228dd25a0a mssdemux: Use gsturi structure to form fragment urls
We can use gst_uri_from_string_with_base () to join base url
and the fragment url path.
The previous method of forming base url in update_base_url(),
by looking for the string 'manifest' or 'Manifest' is insufficient.
A query may include these string in their paths and thus an invalid
base url string will be kept.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8193>
2024-12-21 10:29:48 +00:00