Commit graph

121648 commits

Author SHA1 Message Date
Benjamin Gaignard
7fb19b37d8 v4l2codecs: av1: Allow inter-frames resolution change
When the stream resolution change it is needed to negotiate
a new pools and to update the caps.
Resolution change could occurs on a new sequence or a new
picture so move resolution change detection code in a common
function.
Only call streamoff if the resolution occur while decoding a key frame.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8064>
2025-02-10 13:36:57 +00:00
Benjamin Gaignard
88e0b6ba2d codecs: av1 decoder: Drain output buffers resolution change
We must drain the pending output picture so that subclass can renegotiate
the caps. Not doing so while still renegotiating would mean that the
subclass would have to do an allocation query before pushing the caps.
Pushing the caps now without this would also not work since these caps
won't match the pending buffers format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8064>
2025-02-10 13:36:57 +00:00
Glyn Davies
f32402e9b4 h264parse: Force full timestamp on all timecode updates. Was invalid between midnight and 1am
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8401>
2025-02-10 11:50:23 +00:00
Carlos Bentzen
a5c6eea957 qtdemux: add support for VVC/H.266
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5088>
2025-02-10 09:20:22 +00:00
Carlos Bentzen
7faa031e0e pbutils: add profile-tier-level functions for VVC/H.266
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5088>
2025-02-10 09:20:22 +00:00
Tim-Philipp Müller
bf5f642841 Back to development after 1.25.50 2025-02-09 17:47:32 +00:00
Tim-Philipp Müller
3e8f88d756 Release 1.25.50 2025-02-09 17:35:17 +00:00
Nirbheek Chauhan
50680fe32f opencv: Fix pkgconfig dependency name and gstopencv_dep
Broke in bbdf8f5996

