|
@@ -51,7 +51,7 @@ struct vivid_fmt vivid_formats[] = {
|
|
|
.is_yuv = true,
|
|
|
.planes = 1,
|
|
|
.buffers = 1,
|
|
|
- .data_offset = { PLANE0_DATA_OFFSET, 0 },
|
|
|
+ .data_offset = { PLANE0_DATA_OFFSET },
|
|
|
},
|
|
|
{
|
|
|
.name = "4:2:2, packed, UYVY",
|
|
@@ -80,6 +80,78 @@ struct vivid_fmt vivid_formats[] = {
|
|
|
.planes = 1,
|
|
|
.buffers = 1,
|
|
|
},
|
|
|
+ {
|
|
|
+ .name = "YUV 4:2:2 triplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YUV422P,
|
|
|
+ .vdownsampling = { 1, 1, 1 },
|
|
|
+ .bit_depth = { 8, 4, 4 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 3,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YUV 4:2:0 triplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YUV420,
|
|
|
+ .vdownsampling = { 1, 2, 2 },
|
|
|
+ .bit_depth = { 8, 4, 4 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 3,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YVU 4:2:0 triplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YVU420,
|
|
|
+ .vdownsampling = { 1, 2, 2 },
|
|
|
+ .bit_depth = { 8, 4, 4 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 3,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YUV 4:2:0 biplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV12,
|
|
|
+ .vdownsampling = { 1, 2 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YVU 4:2:0 biplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV21,
|
|
|
+ .vdownsampling = { 1, 2 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YUV 4:2:2 biplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV16,
|
|
|
+ .vdownsampling = { 1, 1 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "YVU 4:2:2 biplanar",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV61,
|
|
|
+ .vdownsampling = { 1, 1 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Monochrome",
|
|
|
+ .fourcc = V4L2_PIX_FMT_GREY,
|
|
|
+ .vdownsampling = { 1 },
|
|
|
+ .bit_depth = { 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 1,
|
|
|
+ .buffers = 1,
|
|
|
+ },
|
|
|
{
|
|
|
.name = "RGB565 (LE)",
|
|
|
.fourcc = V4L2_PIX_FMT_RGB565, /* gggbbbbb rrrrrggg */
|
|
@@ -221,10 +293,46 @@ struct vivid_fmt vivid_formats[] = {
|
|
|
.buffers = 2,
|
|
|
.data_offset = { 0, PLANE0_DATA_OFFSET },
|
|
|
},
|
|
|
+ {
|
|
|
+ .name = "4:2:0, triplanar, YUV",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YUV420M,
|
|
|
+ .vdownsampling = { 1, 2, 2 },
|
|
|
+ .bit_depth = { 8, 4, 4 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 3,
|
|
|
+ .buffers = 3,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "4:2:0, triplanar, YVU",
|
|
|
+ .fourcc = V4L2_PIX_FMT_YVU420M,
|
|
|
+ .vdownsampling = { 1, 2, 2 },
|
|
|
+ .bit_depth = { 8, 4, 4 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 3,
|
|
|
+ .buffers = 3,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "4:2:0, biplanar, YUV",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV12M,
|
|
|
+ .vdownsampling = { 1, 2 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "4:2:0, biplanar, YVU",
|
|
|
+ .fourcc = V4L2_PIX_FMT_NV21M,
|
|
|
+ .vdownsampling = { 1, 2 },
|
|
|
+ .bit_depth = { 8, 8 },
|
|
|
+ .is_yuv = true,
|
|
|
+ .planes = 2,
|
|
|
+ .buffers = 2,
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
-/* There are 2 multiplanar formats in the list */
|
|
|
-#define VIVID_MPLANAR_FORMATS 2
|
|
|
+/* There are 6 multiplanar formats in the list */
|
|
|
+#define VIVID_MPLANAR_FORMATS 6
|
|
|
|
|
|
const struct vivid_fmt *vivid_get_format(struct vivid_dev *dev, u32 pixelformat)
|
|
|
{
|