[libcamera-devel] [PATCH v2 07/10] libcamera: v4l2_videodevice: Map V4L2_PIX_FMT_GREY to DRM FourCC
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon Mar 16 22:43:07 CET 2020
DRM has a format for 8-bit greyscale data, DRM_FORMAT_R8. Despite the
'R' name, which comes from GL/Vulkan to mean single-channel data, the
format maps to greyscale for display. We can thus map it to
V4L2_PIX_FMT_GREY.
Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
src/libcamera/v4l2_videodevice.cpp | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 28de3d2fe5c6..8e56e934b04f 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -1614,12 +1614,15 @@ PixelFormat V4L2VideoDevice::toPixelFormat(uint32_t v4l2Fourcc)
case V4L2_PIX_FMT_NV21M:
return DRM_FORMAT_NV21;
+ /* Greyscale formats. */
+ case V4L2_PIX_FMT_GREY:
+ return DRM_FORMAT_R8;
+
/* Compressed formats. */
case V4L2_PIX_FMT_MJPEG:
return DRM_FORMAT_MJPEG;
/* V4L2 formats not yet supported by DRM. */
- case V4L2_PIX_FMT_GREY:
default:
/*
* \todo We can't use LOG() in a static method of a Loggable
@@ -1698,6 +1701,10 @@ uint32_t V4L2VideoDevice::toV4L2Fourcc(PixelFormat pixelFormat, bool multiplanar
case DRM_FORMAT_NV21:
return V4L2_PIX_FMT_NV21;
+ /* Greyscale formats. */
+ case DRM_FORMAT_R8:
+ return V4L2_PIX_FMT_GREY;
+
/* Compressed formats. */
case DRM_FORMAT_MJPEG:
return V4L2_PIX_FMT_MJPEG;
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list