Browse Source

drivers: video: formats: include bayer 10/12/14-bits formats

In addition to the 8-bit, introduce all the other bayer formats
described by MIPI-CSI2 specification. The 8-bit bayer formats
description is shortened to just 4 bytes like the other formats,
to help intuition while comparing the different formats.

Signed-off-by: Josuah Demangeon <me@josuah.net>
pull/88583/head
Josuah Demangeon 3 months ago committed by Benjamin Cabé
parent
commit
8ae185561c
  1. 126
      include/zephyr/drivers/video.h

126
include/zephyr/drivers/video.h

@ -901,6 +901,114 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep, @@ -901,6 +901,114 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
*/
#define VIDEO_PIX_FMT_RGGB8 VIDEO_FOURCC('R', 'G', 'G', 'B')
/**
* @code{.unparsed}
* 0 1 2 3 3 2 1 0
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbggbb | ...
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrggrrgg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SBGGR10P VIDEO_FOURCC('p', 'B', 'A', 'A')
/**
* @code{.unparsed}
* 0 1 2 3 3 2 1 0
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbggbbgg | ...
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrggrr | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGBRG10P VIDEO_FOURCC('p', 'G', 'A', 'A')
/**
* @code{.unparsed}
* 0 1 2 3 3 2 1 0
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrggrrgg | ...
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbggbb | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGRBG10P VIDEO_FOURCC('p', 'g', 'A', 'A')
/**
* @code{.unparsed}
* 0 1 2 3 3 2 1 0
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrggrr | ...
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbggbbgg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SRGGB10P VIDEO_FOURCC('p', 'R', 'A', 'A')
/**
* @code{.unparsed}
* 0 1 1 0 2 3 3 2
* | Bbbbbbbb | Gggggggg | ggggbbbb | Bbbbbbbb | Gggggggg | ggggbbbb | ...
* | Gggggggg | Rrrrrrrr | rrrrgggg | Gggggggg | Rrrrrrrr | rrrrgggg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SBGGR12P VIDEO_FOURCC('p', 'B', 'C', 'C')
/**
* @code{.unparsed}
* 0 1 1 0 2 3 3 2
* | Gggggggg | Bbbbbbbb | bbbbgggg | Gggggggg | Bbbbbbbb | bbbbgggg | ...
* | Rrrrrrrr | Gggggggg | ggggrrrr | Rrrrrrrr | Gggggggg | ggggrrrr | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGBRG12P VIDEO_FOURCC('p', 'G', 'C', 'C')
/**
* @code{.unparsed}
* 0 1 1 0 2 3 3 2
* | Gggggggg | Rrrrrrrr | rrrrgggg | Gggggggg | Rrrrrrrr | rrrrgggg | ...
* | Bbbbbbbb | Gggggggg | ggggbbbb | Bbbbbbbb | Gggggggg | ggggbbbb | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGRBG12P VIDEO_FOURCC('p', 'g', 'C', 'C')
/**
* @code{.unparsed}
* 0 1 1 0 2 3 3 2
* | Rrrrrrrr | Gggggggg | ggggrrrr | Rrrrrrrr | Gggggggg | ggggrrrr | ...
* | Gggggggg | Bbbbbbbb | bbbbgggg | Gggggggg | Bbbbbbbb | bbbbgggg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SRGGB12P VIDEO_FOURCC('p', 'R', 'C', 'C')
/**
* @code{.unparsed}
* 0 1 2 3 1 0 2 1 3 2
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbbbbb bbbbgggg ggggggbb | ...
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrgggggg ggggrrrr rrrrrrgg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SBGGR14P VIDEO_FOURCC('p', 'B', 'E', 'E')
/**
* @code{.unparsed}
* 0 1 2 3 1 0 2 1 3 2
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbgggggg ggggbbbb bbbbbbgg | ...
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrrrrr rrrrgggg ggggggrr | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGBRG14P VIDEO_FOURCC('p', 'G', 'E', 'E')
/**
* @code{.unparsed}
* 0 1 2 3 1 0 2 1 3 2
* | Gggggggg | Rrrrrrrr | Gggggggg | Rrrrrrrr | rrgggggg ggggrrrr rrrrrrgg | ...
* | Bbbbbbbb | Gggggggg | Bbbbbbbb | Gggggggg | ggbbbbbb bbbbgggg ggggggbb | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SGRBG14P VIDEO_FOURCC('p', 'g', 'E', 'E')
/**
* @code{.unparsed}
* 0 1 2 3 1 0 2 1 3 2
* | Rrrrrrrr | Gggggggg | Rrrrrrrr | Gggggggg | ggrrrrrr rrrrgggg ggggggrr | ...
* | Gggggggg | Bbbbbbbb | Gggggggg | Bbbbbbbb | bbgggggg ggggbbbb bbbbbbgg | ...
* @endcode
*/
#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'R', 'E', 'E')
/**
* @}
*/
@ -1005,6 +1113,24 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt) @@ -1005,6 +1113,24 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
case VIDEO_PIX_FMT_GRBG8:
case VIDEO_PIX_FMT_RGGB8:
return 8;
case VIDEO_PIX_FMT_SBGGR10P:
case VIDEO_PIX_FMT_SGBRG10P:
case VIDEO_PIX_FMT_SGRBG10P:
case VIDEO_PIX_FMT_SRGGB10P:
case VIDEO_PIX_FMT_Y10P:
return 10;
case VIDEO_PIX_FMT_SBGGR12P:
case VIDEO_PIX_FMT_SGBRG12P:
case VIDEO_PIX_FMT_SGRBG12P:
case VIDEO_PIX_FMT_SRGGB12P:
case VIDEO_PIX_FMT_Y12P:
return 12;
case VIDEO_PIX_FMT_SBGGR14P:
case VIDEO_PIX_FMT_SGBRG14P:
case VIDEO_PIX_FMT_SGRBG14P:
case VIDEO_PIX_FMT_SRGGB14P:
case VIDEO_PIX_FMT_Y14P:
return 14;
case VIDEO_PIX_FMT_RGB565:
case VIDEO_PIX_FMT_YUYV:
return 16;

Loading…
Cancel
Save