gstreamer/subprojects/gst-plugins-bad/sys/v4l2codecs
Robert Mader e869185287 v4l2codecs: decoder: Reorder caps to prefer DMA_DRM ones
Certain V4L2 fourccs don't (yet) have DRM counter parts, in which case
we can't create DMA_DRM caps for them. This is usually the case for
specific tilings, which are represented as modifiers for DMA formats.

While using these tilings is generally preferable - because of e.g.
lower memory usage - it can result in additional conversion steps when
interacting with DMA based APIs such as GL, Vulkan or KMS. In such cases
using a DMA compatible format usually ends up being the better option.

Before the addition of DMA_DRM caps, this was what playbin3 ended up
requesting in various cases - e.g. prefering NV12 over NV12_4L4 - but
the addition of DMA_DRM caps seems to confuse the selection logic.

As a simple and quite robust solution, assume that peers supporting
DMA_DRM caps always prefer these and reorder the caps accordingly.

In the future we plan to have a translation layer for cases where
there is a matching fourcc+modifier pair for a V4L2 fourcc, ensuring
optimal results.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6824>
2024-05-09 23:46:16 +01:00
..
linux v4l2codecs: Enable Mediatek 10bit 4:2:0 support 2023-08-08 16:08:16 +00:00
gstv4l2codecallocator.c v4l2codecs: Fix segfault when destroying non-detached allocator 2021-11-02 15:25:48 +00:00
gstv4l2codecallocator.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codecalphadecodebin.c v4l2codecs: alphadecoder: Explicitly pass 64 bit integers as such through varargs 2024-03-28 11:16:28 +00:00
gstv4l2codecalphadecodebin.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codecav1dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codecav1dec.h v4l2codecs: Add AV1 decoder 2023-06-16 01:30:40 +00:00
gstv4l2codecdevice.c v4l2codecs: Warn user when no media devices are found 2022-09-29 19:12:14 +00:00
gstv4l2codecdevice.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codech264dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codech264dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codech265dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codech265dec.h v4l2codecs: Add v4l2 stateless H265 decoder 2022-07-22 10:21:02 -04:00
gstv4l2codecmpeg2dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codecmpeg2dec.h v4l2codecs: mpeg2: Check that the decoder output formats 2021-12-10 21:37:14 +00:00
gstv4l2codecpool.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codecpool.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codecvp8dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codecvp8dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstv4l2codecvp9dec.c v4l2codecs: Don't unref allocation query caps 2024-04-18 09:56:52 +01:00
gstv4l2codecvp9dec.h v4l2codecs: vp9: Add alpha decodebin wrapper 2021-12-10 21:37:14 +00:00
gstv4l2decoder.c v4l2codecs: decoder: Reorder caps to prefer DMA_DRM ones 2024-05-09 23:46:16 +01:00
gstv4l2decoder.h v4l2codecs: decoders: Add DMA_DRM caps support 2024-03-14 23:32:00 +00:00
gstv4l2format.c v4l2codecs: Fix tiled formats stride conversion 2023-10-11 14:13:53 +00:00
gstv4l2format.h v4l2codecs: Enable Mediatek 10bit 4:2:0 support 2023-08-08 16:08:16 +00:00
meson.build v4l2codecs: Add AV1 decoder 2023-06-16 01:30:40 +00:00
plugin.c v4l2codecs: Add AV1 decoder 2023-06-16 01:30:40 +00:00