Commit graph

8736 commits

Author SHA1 Message Date
Alexander Slobodeniuk
f14cb6d704 baseqroverlay: fix missing GObject vtable chainups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>
2025-02-11 22:49:06 +01:00
Alexander Slobodeniuk
b4d0427ffb codec2json: fix missing GObject vtable chainups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>
2025-02-11 22:49:06 +01:00
Alexander Slobodeniuk
7c2f510cd0 gesbasebin: fix missing GObject vtable chainups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8452>
2025-02-11 22:49:06 +01:00
sergey radionov
d8a85e3793 v4l2: bufferpool: update buffer state after group release
This fixes the state that lead to a flood of "newly allocated buffer
%u is not free" warnings.

Fixes #1185 #3184 #4037

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>
2025-02-11 19:17:48 +00:00
sergey radionov
c79b256795 v4l2: allocator: added group pointer to "group-released" signal
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>
2025-02-11 19:17:48 +00:00
sergey radionov
5577174668 v4l2: allocator: G_TYPE defined for GstV4l2MemoryGroup
This is needed to pass the GstV4l2MemoryGroup structure through
a glib signal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8454>
2025-02-11 19:17:48 +00:00
Robert Mader
3d525f9b65 wayland: Report correct modifiers
Fixes: e0e7a11089 ("wayland: De-dupe filling caps format fields")
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8460>
2025-02-11 17:42:41 +00:00
Nirbheek Chauhan
5b201e42d2 gobject-introspection.wrap: Backport patch from upstream
This allows it to build with the newer glib subproject.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8363>
2025-02-11 15:41:38 +00:00
Carlos Bentzen
e2bd8809bf qtmux: add support for VVC/H.266 video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8436>
2025-02-11 03:25:38 +00:00
Hou Qi
5feb80193e v4l2: Add BGR10A2_LE support
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8154>
2025-02-11 02:18:30 +00:00
Seungha Yang
967ab2dc50 d3d12screencapturesrc: Fix infinite negotiation on resolution change
Updates crop rect if previous capture got error. The error might
result from resolution change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444>
2025-02-11 00:34:00 +00:00
Seungha Yang
1902b5ca1b d3d12screencapturesrc: Fix capturing rotated monitor
Acquired and reconstructed frames will have different resolution
if monitor is rotated. Use the copying logic of d3d11 implementation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444>
2025-02-11 00:34:00 +00:00
Carlos Bentzen
8cfbdd7cf6 matroskamux: add support for VVC/H.266 video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>
2025-02-10 22:49:35 +00:00
Carlos Bentzen
1be3d7f37b matroskademux: add support for VVC/H.266 video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>
2025-02-10 22:49:35 +00:00
Carlos Bentzen
deaa9260f3 matroska: add V_MPEGI/ISO/VVC id
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8441>
2025-02-10 22:49:35 +00:00
Carlos Bentzen
b848c91dec mpegtsmux: add support for VVC/H.266 video
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8435>
2025-02-10 20:57:40 +00:00
Edward Hervey
63a03b167a mpegts: Take into account adaptation field discont
If the flag is set, there is an *expected* discontinuity:
* For CC, we ignore the fact it's not contiguous
* For PCR, we acknowledge the values aren't contiguous

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8420>
2025-02-10 19:41:21 +00:00
Daniel Morin
0a562a92d7 srtsink: filter stream-config already sent
- Only sent buffer with GST_BUFFER_FLAG_HEADER if this buffer is not present in
  the streamheader

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8373>
2025-02-10 18:45:01 +00:00
Alexander Slobodeniuk
986d651fba kms: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
5b0934fa7f msesrc: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
5a14de805e vkphysicaldevice: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
7aa7e0e4b0 tracers: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
3cae6af025 examples/gl/gtk: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
7ae94a4bd0 autodetect: cleanup no-op check for "constructed" implementation
It's always implemented by GObject.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
b22c1da0d3 basetsmux: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
6016cdccf1 gl: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
610a6f3aaf videoflip: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
9f5c08931d rtpsrc: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
413ba205e1 ges: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
e9f488a2c5 audioaggregator: fix chaining up GObject's constructed virtual method
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:29 +00:00
Alexander Slobodeniuk
7aace62267 aggregator: fix chaining up in GObject "constructed" virtual methods
This doesn't always bring visible issue, but is formally incorrect:
not chaining up means that the code doesn't trigger GstObject and
GstElement "constructed" implementations.