Also print the prefix inside which we try to detect opencv's data dir.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:32 +00:00
Nirbheek Chauhan
73da2edbba opencv: Fix hand detect profile paths
This is the same mechanism used by facedetect

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:32 +00:00
Nirbheek Chauhan
ce73ab5245 docs: Fix opencv pkgconfig file name
Most distros ship OpenCV 4.x, and the pkgconfig file for that is
`opencv4`. OpenCV 3.x uses `opencv`, and Fedora ships both files with
OpenCV 4.x for backwards compat.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:31 +00:00
Nirbheek Chauhan
8a36647064 ci: Fix builddir typo in build-docs script
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:31 +00:00
Nirbheek Chauhan
c2db03a323 soup: Ensure that libsoup RPATHs are added with Homebrew too
With the old method of adding build RPATHs, only the libsoup as
a subproject was supported. However, it's possible to use Homebrew for
libsoup too by adding libsoup as a dependency to the target (even
though we don't link to it).

Apple ld will not add a LC_LOAD_DYLIB entry for a library unless there
are symbols that need it because meson passes `-dead_strip_dylibs`, so
we can do this without issue.

As a bonus, this ensures the correct build RPATHs in all cases.

Additionally, we still need to explicitly add an LC_RPATH for the
installed case.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8403>
2025-02-09 14:25:31 +00:00
Cheung Yik Pang
5e086ea3f5 va: Add VP8 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
59104fb3a3 va: Add VP9 alpha decode bin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
Cheung Yik Pang
fd22a9c090 va: Add codec alpha decode bin base class
A VA-API decoder bin base class for codecs with alpha channel support.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8180>
2025-02-08 22:43:00 +00:00
dukesook
54830e7c0a qtdemux: Demux Uncompressed MP4
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7985>
2025-02-08 10:15:06 +00:00
wbartel
8135a6689b webrtc: fix pkg-config missing sdp dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8433>
2025-02-08 02:48:28 +00:00
Guillaume Desmottes
b5fdb5aec5 codecs: include gsth266decoder.h when building gir
Will hopefully fix cerbero ci job.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8430>
2025-02-07 23:04:16 +00:00
Nicolas Dufresne
8d1060f205 v4l2codecs: Add NV12_10LE40 / NV15 support
NV15 is common format on RK platform and is that only uncompressed 10bit
format the display controller on RK3588 supports.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8426>
2025-02-07 22:17:17 +00:00
Nicolas Dufresne
5b1fb0e581 video: Add DRM for NV12_10LE40 to DRM_FORMAT_NV15
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8426>
2025-02-07 22:17:17 +00:00
Kévin Commaille
9aeaea29f5 zbar: allow to get symbol as bytes
It would be possible to get some binary symbols with a string, but if
they contain NUL bytes, the string will be cut off. To fix this,
provide the decoded symbol as a GBytes too.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>
2025-02-07 20:53:50 +00:00
Kévin Commaille
fcd2e61330 zbar: allow to enable binary mode
Added in zbar 0.23.1, it is a mode that prevents zbar from trying to
convert the binary data of QR codes to text by guessing the encoding.

Add a property that changes the configuration of the zbar image scanner
accordingly.

<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4688>
2025-02-07 20:53:50 +00:00
Alicia Boya García
2f8b1f2865 log tracer: Use strings instead of integer codes
In many places in the log tracer %d was used for data types we have
string format functions. This is especially problematic when the data
type is not immediately obvious to the reader (e.g. gboolean vs
GstFlowRet, where TRUE==1 but GST_FLOW_OK==0) or the values are not easy
to memorize (GST_STATE_CHANGE_PLAYING_TO_PAUSED==35).

This patch replaces all the integer codes with string representations so
that the logs are easier to understand by humans.

The formatting of GstBufferList by the log tracer is also updated to use
GST_PTR_FORMAT instead of a raw pointer, so the user can see the
timestamps, size and number of buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8414>
2025-02-07 18:48:52 +00:00
He Junyan
f63a70966e av1parse: Handle the padding OBU correctly
The current av1parse can not find the edge of frame correctly if there
is padding OBUs inside the stream. We now use a flag seen_non_padding to
check whether we see some valid data after a data push. Then the padding
OBUs will be the part of the new frame.
We also refine the code logic to make the code more readable.

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4044
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8269>
2025-02-07 16:56:53 +00:00
L. E. Segovia
88cead25ee hooks: undelete the Python/docs precommit hook
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8432>
2025-02-07 14:11:23 +00:00
Philippe Normand
a39f465692 rtpsession: Fix heap-use-after-free of twcc_packets structure
This is a regression introduced by 90d99c7b52.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8427>
2025-02-07 12:52:06 +00:00
Carlos Bentzen
bb74aceb5d h266parse: clean up unused APS fields
Since APS is always carried in-band, we don't need to keep the APS
NALs around in the parser anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
be98ba00d7 h266parser: do not fail when extension flags are set
For VPS, PPS, APS, OPI and DCI, the extension flags are the last syntax
in the structures, and according to the spec, should be ignored if set to 1.

Therefore, we can just ignore them rather than failing.

This fixes a few failures in fluster, like in the PSEXT_A_Nokia_2 stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
3a12b0beaa h266parse: add tests for vvc1 and vvi1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
5fad23d26b h266parse: enable vvc1 and vvi1 stream formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
05d4a2022e h266parse: handle packetized frames
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
551782b32b h266parse: don't prepend APS NALs on IDR frames
Instead, APS NALs can just be pushed an in-band NALs like PH and SEI.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
c7e9aba025 h266parse: negotiate before handling codec_data NALs
If we find VPS/SPS/PPS in codec_data and call gst_h266_parse_process_nal
with them, we need to have negotiated before in order to correctly
process them with flags like h266parse->transform set or not depending
on the negotiation. This is important because in certain vvc1/vvi1 streams we
may have correct codec_data but faulty parameter sets in the stream and
we would want to push the parameter sets from codec_data first.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
f4f7e99e05 h266parse: parse codec_data
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
8607ccdf2c h266parse: update IDR position in more cases
The IDR position should be updated if we're processing an
IDR frame or pushing codec NALs. Not only when picture_header_in_slice_header_flag
is set.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
7c29249ca5 h266parse: fix typos
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
fe61b43814 h266parse: implement make_codec_data
implement serialization of codec_data containing VvcDecoderConfigurationRecord
as defined in ISO/IEC 14996-15.

The VPS/SPS/PPS NALs are added to the codec_data. APS NALs could be
optionally included as well but will be pushed in-band instead, because:
1. Logic is easier that way. We'd have to filter out for PREFIX_APS only
   (SUFFIX_APS aren't allowed in codec_data).
2. APS NALs can also be sent for every non-keyframe slice, and often are, so just pushing
   them in-band makes more sense to have less to keep track and avoid possible
   duplicates.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:17 +00:00
Carlos Bentzen
4545d199c3 h266parser: add API to parse VVCDecoderConfigurationRecord
VVCDecoderConfigurationRecord is present in ISOBMFF files carrying
VVC/H.266 streams via the vvcC box, as defined in ISO/IEC 14496-15.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8359>
2025-02-07 08:25:16 +00:00
Nirbheek Chauhan
0aacc1a6a9 opencv: imgcodecs.hpp is also needed to build the plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8418>
2025-02-07 02:32:03 +00:00
Nirbheek Chauhan
bbdf8f5996 meson: Modernize opencv build definitions
Use the fs module instead of using `run_command('test')`, simplify
some indentation, fix dependency management

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8418>
2025-02-07 02:32:03 +00:00
Sebastian Dröge
7346764b8e play: Distinguish missing plugin errors and include more details in error/warning messages
Include the URI (and if possible) stream-id in the messages. These are provided
by uridecodebin3 / decodebin3 in most cases but there is fallback code to guess
them otherwise.

For missing plugin errors also the installer details are included.

The URI is included in all message types.

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

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8236>
2025-02-07 01:02:01 +00:00
Seungha Yang
5dd695f81f docs: Add nvdswrapper docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8425>
2025-02-06 17:48:47 +00:00
Philippe Normand
1baa10ed07 wpe: Reduce gpointer usage in ThreadedView
Those gpointers were introduced when we had to support some old WPE API, no need
for them anymore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8413>
2025-02-06 17:00:39 +00:00
Jan Schmidt
9adc7bd9f0 test-onvif example: Add support for AAC backchannel
Detect upstream backchannel codec and support AAC in MPEG4-GENERIC
encapsulation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
d2dcfea052 rtsp-server: fix for creating backchannel stream dynamically
If collecting the backchannel stream after the stream has begun
preparing, make sure to join it to the RTSP media bin, as is
done for dynamic payloaders in the pad-added handler. Add a
new internal stream creation method for it, that could be
publically exposed later if it proves useful.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
6921405f40 onvif-media-factory: Fix pad ref leak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
37f1077284 rtsp-media: Only wait for sender streams to block
When prerolling / blocking an RTSP media, don't consider receiver
streams like onvif backchannel in the 'is everything blocked' check,
as those streams won't receive data until after the RTSP stream
is running.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
1a4b683225 onvif-media: Error for streams that have EMPTY/ANY caps
Don't silently fail to put a stream in the SDP if the caps are
empty or ANY

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
c83c7f9a92 rtsp-onvif-media: Add some debugging
Add a debug category and some debug to the ONVIF media

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
84f8fcedc6 rtsp-onvif-media-factory: Add create_backchannel_stream() vfunc
Move the functionality that collects the backchannel bin and turns
it into an RTSP stream object into a vfunc so that implementations
can override the behaviour or timing of the call

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00