1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
From: Martin Tuma <martin.tuma@digiteqautomotive.com>
Date: Mon, 2 Dec 2024 12:36:22 +0100
Subject: access/v4l2: add support for V4L2_PIX_FMT_ABGR32 and
V4L2_PIX_FMT_XBGR32
Fix broken v4l2 pixel format selection when the device supports/uses
the V4L2_PIX_FMT_ABGR32 or V4L2_PIX_FMT_XBGR32 pixel formats.
See the v4l2 documentation for the pixel formats details:
https://docs.kernel.org/userspace-api/media/v4l/pixfmt-rgb.html
---
modules/access/v4l2/demux.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/access/v4l2/demux.c b/modules/access/v4l2/demux.c
index 81a479f..bed02b8 100644
--- a/modules/access/v4l2/demux.c
+++ b/modules/access/v4l2/demux.c
@@ -155,10 +155,13 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
// { V4L2_PIX_FMT_NV12MT, },
// { V4L2_PIX_FMT_M420, },
+ { V4L2_PIX_FMT_ABGR32, VLC_CODEC_BGRA, 4, 0, 0, 0 },
+
/* Packed RGB */
#ifdef WORDS_BIGENDIAN
{ V4L2_PIX_FMT_RGB32, VLC_CODEC_RGB32, 4, 0xFF00, 0xFF0000, 0xFF000000 },
{ V4L2_PIX_FMT_BGR32, VLC_CODEC_RGB32, 4, 0xFF000000, 0xFF0000, 0xFF00 },
+ { V4L2_PIX_FMT_XBGR32, VLC_CODEC_RGB32, 4, 0xFF000000, 0xFF0000, 0xFF00 },
{ V4L2_PIX_FMT_RGB24, VLC_CODEC_RGB24, 3, 0xFF0000, 0x00FF00, 0x0000FF },
{ V4L2_PIX_FMT_BGR24, VLC_CODEC_RGB24, 3, 0x0000FF, 0x00FF00, 0xFF0000 },
// { V4L2_PIX_FMT_BGR666, },
@@ -170,6 +173,7 @@ static const vlc_v4l2_fmt_t v4l2_fmts[] =
#else
{ V4L2_PIX_FMT_RGB32, VLC_CODEC_RGB32, 4, 0x0000FF, 0x00FF00, 0xFF0000 },
{ V4L2_PIX_FMT_BGR32, VLC_CODEC_RGB32, 4, 0xFF0000, 0x00FF00, 0x0000FF },
+ { V4L2_PIX_FMT_XBGR32, VLC_CODEC_RGB32, 4, 0xFF0000, 0x00FF00, 0x0000FF },
{ V4L2_PIX_FMT_RGB24, VLC_CODEC_RGB24, 3, 0x0000FF, 0x00FF00, 0xFF0000 },
{ V4L2_PIX_FMT_BGR24, VLC_CODEC_RGB24, 3, 0xFF0000, 0x00FF00, 0x0000FF },
// { V4L2_PIX_FMT_BGR666, },
|