@@ -568,330 +568,144 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
} },
/* Bayer formats. */
- { formats::SBGGR8, {
- .name = "SBGGR8",
- .format = formats::SBGGR8,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8), },
+ { formats::RAW8, {
+ .name = "RAW8",
+ .format = formats::RAW8,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_8),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8),
+ },
.bitsPerPixel = 8,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = false,
.pixelsPerGroup = 2,
.planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG8, {
- .name = "SGBRG8",
- .format = formats::SGBRG8,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG8, {
- .name = "SGRBG8",
- .format = formats::SGRBG8,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB8, {
- .name = "SRGGB8",
- .format = formats::SRGGB8,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR10, {
- .name = "SBGGR10",
- .format = formats::SBGGR10,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10), },
+ { formats::RAW10, {
+ .name = "RAW10",
+ .format = formats::RAW10,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_10),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10),
+ },
.bitsPerPixel = 10,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = false,
.pixelsPerGroup = 2,
.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG10, {
- .name = "SGBRG10",
- .format = formats::SGBRG10,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG10, {
- .name = "SGRBG10",
- .format = formats::SGRBG10,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB10, {
- .name = "SRGGB10",
- .format = formats::SRGGB10,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR10_CSI2P, {
- .name = "SBGGR10_CSI2P",
- .format = formats::SBGGR10_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P), },
+ { formats::RAW10_CSI2P, {
+ .name = "RAW10_CSI2P",
+ .format = formats::RAW10_CSI2P,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_10),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),
+ },
.bitsPerPixel = 10,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = true,
.pixelsPerGroup = 4,
.planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG10_CSI2P, {
- .name = "SGBRG10_CSI2P",
- .format = formats::SGBRG10_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG10_CSI2P, {
- .name = "SGRBG10_CSI2P",
- .format = formats::SGRBG10_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB10_CSI2P, {
- .name = "SRGGB10_CSI2P",
- .format = formats::SRGGB10_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 5, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR12, {
- .name = "SBGGR12",
- .format = formats::SBGGR12,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12), },
+ { formats::RAW12, {
+ .name = "RAW12",
+ .format = formats::RAW12,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_12),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12),
+ },
.bitsPerPixel = 12,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = false,
.pixelsPerGroup = 2,
.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG12, {
- .name = "SGBRG12",
- .format = formats::SGBRG12,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG12, {
- .name = "SGRBG12",
- .format = formats::SGRBG12,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB12, {
- .name = "SRGGB12",
- .format = formats::SRGGB12,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR12_CSI2P, {
- .name = "SBGGR12_CSI2P",
- .format = formats::SBGGR12_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P), },
+ { formats::RAW12_CSI2P, {
+ .name = "RAW12_CSI2P",
+ .format = formats::RAW12_CSI2P,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_12),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),
+ },
.bitsPerPixel = 12,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = true,
.pixelsPerGroup = 2,
.planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG12_CSI2P, {
- .name = "SGBRG12_CSI2P",
- .format = formats::SGBRG12_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG12_CSI2P, {
- .name = "SGRBG12_CSI2P",
- .format = formats::SGRBG12_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB12_CSI2P, {
- .name = "SRGGB12_CSI2P",
- .format = formats::SRGGB12_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P), },
- .bitsPerPixel = 12,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 3, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR14, {
- .name = "SBGGR14",
- .format = formats::SBGGR14,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14), },
+ { formats::RAW14, {
+ .name = "RAW14",
+ .format = formats::RAW14,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_14),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14),
+ },
.bitsPerPixel = 14,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = false,
.pixelsPerGroup = 2,
.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG14, {
- .name = "SGBRG14",
- .format = formats::SGBRG14,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG14, {
- .name = "SGRBG14",
- .format = formats::SGRBG14,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB14, {
- .name = "SRGGB14",
- .format = formats::SRGGB14,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR14_CSI2P, {
- .name = "SBGGR14_CSI2P",
- .format = formats::SBGGR14_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P), },
+ { formats::RAW14_CSI2P, {
+ .name = "RAW14_CSI2P",
+ .format = formats::RAW14_CSI2P,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_14),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P),
+ },
.bitsPerPixel = 14,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = true,
.pixelsPerGroup = 4,
.planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG14_CSI2P, {
- .name = "SGBRG14_CSI2P",
- .format = formats::SGBRG14_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG14_CSI2P, {
- .name = "SGRBG14_CSI2P",
- .format = formats::SGRBG14_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB14_CSI2P, {
- .name = "SRGGB14_CSI2P",
- .format = formats::SRGGB14_CSI2P,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P), },
- .bitsPerPixel = 14,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 4,
- .planes = {{ { 7, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR16, {
- .name = "SBGGR16",
- .format = formats::SBGGR16,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16), },
+ { formats::RAW16, {
+ .name = "RAW16",
+ .format = formats::RAW16,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_RAW_16),
+ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16),
+ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16),
+ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16),
+ },
.bitsPerPixel = 16,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = false,
.pixelsPerGroup = 2,
.planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG16, {
- .name = "SGBRG16",
- .format = formats::SGBRG16,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16), },
- .bitsPerPixel = 16,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG16, {
- .name = "SGRBG16",
- .format = formats::SGRBG16,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16), },
- .bitsPerPixel = 16,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB16, {
- .name = "SRGGB16",
- .format = formats::SRGGB16,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16), },
- .bitsPerPixel = 16,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = false,
- .pixelsPerGroup = 2,
- .planes = {{ { 4, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SBGGR10_IPU3, {
- .name = "SBGGR10_IPU3",
- .format = formats::SBGGR10_IPU3,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10), },
+ { formats::RAW10_IPU3, {
+ .name = "RAW10_IPU3",
+ .format = formats::RAW10_IPU3,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_IPU3_RAW10),
+ V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SBGGR10),
+ V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10),
+ V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10),
+ V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10),
+ },
.bitsPerPixel = 10,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = true,
@@ -899,70 +713,16 @@ const std::map<PixelFormat, PixelFormatInfo> pixelFormatInfo{
.pixelsPerGroup = 25,
.planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
} },
- { formats::SGBRG10_IPU3, {
- .name = "SGBRG10_IPU3",
- .format = formats::SGBRG10_IPU3,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGBRG10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 25,
- .planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SGRBG10_IPU3, {
- .name = "SGRBG10_IPU3",
- .format = formats::SGRBG10_IPU3,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SGRBG10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 25,
- .planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::SRGGB10_IPU3, {
- .name = "SRGGB10_IPU3",
- .format = formats::SRGGB10_IPU3,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_IPU3_SRGGB10), },
- .bitsPerPixel = 10,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 25,
- .planes = {{ { 32, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::BGGR_PISP_COMP1, {
- .name = "BGGR_PISP_COMP1",
- .format = formats::BGGR_PISP_COMP1,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::GBRG_PISP_COMP1, {
- .name = "GBRG_PISP_COMP1",
- .format = formats::GBRG_PISP_COMP1,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::GRBG_PISP_COMP1, {
- .name = "GRBG_PISP_COMP1",
- .format = formats::GRBG_PISP_COMP1,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG), },
- .bitsPerPixel = 8,
- .colourEncoding = PixelFormatInfo::ColourEncodingRAW,
- .packed = true,
- .pixelsPerGroup = 2,
- .planes = {{ { 2, 1 }, { 0, 0 }, { 0, 0 } }},
- } },
- { formats::RGGB_PISP_COMP1, {
- .name = "RGGB_PISP_COMP1",
- .format = formats::RGGB_PISP_COMP1,
- .v4l2Formats = { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB), },
+ { formats::RAW_PISP_COMP1, {
+ .name = "RAW_PISP_COMP1",
+ .format = formats::RAW_PISP_COMP1,
+ .v4l2Formats = {
+ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RAW),
+ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR),
+ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG),
+ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG),
+ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB),
+ },
.bitsPerPixel = 8,
.colourEncoding = PixelFormatInfo::ColourEncodingRAW,
.packed = true,
@@ -16,6 +16,16 @@ formats:
- R16:
fourcc: DRM_FORMAT_R16
+ - R10_CSI2P:
+ fourcc: DRM_FORMAT_R10
+ mod: MIPI_FORMAT_MOD_CSI2_PACKED
+ - R12_CSI2P:
+ fourcc: DRM_FORMAT_R12
+ mod: MIPI_FORMAT_MOD_CSI2_PACKED
+ - R14_CSI2P:
+ fourcc: DRM_FORMAT_R14
+ mod: MIPI_FORMAT_MOD_CSI2_PACKED
+
- RGB565:
fourcc: DRM_FORMAT_RGB565
- RGB565_BE:
@@ -92,123 +102,35 @@ formats:
- MJPEG:
fourcc: DRM_FORMAT_MJPEG
- - SRGGB8:
- fourcc: DRM_FORMAT_SRGGB8
- - SGRBG8:
- fourcc: DRM_FORMAT_SGRBG8
- - SGBRG8:
- fourcc: DRM_FORMAT_SGBRG8
- - SBGGR8:
- fourcc: DRM_FORMAT_SBGGR8
+ - RAW8:
+ fourcc: DRM_FORMAT_R8
+ - RAW10:
+ fourcc: DRM_FORMAT_R10
+ - RAW12:
+ fourcc: DRM_FORMAT_R12
+ - RAW14:
+ fourcc: DRM_FORMAT_R14
+ - RAW16:
+ fourcc: DRM_FORMAT_R16
- - SRGGB10:
- fourcc: DRM_FORMAT_SRGGB10
- - SGRBG10:
- fourcc: DRM_FORMAT_SGRBG10
- - SGBRG10:
- fourcc: DRM_FORMAT_SGBRG10
- - SBGGR10:
- fourcc: DRM_FORMAT_SBGGR10
-
- - SRGGB12:
- fourcc: DRM_FORMAT_SRGGB12
- - SGRBG12:
- fourcc: DRM_FORMAT_SGRBG12
- - SGBRG12:
- fourcc: DRM_FORMAT_SGBRG12
- - SBGGR12:
- fourcc: DRM_FORMAT_SBGGR12
-
- - SRGGB14:
- fourcc: DRM_FORMAT_SRGGB14
- - SGRBG14:
- fourcc: DRM_FORMAT_SGRBG14
- - SGBRG14:
- fourcc: DRM_FORMAT_SGBRG14
- - SBGGR14:
- fourcc: DRM_FORMAT_SBGGR14
-
- - SRGGB16:
- fourcc: DRM_FORMAT_SRGGB16
- - SGRBG16:
- fourcc: DRM_FORMAT_SGRBG16
- - SGBRG16:
- fourcc: DRM_FORMAT_SGBRG16
- - SBGGR16:
- fourcc: DRM_FORMAT_SBGGR16
-
- - R10_CSI2P:
+ - RAW10_CSI2P:
fourcc: DRM_FORMAT_R10
mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - R12_CSI2P:
+ - RAW12_CSI2P:
fourcc: DRM_FORMAT_R12
mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
- - SRGGB10_CSI2P:
- fourcc: DRM_FORMAT_SRGGB10
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGRBG10_CSI2P:
- fourcc: DRM_FORMAT_SGRBG10
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGBRG10_CSI2P:
- fourcc: DRM_FORMAT_SGBRG10
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SBGGR10_CSI2P:
- fourcc: DRM_FORMAT_SBGGR10
+ - RAW14_CSI2P:
+ fourcc: DRM_FORMAT_R14
mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SRGGB12_CSI2P:
- fourcc: DRM_FORMAT_SRGGB12
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGRBG12_CSI2P:
- fourcc: DRM_FORMAT_SGRBG12
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGBRG12_CSI2P:
- fourcc: DRM_FORMAT_SGBRG12
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SBGGR12_CSI2P:
- fourcc: DRM_FORMAT_SBGGR12
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
- - SRGGB14_CSI2P:
- fourcc: DRM_FORMAT_SRGGB14
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGRBG14_CSI2P:
- fourcc: DRM_FORMAT_SGRBG14
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SGBRG14_CSI2P:
- fourcc: DRM_FORMAT_SGBRG14
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
- - SBGGR14_CSI2P:
- fourcc: DRM_FORMAT_SBGGR14
- mod: MIPI_FORMAT_MOD_CSI2_PACKED
-
- - SRGGB10_IPU3:
- fourcc: DRM_FORMAT_SRGGB10
- mod: IPU3_FORMAT_MOD_PACKED
- - SGRBG10_IPU3:
- fourcc: DRM_FORMAT_SGRBG10
- mod: IPU3_FORMAT_MOD_PACKED
- - SGBRG10_IPU3:
- fourcc: DRM_FORMAT_SGBRG10
- mod: IPU3_FORMAT_MOD_PACKED
- - SBGGR10_IPU3:
- fourcc: DRM_FORMAT_SBGGR10
+ - RAW10_IPU3:
+ fourcc: DRM_FORMAT_R10
mod: IPU3_FORMAT_MOD_PACKED
- - RGGB_PISP_COMP1:
- fourcc: DRM_FORMAT_SRGGB16
- mod: PISP_FORMAT_MOD_COMPRESS_MODE1
- - GRBG_PISP_COMP1:
- fourcc: DRM_FORMAT_SGRBG16
- mod: PISP_FORMAT_MOD_COMPRESS_MODE1
- - GBRG_PISP_COMP1:
- fourcc: DRM_FORMAT_SGBRG16
- mod: PISP_FORMAT_MOD_COMPRESS_MODE1
- - BGGR_PISP_COMP1:
- fourcc: DRM_FORMAT_SBGGR16
- mod: PISP_FORMAT_MOD_COMPRESS_MODE1
- MONO_PISP_COMP1:
fourcc: DRM_FORMAT_R16
mod: PISP_FORMAT_MOD_COMPRESS_MODE1
+ - RAW_PISP_COMP1:
+ fourcc: DRM_FORMAT_R16
+ mod: PISP_FORMAT_MOD_COMPRESS_MODE1
...
@@ -145,78 +145,96 @@ const std::map<V4L2PixelFormat, V4L2PixelFormat::Info> vpf2pf{
{ formats::R16, "16-bit Greyscale" } },
/* Bayer formats. */
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_8),
+ { formats::RAW8, "8-bit Raw" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR8),
- { formats::SBGGR8, "8-bit Bayer BGBG/GRGR" } },
+ { formats::RAW8, "8-bit Bayer BGBG/GRGR" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG8),
- { formats::SGBRG8, "8-bit Bayer GBGB/RGRG" } },
+ { formats::RAW8, "8-bit Bayer GBGB/RGRG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG8),
- { formats::SGRBG8, "8-bit Bayer GRGR/BGBG" } },
+ { formats::RAW8, "8-bit Bayer GRGR/BGBG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB8),
- { formats::SRGGB8, "8-bit Bayer RGRG/GBGB" } },
+ { formats::RAW8, "8-bit Bayer RGRG/GBGB" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_10),
+ { formats::RAW10, "10-bit Raw" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10),
- { formats::SBGGR10, "10-bit Bayer BGBG/GRGR" } },
+ { formats::RAW10, "10-bit Bayer BGBG/GRGR" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10),
- { formats::SGBRG10, "10-bit Bayer GBGB/RGRG" } },
+ { formats::RAW10, "10-bit Bayer GBGB/RGRG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10),
- { formats::SGRBG10, "10-bit Bayer GRGR/BGBG" } },
+ { formats::RAW10, "10-bit Bayer GRGR/BGBG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10),
- { formats::SRGGB10, "10-bit Bayer RGRG/GBGB" } },
+ { formats::RAW10, "10-bit Bayer RGRG/GBGB" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_10),
+ { formats::RAW10_CSI2P, "10-bit Raw Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR10P),
- { formats::SBGGR10_CSI2P, "10-bit Bayer BGBG/GRGR Packed" } },
+ { formats::RAW10_CSI2P, "10-bit Bayer BGBG/GRGR Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG10P),
- { formats::SGBRG10_CSI2P, "10-bit Bayer GBGB/RGRG Packed" } },
+ { formats::RAW10_CSI2P, "10-bit Bayer GBGB/RGRG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG10P),
- { formats::SGRBG10_CSI2P, "10-bit Bayer GRGR/BGBG Packed" } },
+ { formats::RAW10_CSI2P, "10-bit Bayer GRGR/BGBG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB10P),
- { formats::SRGGB10_CSI2P, "10-bit Bayer RGRG/GBGB Packed" } },
+ { formats::RAW10_CSI2P, "10-bit Bayer RGRG/GBGB Packed" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_12),
+ { formats::RAW12, "12-bit Raw" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12),
- { formats::SBGGR12, "12-bit Bayer BGBG/GRGR" } },
+ { formats::RAW12, "12-bit Bayer BGBG/GRGR" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12),
- { formats::SGBRG12, "12-bit Bayer GBGB/RGRG" } },
+ { formats::RAW12, "12-bit Bayer GBGB/RGRG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12),
- { formats::SGRBG12, "12-bit Bayer GRGR/BGBG" } },
+ { formats::RAW12, "12-bit Bayer GRGR/BGBG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12),
- { formats::SRGGB12, "12-bit Bayer RGRG/GBGB" } },
+ { formats::RAW12, "12-bit Bayer RGRG/GBGB" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_12),
+ { formats::RAW12_CSI2P, "12-bit Raw Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR12P),
- { formats::SBGGR12_CSI2P, "12-bit Bayer BGBG/GRGR Packed" } },
+ { formats::RAW12_CSI2P, "12-bit Bayer BGBG/GRGR Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG12P),
- { formats::SGBRG12_CSI2P, "12-bit Bayer GBGB/RGRG Packed" } },
+ { formats::RAW12_CSI2P, "12-bit Bayer GBGB/RGRG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG12P),
- { formats::SGRBG12_CSI2P, "12-bit Bayer GRGR/BGBG Packed" } },
+ { formats::RAW12_CSI2P, "12-bit Bayer GRGR/BGBG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB12P),
- { formats::SRGGB12_CSI2P, "12-bit Bayer RGRG/GBGB Packed" } },
+ { formats::RAW12_CSI2P, "12-bit Bayer RGRG/GBGB Packed" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_14),
+ { formats::RAW14, "14-bit Raw" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14),
- { formats::SBGGR14, "14-bit Bayer BGBG/GRGR" } },
+ { formats::RAW14, "14-bit Bayer BGBG/GRGR" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14),
- { formats::SGBRG14, "14-bit Bayer GBGB/RGRG" } },
+ { formats::RAW14, "14-bit Bayer GBGB/RGRG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14),
- { formats::SGRBG14, "14-bit Bayer GRGR/BGBG" } },
+ { formats::RAW14, "14-bit Bayer GRGR/BGBG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14),
- { formats::SRGGB14, "14-bit Bayer RGRG/GBGB" } },
+ { formats::RAW14, "14-bit Bayer RGRG/GBGB" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_CSI2_14),
+ { formats::RAW14_CSI2P, "14-bit Raw Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR14P),
- { formats::SBGGR14_CSI2P, "14-bit Bayer BGBG/GRGR Packed" } },
+ { formats::RAW14_CSI2P, "14-bit Bayer BGBG/GRGR Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG14P),
- { formats::SGBRG14_CSI2P, "14-bit Bayer GBGB/RGRG Packed" } },
+ { formats::RAW14_CSI2P, "14-bit Bayer GBGB/RGRG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG14P),
- { formats::SGRBG14_CSI2P, "14-bit Bayer GRGR/BGBG Packed" } },
+ { formats::RAW14_CSI2P, "14-bit Bayer GRGR/BGBG Packed" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB14P),
- { formats::SRGGB14_CSI2P, "14-bit Bayer RGRG/GBGB Packed" } },
+ { formats::RAW14_CSI2P, "14-bit Bayer RGRG/GBGB Packed" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_RAW_16),
+ { formats::RAW16, "16-bit Raw" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SBGGR16),
- { formats::SBGGR16, "16-bit Bayer BGBG/GRGR" } },
+ { formats::RAW16, "16-bit Bayer BGBG/GRGR" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGBRG16),
- { formats::SGBRG16, "16-bit Bayer GBGB/RGRG" } },
+ { formats::RAW16, "16-bit Bayer GBGB/RGRG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SGRBG16),
- { formats::SGRBG16, "16-bit Bayer GRGR/BGBG" } },
+ { formats::RAW16, "16-bit Bayer GRGR/BGBG" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_SRGGB16),
- { formats::SRGGB16, "16-bit Bayer RGRG/GBGB" } },
+ { formats::RAW16, "16-bit Bayer RGRG/GBGB" } },
+ { V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RAW),
+ { formats::RAW_PISP_COMP1, "16-bit Raw PiSP Compress Mode 1" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_BGGR),
- { formats::BGGR_PISP_COMP1, "16-bit Bayer BGBG/GRGR PiSP Compress Mode 1" } },
+ { formats::RAW_PISP_COMP1, "16-bit Bayer BGBG/GRGR PiSP Compress Mode 1" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GBRG),
- { formats::GBRG_PISP_COMP1, "16-bit Bayer GBGB/RGRG PiSP Compress Mode 1" } },
+ { formats::RAW_PISP_COMP1, "16-bit Bayer GBGB/RGRG PiSP Compress Mode 1" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_GRBG),
- { formats::GRBG_PISP_COMP1, "16-bit Bayer GRGR/BGBG PiSP Compress Mode 1" } },
+ { formats::RAW_PISP_COMP1, "16-bit Bayer GRGR/BGBG PiSP Compress Mode 1" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_RGGB),
- { formats::RGGB_PISP_COMP1, "16-bit Bayer RGRG/GBGB PiSP Compress Mode 1" } },
+ { formats::RAW_PISP_COMP1, "16-bit Bayer RGRG/GBGB PiSP Compress Mode 1" } },
{ V4L2PixelFormat(V4L2_PIX_FMT_PISP_COMP1_MONO),
{ formats::MONO_PISP_COMP1, "16-bit Mono PiSP Compress Mode 1" } },
The new common raw sensor model in V4L2 separates out the layout of pixel data (bayer order, embedded line layout etc.) from the bit-depth and packing used on the bus. Follow suit throughout libcamera, by dropping the old PixelFormats that encoded the bayer-order, and switching to generic formats for raw streams. Signed-off-by: Jai Luthra <jai.luthra@ideasonboard.com> --- For the WIP series I decided to drop the old formats altogether to make the migration easier internally. Once the migration is complete, I will add them back in, but warning the external users that these are now deprecated. --- src/libcamera/formats.cpp | 440 +++++++++---------------------------- src/libcamera/formats.yaml | 136 +++--------- src/libcamera/v4l2_pixelformat.cpp | 90 +++++--- 3 files changed, 183 insertions(+), 483 deletions(-)