Patch Detail
Show a patch.
GET /api/1.1/patches/3851/?format=api
{ "id": 3851, "url": "https://patchwork.libcamera.org/api/1.1/patches/3851/?format=api", "web_url": "https://patchwork.libcamera.org/patch/3851/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20200522145459.16836-13-laurent.pinchart@ideasonboard.com>", "date": "2020-05-22T14:54:59", "name": "[libcamera-devel,PATCH/RFC,11/11] libcamera: Replace explicit DRM FourCCs with libcamera formats", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "34684c65524411e2342b4c7a93f58efc772e73b9", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/3851/mbox/", "series": [ { "id": 923, "url": "https://patchwork.libcamera.org/api/1.1/series/923/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=923", "date": "2020-05-22T14:54:47", "name": "Introduce formats:: namespace for libcamera pixel formats", "version": 1, "mbox": "https://patchwork.libcamera.org/series/923/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/3851/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/3851/checks/", "tags": {}, "headers": { "Return-Path": "<laurent.pinchart@ideasonboard.com>", "Received": [ "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2AE05610E5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2020 16:55:23 +0200 (CEST)", "from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C8DAC24D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 May 2020 16:55:22 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"OdJK2bTJ\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1590159322;\n\tbh=mqAfoh+gwLQh6tmQigrZNh60M7lmsaftPdw3cxtjmOw=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=OdJK2bTJmpHxDctHT3WhwNSdmPtJWw/zOBXEjyA3zug0I0wXMTzV/7biAsuoi8Nxz\n\ti7AFSMFXsHo3X8SWmxSqRFEKRHFGHSEV1JhdTx3IBNtnbp/ecSKFzPg3aVvhdXcHhl\n\t1bUcno/BMMrrwt/2AxK0papKXbLINH6n1NMhelN0=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Fri, 22 May 2020 17:54:59 +0300", "Message-Id": "<20200522145459.16836-13-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.26.2", "In-Reply-To": "<20200522145459.16836-1-laurent.pinchart@ideasonboard.com>", "References": "<20200522145459.16836-1-laurent.pinchart@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH/RFC 11/11] libcamera: Replace explicit DRM\n\tFourCCs with libcamera formats", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "X-List-Received-Date": "Fri, 22 May 2020 14:55:26 -0000" }, "content": "Use the new pixel format constants to replace usage of macros from\ndrm_fourcc.h.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/libcamera/pixel_format.h | 2 -\n src/libcamera/formats.cpp | 146 +++++++++++++++--------------\n src/libcamera/v4l2_pixelformat.cpp | 83 ++++++++--------\n 3 files changed, 111 insertions(+), 120 deletions(-)", "diff": "diff --git a/include/libcamera/pixel_format.h b/include/libcamera/pixel_format.h\nindex 8dfeb8922418..6727315a11b1 100644\n--- a/include/libcamera/pixel_format.h\n+++ b/include/libcamera/pixel_format.h\n@@ -11,8 +11,6 @@\n #include <stdint.h>\n #include <string>\n \n-#include <linux/drm_fourcc.h>\n-\n namespace libcamera {\n \n class PixelFormat\ndiff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp\nindex 74c239a5e710..97e986786cc8 100644\n--- a/src/libcamera/formats.cpp\n+++ b/src/libcamera/formats.cpp\n@@ -9,6 +9,8 @@\n \n #include <errno.h>\n \n+#include <libcamera/formats.h>\n+\n #include \"libcamera/internal/log.h\"\n \n /**\n@@ -166,43 +168,43 @@ namespace {\n \n const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t/* RGB formats. */\n-\t{ PixelFormat(DRM_FORMAT_BGR888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_BGR888),\n+\t{ formats::BGR888, {\n+\t\t.format = formats::BGR888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_RGB24),\n \t\t.bitsPerPixel = 24,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_RGB888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_RGB888),\n+\t{ formats::RGB888, {\n+\t\t.format = formats::RGB888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_BGR24),\n \t\t.bitsPerPixel = 24,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_ABGR8888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_ABGR8888),\n+\t{ formats::ABGR8888, {\n+\t\t.format = formats::ABGR8888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_RGBA32),\n \t\t.bitsPerPixel = 32,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_ARGB8888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_ARGB8888),\n+\t{ formats::ARGB8888, {\n+\t\t.format = formats::ARGB8888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_ABGR32),\n \t\t.bitsPerPixel = 32,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_BGRA8888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_BGRA8888),\n+\t{ formats::BGRA8888, {\n+\t\t.format = formats::BGRA8888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_ARGB32),\n \t\t.bitsPerPixel = 32,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_RGBA8888), {\n-\t\t.format = PixelFormat(DRM_FORMAT_RGBA8888),\n+\t{ formats::RGBA8888, {\n+\t\t.format = formats::RGBA8888,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_BGRA32),\n \t\t.bitsPerPixel = 32,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRGB,\n@@ -210,29 +212,29 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t} },\n \n \t/* YUV packed formats. */\n-\t{ PixelFormat(DRM_FORMAT_YUYV), {\n-\t\t.format = PixelFormat(DRM_FORMAT_YUYV),\n+\t{ formats::YUYV, {\n+\t\t.format = formats::YUYV,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_YUYV),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_YVYU), {\n-\t\t.format = PixelFormat(DRM_FORMAT_YVYU),\n+\t{ formats::YVYU, {\n+\t\t.format = formats::YVYU,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_YVYU),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_UYVY), {\n-\t\t.format = PixelFormat(DRM_FORMAT_UYVY),\n+\t{ formats::UYVY, {\n+\t\t.format = formats::UYVY,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_UYVY),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_VYUY), {\n-\t\t.format = PixelFormat(DRM_FORMAT_VYUY),\n+\t{ formats::VYUY, {\n+\t\t.format = formats::VYUY,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_VYUY),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n@@ -240,29 +242,29 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t} },\n \n \t/* YUV planar formats. */\n-\t{ PixelFormat(DRM_FORMAT_NV16), {\n-\t\t.format = PixelFormat(DRM_FORMAT_NV16),\n+\t{ formats::NV16, {\n+\t\t.format = formats::NV16,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_NV16),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_NV61), {\n-\t\t.format = PixelFormat(DRM_FORMAT_NV61),\n+\t{ formats::NV61, {\n+\t\t.format = formats::NV61,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_NV61),\n \t\t.bitsPerPixel = 16,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_NV12), {\n-\t\t.format = PixelFormat(DRM_FORMAT_NV12),\n+\t{ formats::NV12, {\n+\t\t.format = formats::NV12,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_NV12),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_NV21), {\n-\t\t.format = PixelFormat(DRM_FORMAT_NV21),\n+\t{ formats::NV21, {\n+\t\t.format = formats::NV21,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_NV21),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n@@ -270,8 +272,8 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t} },\n \n \t/* Greyscale formats. */\n-\t{ PixelFormat(DRM_FORMAT_R8), {\n-\t\t.format = PixelFormat(DRM_FORMAT_R8),\n+\t{ formats::R8, {\n+\t\t.format = formats::R8,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_GREY),\n \t\t.bitsPerPixel = 8,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\n@@ -279,141 +281,141 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t} },\n \n \t/* Bayer formats. */\n-\t{ PixelFormat(DRM_FORMAT_SBGGR8), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SBGGR8),\n+\t{ formats::SBGGR8, {\n+\t\t.format = formats::SBGGR8,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8),\n \t\t.bitsPerPixel = 8,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGBRG8), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGBRG8),\n+\t{ formats::SGBRG8, {\n+\t\t.format = formats::SGBRG8,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8),\n \t\t.bitsPerPixel = 8,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGRBG8), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGRBG8),\n+\t{ formats::SGRBG8, {\n+\t\t.format = formats::SGRBG8,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8),\n \t\t.bitsPerPixel = 8,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SRGGB8), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SRGGB8),\n+\t{ formats::SRGGB8, {\n+\t\t.format = formats::SRGGB8,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8),\n \t\t.bitsPerPixel = 8,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SBGGR10), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SBGGR10),\n+\t{ formats::SBGGR10, {\n+\t\t.format = formats::SBGGR10,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGBRG10), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGBRG10),\n+\t{ formats::SGBRG10, {\n+\t\t.format = formats::SGBRG10,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGRBG10), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGRBG10),\n+\t{ formats::SGRBG10, {\n+\t\t.format = formats::SGRBG10,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SRGGB10), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SRGGB10),\n+\t{ formats::SRGGB10, {\n+\t\t.format = formats::SRGGB10,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SBGGR10, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SBGGR10, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SBGGR10_CSI2P, {\n+\t\t.format = formats::SBGGR10_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGBRG10, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGBRG10, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SGBRG10_CSI2P, {\n+\t\t.format = formats::SGBRG10_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGRBG10, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGRBG10, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SGRBG10_CSI2P, {\n+\t\t.format = formats::SGRBG10_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SRGGB10, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SRGGB10, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SRGGB10_CSI2P, {\n+\t\t.format = formats::SRGGB10_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),\n \t\t.bitsPerPixel = 10,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SBGGR12), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SBGGR12),\n+\t{ formats::SBGGR12, {\n+\t\t.format = formats::SBGGR12,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGBRG12), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGBRG12),\n+\t{ formats::SGBRG12, {\n+\t\t.format = formats::SGBRG12,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGRBG12), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGRBG12),\n+\t{ formats::SGRBG12, {\n+\t\t.format = formats::SGRBG12,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SRGGB12), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SRGGB12),\n+\t{ formats::SRGGB12, {\n+\t\t.format = formats::SRGGB12,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = false,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SBGGR12, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SBGGR12, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SBGGR12_CSI2P, {\n+\t\t.format = formats::SBGGR12_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGBRG12, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGBRG12, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SGBRG12_CSI2P, {\n+\t\t.format = formats::SGBRG12_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SGRBG12, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SGRBG12, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SGRBG12_CSI2P, {\n+\t\t.format = formats::SGRBG12_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n \t\t.packed = true,\n \t} },\n-\t{ PixelFormat(DRM_FORMAT_SRGGB12, MIPI_FORMAT_MOD_CSI2_PACKED), {\n-\t\t.format = PixelFormat(DRM_FORMAT_SRGGB12, MIPI_FORMAT_MOD_CSI2_PACKED),\n+\t{ formats::SRGGB12_CSI2P, {\n+\t\t.format = formats::SRGGB12_CSI2P,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),\n \t\t.bitsPerPixel = 12,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingRAW,\n@@ -421,8 +423,8 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{\n \t} },\n \n \t/* Compressed formats. */\n-\t{ PixelFormat(DRM_FORMAT_MJPEG), {\n-\t\t.format = PixelFormat(DRM_FORMAT_MJPEG),\n+\t{ formats::MJPEG, {\n+\t\t.format = formats::MJPEG,\n \t\t.v4l2Format = V4L2PixelFormat(V4L2_PIX_FMT_MJPEG),\n \t\t.bitsPerPixel = 0,\n \t\t.colourEncoding = PixelFormatInfo::ColourEncodingYUV,\ndiff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp\nindex 94fae470f926..741f6c2646bc 100644\n--- a/src/libcamera/v4l2_pixelformat.cpp\n+++ b/src/libcamera/v4l2_pixelformat.cpp\n@@ -12,8 +12,7 @@\n #include <map>\n #include <string.h>\n \n-#include <linux/drm_fourcc.h>\n-\n+#include <libcamera/formats.h>\n #include <libcamera/pixel_format.h>\n \n #include \"libcamera/internal/formats.h\"\n@@ -46,60 +45,52 @@ namespace {\n \n const std::map<V4L2PixelFormat, PixelFormat> vpf2pf{\n \t/* RGB formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_RGB24), PixelFormat(DRM_FORMAT_BGR888) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_BGR24), PixelFormat(DRM_FORMAT_RGB888) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_RGBA32), PixelFormat(DRM_FORMAT_ABGR8888) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_ABGR32), PixelFormat(DRM_FORMAT_ARGB8888) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_ARGB32), PixelFormat(DRM_FORMAT_BGRA8888) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_BGRA32), PixelFormat(DRM_FORMAT_RGBA8888) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_RGB24), formats::BGR888 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_BGR24), formats::RGB888 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_RGBA32), formats::ABGR8888 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_ABGR32), formats::ARGB8888 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_ARGB32), formats::BGRA8888 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_BGRA32), formats::RGBA8888 },\n \n \t/* YUV packed formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_YUYV), PixelFormat(DRM_FORMAT_YUYV) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_YVYU), PixelFormat(DRM_FORMAT_YVYU) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_UYVY), PixelFormat(DRM_FORMAT_UYVY) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_VYUY), PixelFormat(DRM_FORMAT_VYUY) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_YUYV), formats::YUYV },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_YVYU), formats::YVYU },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_UYVY), formats::UYVY },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_VYUY), formats::VYUY },\n \n \t/* YUV planar formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV16), PixelFormat(DRM_FORMAT_NV16) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV61), PixelFormat(DRM_FORMAT_NV61) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV12), PixelFormat(DRM_FORMAT_NV12) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV21), PixelFormat(DRM_FORMAT_NV21) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV16), formats::NV16 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV61), formats::NV61 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV12), formats::NV12 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_NV21), formats::NV21 },\n \n \t/* Greyscale formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_GREY), PixelFormat(DRM_FORMAT_R8) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_GREY), formats::R8 },\n \n \t/* Bayer formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8), PixelFormat(DRM_FORMAT_SBGGR8) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8), PixelFormat(DRM_FORMAT_SGBRG8) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8), PixelFormat(DRM_FORMAT_SGRBG8) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8), PixelFormat(DRM_FORMAT_SRGGB8) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10), PixelFormat(DRM_FORMAT_SBGGR10) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10), PixelFormat(DRM_FORMAT_SGBRG10) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10), PixelFormat(DRM_FORMAT_SGRBG10) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10), PixelFormat(DRM_FORMAT_SRGGB10) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),\n-\t PixelFormat(DRM_FORMAT_SBGGR10, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),\n-\t PixelFormat(DRM_FORMAT_SGBRG10, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),\n-\t PixelFormat(DRM_FORMAT_SGRBG10, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),\n-\t PixelFormat(DRM_FORMAT_SRGGB10, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12), PixelFormat(DRM_FORMAT_SBGGR12) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12), PixelFormat(DRM_FORMAT_SGBRG12) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12), PixelFormat(DRM_FORMAT_SGRBG12) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12), PixelFormat(DRM_FORMAT_SRGGB12) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),\n-\t PixelFormat(DRM_FORMAT_SBGGR12, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),\n-\t PixelFormat(DRM_FORMAT_SGBRG12, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),\n-\t PixelFormat(DRM_FORMAT_SGRBG12, MIPI_FORMAT_MOD_CSI2_PACKED) },\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),\n-\t PixelFormat(DRM_FORMAT_SRGGB12, MIPI_FORMAT_MOD_CSI2_PACKED) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8), formats::SBGGR8 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8), formats::SGBRG8 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8), formats::SGRBG8 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8), formats::SRGGB8 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10), formats::SBGGR10 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10), formats::SGBRG10 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10), formats::SGRBG10 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10), formats::SRGGB10 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P), formats::SBGGR10_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P), formats::SGBRG10_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P), formats::SGRBG10_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P), formats::SRGGB10_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12), formats::SBGGR12 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12), formats::SGBRG12 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12), formats::SGRBG12 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12), formats::SRGGB12 },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P), formats::SBGGR12_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P), formats::SGBRG12_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P), formats::SGRBG12_CSI2P },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P), formats::SRGGB12_CSI2P },\n \n \t/* Compressed formats. */\n-\t{ V4L2PixelFormat(V4L2_PIX_FMT_MJPEG), PixelFormat(DRM_FORMAT_MJPEG) },\n+\t{ V4L2PixelFormat(V4L2_PIX_FMT_MJPEG), formats::MJPEG },\n };\n \n } /* namespace */\n", "prefixes": [ "libcamera-devel", "PATCH/RFC", "11/11" ] }