168 lines
4.7 KiB
Diff
168 lines
4.7 KiB
Diff
From 0bc0dd69488ae3e0ef593596586d84639b93bf4d Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Thu, 7 Jan 2021 10:45:16 +0000
|
|
Subject: [PATCH] staging/bcm2835-codec: Add the unpacked (16bpp) raw
|
|
formats
|
|
|
|
Now that the firmware supports the unpacked (16bpp) variants
|
|
of the MIPI raw formats, add the mappings.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
.../bcm2835-codec/bcm2835-v4l2-codec.c | 128 +++++++++++++++++-
|
|
1 file changed, 126 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
|
+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
|
@@ -381,6 +381,106 @@ static const struct bcm2835_codec_fmt su
|
|
.size_multiplier_x2 = 2,
|
|
.is_bayer = true,
|
|
}, {
|
|
+ /* Bayer formats unpacked to 16bpp */
|
|
+ /* 10 bit */
|
|
+ .fourcc = V4L2_PIX_FMT_SRGGB10,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB10,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SBGGR10,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR10,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGRBG10,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG10,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGBRG10,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG10,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ /* 12 bit */
|
|
+ .fourcc = V4L2_PIX_FMT_SRGGB12,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB12,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SBGGR12,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR12,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGRBG12,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG12,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGBRG12,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG12,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ /* 14 bit */
|
|
+ .fourcc = V4L2_PIX_FMT_SRGGB14,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SRGGB14,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SBGGR14,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SBGGR14,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGRBG14,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGRBG14,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
+ .fourcc = V4L2_PIX_FMT_SGBRG14,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_BAYER_SGBRG14,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ .is_bayer = true,
|
|
+ }, {
|
|
/* Monochrome MIPI formats */
|
|
/* 8 bit */
|
|
.fourcc = V4L2_PIX_FMT_GREY,
|
|
@@ -422,6 +522,30 @@ static const struct bcm2835_codec_fmt su
|
|
.mmal_fmt = MMAL_ENCODING_Y16,
|
|
.size_multiplier_x2 = 2,
|
|
}, {
|
|
+ /* 10 bit as 16bpp */
|
|
+ .fourcc = V4L2_PIX_FMT_Y10,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_Y10,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ }, {
|
|
+ /* 12 bit as 16bpp */
|
|
+ .fourcc = V4L2_PIX_FMT_Y12,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_Y12,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ }, {
|
|
+ /* 14 bit as 16bpp */
|
|
+ .fourcc = V4L2_PIX_FMT_Y14,
|
|
+ .depth = 16,
|
|
+ .bytesperline_align = 32,
|
|
+ .flags = 0,
|
|
+ .mmal_fmt = MMAL_ENCODING_Y14,
|
|
+ .size_multiplier_x2 = 2,
|
|
+ }, {
|
|
/* Compressed formats */
|
|
.fourcc = V4L2_PIX_FMT_H264,
|
|
.depth = 0,
|
|
@@ -2681,10 +2805,10 @@ static const struct v4l2_m2m_ops m2m_ops
|
|
|
|
/* Size of the array to provide to the VPU when asking for the list of supported
|
|
* formats.
|
|
- * The ISP component currently advertises 44 input formats, so add a small
|
|
+ * The ISP component currently advertises 62 input formats, so add a small
|
|
* overhead on that.
|
|
*/
|
|
-#define MAX_SUPPORTED_ENCODINGS 50
|
|
+#define MAX_SUPPORTED_ENCODINGS 70
|
|
|
|
/* Populate dev->supported_fmts with the formats supported by those ports. */
|
|
static int bcm2835_codec_get_supported_fmts(struct bcm2835_codec_dev *dev)
|