In particular both GstElement's and GstObject's classes in
"constructed" may sign up this object for tracing and
GstObject's class sets GST_OBJECT_FLAG_CONSTRUCTED flag.

If we don't chain up none of this is going to be executed.

For example, before the fix leaks tracer couldn't detect this leak:
```c

int main (int argc, char **argv) {
  g_setenv ("GST_TRACERS", "leaks(name=all-leaks)", TRUE);
  g_setenv ("GST_DEBUG", "GST_TRACER:7", TRUE);
  g_setenv ("G_DEBUG", "fatal-warnings", TRUE);

  gst_init (&argc, &argv);

  // leak audiomixer: doesn't detect because it's based on the aggregator
  gst_element_factory_make ("audiomixer", "Jerry");

  // leak videoconvert: this one is detected fine because it's not
  // based on the aggregator
  //gst_element_factory_make ("videoconvert", "Tom");

  gst_deinit ();
  return 0;
}

// $ cc tst.c $(pkg-config --cflags --libs gstreamer-1.0) -o tst && ./tst
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416>
2025-02-10 17:49:28 +00:00
Stéphane Cerveau
178f05aac7 vkutils: update gst_vulkan_handle_set_context doc
device is a GstVulkanDevice

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7011>
2025-02-10 16:13:20 +00:00
Stéphane Cerveau
6989938dd8 vksink: allow multiple device registration
As for decoders, the plugin can register multiple
device present on the system.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7011>
2025-02-10 16:13:20 +00:00
Stéphane Cerveau
3e62435755 vkh26xdec: register multiple elements
Register the multiple devices available on the system in
separate features in the registry for the vulkan decoders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7011>
2025-02-10 16:13:20 +00:00
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
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
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
Jan Schmidt
a18b8c3f16 rtsp-media: Make sure to add appsink and appsrc to the pipeline
When decoupling send/receive loops in rtsp-media using appsink/appsrc,
put the appsink in the bin before linking it, as this code path
had that wrong.

For both sender and receiver paths, if the pipeline already started
also add the other appsrc/appsink of the pair to the pipeline
immediately instead of putting it in the pending elements list,
as they won't get added later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
11aed62ea8 rtsp-server: Make onvif sample support different codecs
Add some autoplugging to the onvif example to make it handle
different video codecs automatically, and add support for
outputting the audio stream too, if any.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Jan Schmidt
4fee71907a rtsp-server: Fix test-onvif-client position calculations
The example was switched to use autovideosink, which broke
current position calculation based on the last video frame.

Add code to retrieve the actual video sink from within autovideosink
to make it work again.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8378>
2025-02-06 12:31:59 +00:00
Alicia Boya García
cf2dc2f94c gstreamer: parse: Fix log in gst_parse_perform_link
Suppose you're trying to debug why this pipeline doesn't work:

```
$ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch-1.0 \
    videotestsrc num-buffers=10 ! x264enc name=enc ! mux.sink_0  \
    mpegtsmux name=mux ! fakesink
```

You will encounter this line in the logs:

> gst_parse_perform_link: linking some pad of GstX264Enc named enc to
> pad  mux of GstMpegTsMux named mux (0/1) with caps "(NULL)"

It would seem that the element name is being read as a pad name as well,
and that made me wonder if the parsing was not working. However, it was
just a bug in the code printing that log. This patch fixes that bug.

Note that it is possible to specify more than one pad name for each side
of the link. For instance, the following is a valid pipeline that will
remux the video and audio of an MP4 file into MKV:

```
$ GST_DEBUG=GST_PIPELINE:DEBUG gst-launch \
    filesrc location=input.mp4 ! qtdemux name=demux  \
    multiqueue name=mq  \
    matroskamux name=mux ! filesink location=output.mkv  \
    demux.video_0,audio_0 ! mq.sink_0,sink_1  \
    mq.src_0,src_1 ! mux.video_0,audio_0
