summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-24 00:45:22 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-24 10:33:37 +0200
commit45f248da7dbd0dc6df02142bfdf99a5d7f5f80a2 (patch)
tree37aea029bfa280ec0fe4a0201f9facb07388005e
parent422e3e92ada16946dd3519f140edf51884bcca32 (diff)
libcamera: v4l2_videodevice: Add support for all 32-bit ARGB formats
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@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r--src/libcamera/v4l2_videodevice.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index b20c8c77..b778181a 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: