From dfa9e526a43086a1b0936b74ec243f23396d5f69 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Tue, 4 Oct 2022 10:09:53 +0300 Subject: v4l2: add DRMFourCCToPixelFormat Signed-off-by: Tomi Valkeinen --- v4l2++/src/pixelformats.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'v4l2++/src/pixelformats.cpp') diff --git a/v4l2++/src/pixelformats.cpp b/v4l2++/src/pixelformats.cpp index 1c8453f..b7ecc7b 100644 --- a/v4l2++/src/pixelformats.cpp +++ b/v4l2++/src/pixelformats.cpp @@ -290,10 +290,23 @@ static const map format_info_array = { } }, }; +PixelFormat DRMFourCCToPixelFormat(const std::string& fourcc) +{ + // Handle the formats which differ between DRM and V4L2 + if (fourcc == "RG16") + return PixelFormat::RGB565; + if (fourcc == "XR24") + return PixelFormat::XRGB8888; + if (fourcc == "RG24") + return PixelFormat::RGB888; + + return FourCCToPixelFormat(fourcc); +} + const struct PixelFormatInfo& get_pixel_format_info(PixelFormat format) { if (!format_info_array.count(format)) - throw invalid_argument("get_pixel_format_info: Unsupported pixelformat"); + throw invalid_argument("v4l2: get_pixel_format_info: Unsupported pixelformat"); return format_info_array.at(format); } -- cgit v1.2.3