```

The new logging accomodates this by using a new utility function to join
strings of pad name lists instead of `PRETTY_PAD_NAME_FMT` (which only
supports one pad name). For example:

> linking pads {video_0, audio_0} of GstQTDemux named demux to pads
> {sink_0, sink_1} of GstMultiQueue named mq with caps "(NULL)"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8415>
2025-02-06 11:20:39 +00:00
Patricia Muscalu
6b547ffc4b tracers: Fix build problem when tracer hooks are disabled
"undefined reference to `GST_TRACER_PAD_SEND_EVENT_PRE'
undefined reference to `GST_TRACER_PAD_SEND_EVENT_POST'"
errors are generated when trying to build GStreamer with
the following build configuration:
meson setup -Dgstreamer:tracer_hooks=false build

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8419>
2025-02-06 10:24:12 +00:00
Nicolas Dufresne
6fe6811eb7 docs: v4l2codecs: Add plugin index documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
ec8e2d6a31 doc: Push v4l2codecs documentation cache
These are normally autogenerated for the platform GStreamer runs on,
though it is convenient to have everything listed in the doc. This
was created with the new GST_V4L2_CODEC_GEN_DOC=1 environment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
bb37ea168d doc: v4l2codecs: Document all decoders
Add the documentation blob and since marker for all decoders.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3645f050af v4l2codecs: Remove uneeded per-codec abstract class
That subclass was not needed and was causing issues wit doc generation.
The only down side of removing it is that the decoder cast macro is no
longer type safe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
2197627336 v4l2codecs: Add Hardware class to alpha decoders
This was accidently omitted, this is needed wen filterting hardware
codecs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
3b9fc2a29e v4l2codecs: Cleanup alpha decodebin class header
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
d13a414ddc v4l2codecs: Don't needlessly expose decoder types
We have explicit register functions and have no use for these types in
other components.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
76b36f1493 v4l2codecs: Use pragma once
This is a nice cleanup and removes comment referring to D3D notably.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
5e6411e2f6 v4l2codecs: Enable AV1 kernel version check
The uAPI finally got merged into 6.5.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
18f3ea41c0 v4l2codecs: Add a doc generation mode
This is enabled through an env, it allow exposing all elements without
the needed driver supports. This is useful to fill the documentation cache.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5555>
2025-02-06 00:58:01 +00:00
Nicolas Dufresne
7edb6a5634 waylandsink: Prefer DMABuf over system memory
Swap the template and caps query around to that the sink can describe a
preference for DMAbuf over system memory.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:57:29 -05:00
Nicolas Dufresne
e953693aff v4l2: object: Use libgstvideo DMA DRM mapping
Complete the mapping by pulling GST/DRM mapping from libgstvideo. This removes
the duplication.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:57:29 -05:00
Nicolas Dufresne
388f86131f video: dma-drm: Extend the format mapping
These formats were mapped in video4linux2 plugin, but not here. Add them
so te video4linux2 plugin can use the global mapping.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:56:15 -05:00
Nicolas Dufresne
9eec7ddf19 video: Add support for big endian DRM formats
When a format is big endian, the 8bith of the fourcc is set. Handle this by
using a "_BE" suffix in serialization. The patch also update the design document
and introduce a unit test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8404>
2025-02-05 18:56:15 -05:00
Stéphane Cerveau
a960985d18 vkvideoencodeh265: fix PicOrderCntVal usage
remove `pic_order_cnt` member variable of GstVulkanH265EncodeFrame and
use always `pic_num` instead.

Intialize first `pic_num` value in test_encoder_h265_i_p.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8408>
2025-02-05 18:33:36 +00:00
Andoni Morales Alastruey
bc5e1eeb16 build: remove gst-indent as a subproject
gst-indent is now installable with pip. Remove it as
a subproject and update the documentation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8402>
2025-02-05 17:43:57 +00:00
Stéphane Cerveau
bd62300d22 vkvideoencodeh26x: tests: set constant qp
Set constant qp to 26 in between 0 and 51, the qp range
for h264 and h265.

minQp in case of ANV is 10 for h265

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8407>
2025-02-05 16:48:56 +00:00
Seungha Yang
fbf698cc0b mediafoundation: Enable MinGW build
Update MinGW toolchain in cerbero can support MediaFoundation

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
7108147d78 mediafoundation: Use DEFINE_GUID instead of DECLSPEC_UUID
MinGW will not define IID for custom COM object

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
f57162deeb mediafoundation: Fix GUID_NULL related MinGW build error
Include cguid.h for GUID_NULL

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Seungha Yang
66b92465cd mediafoundation: Fix various GCC warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8406>
2025-02-05 16:03:10 +00:00
Corentin Damman
0268ee9c52 pluginloader-win32: create no window
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8387>
2025-02-05 14:18:22 +00:00
Robert Mader
12d2a4e2a1 matroskademux: Implement rotation tag support
Similar to qtdemux.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.
In particular the Yaw value seems to get ignored by many clients.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 13:26:08 +01:00
Robert Mader
a7c2899990 matroskamux: Implement rotation tag support
Similar to qtmux, but for mkv and webm containers.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.
In particular the Yaw value seems to get ignored by many clients.

Can be tested with:

```
gst-launch-1.0 \
videotestsrc num-buffers=90 ! \
taginject tags="image-orientation=rotate-270" ! \
capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
videoconvert ! \
queue ! \
vp8enc ! \
queue ! \
webmmux ! \
filesink location=./test.webm
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 12:03:26 +00:00
Robert Mader
b2702b6f10 matroska: Add projection IDs
These will allow us to support rotate methods with matroska v4 and
the corresponding webm.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8319>
2025-02-05 12:03:26 +00:00
He Junyan
e25ca874e1 va: Implement the VA h266 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5865>
2025-02-05 18:57:06 +08:00
He Junyan
0ce5fe3cc9 codecs: Add the H266/VVC decoder base class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5865>
2025-02-05 18:57:06 +08:00
Philippe Normand
5de3cfca31 oggdemux: Fix racy decode error
Sometimes the seek to the end of file to determine the duration would trigger a
reset of the source pads, that would confuse the decoder downstream and trigger
an error. So the proposed fix is to not reset pads when the segment event being
processed is the consequence of a seek performed to determine the duration.

