[libcamera-devel] [PATCH] libcamera: v4l2_videodevice: Add support for all 32-bit ARGB formats

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Mar 24 00:00:24 CET 2020


The V4L2VideoDevice class implements conversion between PixelFormat and
V4L2PixelFormat for a single flavour of the 32-bit ARGB formats. Add the
three missing ones.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/libcamera/v4l2_videodevice.cpp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index b20c8c77260f..b778181a48a4 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -1636,8 +1636,14 @@ PixelFormat V4L2VideoDevice::toPixelFormat(V4L2PixelFormat v4l2Fourcc)
 		return PixelFormat(DRM_FORMAT_BGR888);
 	case V4L2_PIX_FMT_BGR24:
 		return PixelFormat(DRM_FORMAT_RGB888);
+	case V4L2_PIX_FMT_RGBA32:
+		return PixelFormat(DRM_FORMAT_ABGR8888);
+	case V4L2_PIX_FMT_ABGR32:
+		return PixelFormat(DRM_FORMAT_ARGB8888);
 	case V4L2_PIX_FMT_ARGB32:
 		return PixelFormat(DRM_FORMAT_BGRA8888);
+	case V4L2_PIX_FMT_BGRA32:
+		return PixelFormat(DRM_FORMAT_RGBA8888);
 
 	/* YUV packed formats. */
 	case V4L2_PIX_FMT_YUYV:
@@ -1720,8 +1726,14 @@ V4L2PixelFormat V4L2VideoDevice::toV4L2PixelFormat(const PixelFormat &pixelForma
 		return V4L2PixelFormat(V4L2_PIX_FMT_RGB24);
 	case DRM_FORMAT_RGB888:
 		return V4L2PixelFormat(V4L2_PIX_FMT_BGR24);
+	case DRM_FORMAT_ABGR8888:
+		return V4L2PixelFormat(V4L2_PIX_FMT_RGBA32);
+	case DRM_FORMAT_ARGB8888:
+		return V4L2PixelFormat(V4L2_PIX_FMT_ABGR32);
 	case DRM_FORMAT_BGRA8888:
 		return V4L2PixelFormat(V4L2_PIX_FMT_ARGB32);
+	case DRM_FORMAT_RGBA8888:
+		return V4L2PixelFormat(V4L2_PIX_FMT_BGRA32);
 
 	/* YUV packed formats. */
 	case DRM_FORMAT_YUYV:
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list