summaryrefslogtreecommitdiff
path: root/v4l2++/src/pixelformats.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'v4l2++/src/pixelformats.cpp')
-rw-r--r--v4l2++/src/pixelformats.cpp15
1 files changed, 14 insertions, 1 deletions
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<PixelFormat, PixelFormatInfo> 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);
}