Fixes #4212

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/937>
2025-02-04 18:56:25 +00:00
Seungha Yang
bf98e200b2 mfdevice: Unregister device notification callback on stop
... as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
972da9cab9 mfvideoenc: Fix profile string check
profile_str is not std::string. Use strcmp instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
73f8de3305 mfdevice: Fix memory leak
Release resources on dispose() as intended

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8405>
2025-02-03 22:34:27 +00:00
Seungha Yang
91def8d4ad meson: Check d3d12video header for MinGW build
Old MinGW toolchain does not ship the header

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8400>
2025-02-03 21:24:47 +00:00
Michael Tretter
1a8143f721 videotestsrc: fix build if adder is disabled
The videotestsrc is not build if the adder plugin is disabled. This is a
copy/paste error introduced in Commit 3de86b2b97 ("docs: port plugins to
explicit sources").

Fix the check to actually test the 'videotestsrc' option.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8399>
2025-02-03 18:57:34 +00:00
Sebastian Dröge
97a6a8213c avcodecmap: Use gst_value_list_append_and_take_value() in two places
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8379>
2025-02-03 16:07:37 +00:00
Sebastian Dröge
6d772f6ba3 avcodecmap: Use actually supported channel counts for S302M
Only 2/4/6/8 channels are supported. Also this makes sure that the correct
sample rate is enforced (48kHz) in the template caps instead of allow any sample
rate and failing at runtime.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8379>
2025-02-03 16:07:31 +00:00
Sebastian Dröge
a1c123d342 cc708overlay: Deprecate element in favour of cea708overlay
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3459

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8397>
2025-02-03 09:51:53 +00:00
Tomas Granath
fa9b630fc8 matroskademux: Mark streams as EOS when outside the requested segment
Ensure that streams with no (more) data are marked as EOS when
advancing past the requested segment. Without this change the
EOS would be postponed to the end of the file in that case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8395>
2025-02-03 09:06:28 +00:00
Seungha Yang
353d963c77 d3d12mipgen: Respect requested mip levels
Don't waste GPU power by generating more levels than requested

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8394>
2025-02-02 21:01:42 +09:00
Seungha Yang
1dc09d67fe d3d12mipgen: Serialize root signature only once
... and reuse serialized blob

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8394>
2025-02-02 20:51:43 +09:00
Carlos Bentzen
4b0d555056 libav: add support for VVC/H.266 decoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7637>
2025-02-02 08:53:33 +00:00
Ruben Gonzalez
df7a8c8c40 meson: use nls option to ENABLE_NLS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7017>
2025-02-01 12:27:01 +00:00
Andoni Morales Alastruey
44720cd2f4 pre-commit: add documentation on how to use it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:15:26 -03:00
L. E. Segovia
2e11649264 docs: Move all references to gst-indent-1.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:15:26 -03:00
Andoni Morales Alastruey
4ad6d4f99d csharp: do not format autogenerated code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
eaec7d9acb bad: tools: update gst-{app,element,project}-maker for new gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
bc83c07727 scripts: update update-orc-dist-files.py scripts for new gst-indent
And fix python indentation with autopep8

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
Tim-Philipp Müller
41c097ed6c docs: update contributing + FAQ docs for gst-indent
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:43 -03:00
L. E. Segovia
fab3da528e gst-indent: build our own indent tool and make it available in the devenv
No more formatting mismatches owing to different GNU indent
versions shipped by different distro versions.

See #340

Co-authored-by: L. E. Segovia <amy@centricular.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5192>
2025-01-31 19:14:41 -03:00
Carlos Bentzen
8b464cd282 libav: map GST_VIDEO_FORMAT_GRAY10_LE16 to AV_PIX_FMT_GRAY10LE
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8388>
2025-01-31 14:17:05 +00:00
Seungha Yang
cc6941ed9a d3d12converter: Fix SRV descriptor heap size
Converter was allocating smaller size of descriptor heap
than required size when auto-mipgen is enabled

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8391>
2025-01-31 13:16:50 +00:00
Seungha Yang
a91275a71e examples: Add h264parser example
An example to show how to detect frame type using h264parser

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8338>
2025-01-31 10:53:19 +00:00
Jan Schmidt
31a3172bfe v4l2vidoedec: Fix caps negotiation in non-DRM case
Append acquired_caps to the filter_caps being built,
instead of a 2nd copy of acquired_drm_caps.

Fix a regression introduced in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7633
when downstream doesn't support DRM output.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8385>
2025-01-30 12:33:07 +00:00
Piotr Brzeziński
a88eda66d2 osxaudio: Always expose max amount of channels with no positions
For outputs with a high number of channels, macOS has a bug where
initially CoreAudio will report incorrect positions for all channels,
but after you run Audio MIDI Setup and configure the speaker layout
there, macOS will always report those few as positioned, with no option
to revert that (other than deleting some internal files).

In such scenario our code would just ignore all the unpositioned
channels. Since you can only position max. 16 channels in macOS, if you
had more on your output device, those would be unusable.

This commit makes sure that in addition to the usual positioned layout
(if there is one), we will expose caps for a no-positions layout that
always has the maximum amount of channels available.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>
2025-01-30 09:53:15 +00:00
Piotr Brzeziński
c5c5327df6 osxaudio: Work around invalid channel positions from CoreAudio
By default, for devices with larger amounts of outputs, CoreAudio can
provide invalid channel labels/positions, simply by starting at 0 and
incrementing forward. For example, values 19 through 32 are not valid
according to the CoreAudioBaseTypes.h header, but if your device has >19
output channels, you will find CoreAudio using those values.

This is most likely a bug in CoreAudio, since in that case it should use
unpositioned labels (e.g. _Discrete_X) instead.

This commit aims to work around this by overriding all channels to be
unpositioned if the case above is detected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8311>
2025-01-30 09:53:15 +00:00
Sebastian Dröge
83e95af6e3 mpegtsdescriptor: Add (transfer none) annotation to out parameter of parse_registration()
Out parameters are (transfer full) by default.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8380>
2025-01-30 01:06:55 +00:00
Colin Kinloch
e0e7a11089 wayland: De-dupe filling caps format fields
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8268>
2025-01-29 21:04:16 +00:00
Nicolas Dufresne
d327b576fd v4l2codecs: format: Fix tiled stride with modifiers
After a bit of back and forth, we figure-out that for backward
compatibility we need to set the tile stride the way GStreamer
defines it. Sinks such as glimagesink/waylandsink translate it
back to the number of bytes representation used by Linux.

The change in !7355 when the other way around, breaking tiled
playback through waylandsink and glimagesink.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Nicolas Dufresne
902f0eb9ea video: Add DMA_DRM mapping for NV12_16L32S / MT2110T / MT2110R
This is used on Meditek SoC and Mesa Panfrost [0] has enabled the 8bit variant
with a faster GL shader implementation then ours.

[0] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31899

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Nicolas Dufresne
2be6b66349 video: Import a verbatim copy of drm_fourcc.h
Imported from drm-tip [0] at commit 3ab334814dc7dff39075e055e12847d51878916e.
As the copied definition became bigger an bigger, it was quite apparent this
was more work then needed. Simply replace manual copies with a verbatim
official copy of it.

[0] https://gitlab.freedesktop.org/drm/tip/-/blob/drm-tip

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7892>
2025-01-29 17:20:33 +00:00
Robert Mader
1fc6f0d349 qtmux: Implement rotation tag support
Mirroring the demux element and isomp4mux from gst-plugins-rs.

Tested against other Gst elements and MPV. Note that the later
apparently does not show correct results for flipped values.

Can be tested with:
```
gst-launch-1.0 \
videotestsrc num-buffers=90 ! \
taginject tags="image-orientation=rotate-90" ! \
capsfilter caps=video/x-raw,width=640,height=480,max-framerate=30/1 ! \
videoconvert ! \
queue ! \
openh264enc ! \
queue ! \
h264parse ! \
mp4mux ! \
filesink location=./test.mp4
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8371>
2025-01-29 16:24:21 +00:00
Colin Kinloch
edf157beb5 wayland: Don't filter out unrecognised DRM formats
There is no requirement for a base DRM format to be supported by libgstvideo
in order to be uploaded to.

The linux-dmabuf-v1 format events are DRM_FORMAT codes and don't need to
be converted before use with `gst_video_dma_drm_fourcc_to_string`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8279>
2025-01-29 15:23:57 +00:00
Zhao, Gang
705b142134 fdsrc: Add property is-live
Fixed #4184

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8372>
2025-01-29 12:46:56 +00:00
Alexander Slobodeniuk
6376849396 qtmux: fix critical warnings on negotiation error
This pipeline fails to negotiate on my PC:

gst-launch-1.0 v4l2src ! h264parse ! qtmux ! filesink location=t.mp4

When it happens some critical glib warnings are emitted:
-------------------------------
GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_copy: assertion 'mini_object != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_structure_set_value: assertion 'structure != NULL' failed

GStreamer-CRITICAL **: 15:09:03.485: gst_mini_object_unref: assertion 'mini_object != NULL' failed
--------------------------------

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8374>
2025-01-29 10:46:25 +00:00