mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
libavutil: add AV_PIX_FMT_BAYER pixel formats
The pixel format descriptors are set to more or less arbitrary values as bayer formats do not fit in the descriptors structure. These values are currently not used for bayer formats and thus do not matter. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
8901f48e63
commit
9116995efb
@ -1737,6 +1737,75 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
|
||||
},
|
||||
.flags = AV_PIX_FMT_FLAG_BE,
|
||||
},
|
||||
|
||||
#define BAYER8_DESC_COMMON \
|
||||
.nb_components= 3, \
|
||||
.log2_chroma_w= 0, \
|
||||
.log2_chroma_h= 0, \
|
||||
.comp = { \
|
||||
{0,0,0,0,1}, \
|
||||
{0,0,0,0,3}, \
|
||||
{0,0,0,0,1}, \
|
||||
}, \
|
||||
|
||||
#define BAYER16_DESC_COMMON \
|
||||
.nb_components= 3, \
|
||||
.log2_chroma_w= 0, \
|
||||
.log2_chroma_h= 0, \
|
||||
.comp = { \
|
||||
{0,1,0,0, 3}, \
|
||||
{0,1,0,0, 7}, \
|
||||
{0,1,0,0, 3}, \
|
||||
}, \
|
||||
|
||||
[AV_PIX_FMT_BAYER_BGGR8] = {
|
||||
.name = "bayer_bggr8",
|
||||
BAYER8_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_BGGR16LE] = {
|
||||
.name = "bayer_bggr16le",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_BGGR16BE] = {
|
||||
.name = "bayer_bggr16be",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_RGGB8] = {
|
||||
.name = "bayer_rggb8",
|
||||
BAYER8_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_RGGB16LE] = {
|
||||
.name = "bayer_rggb16le",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_RGGB16BE] = {
|
||||
.name = "bayer_rggb16be",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GBRG8] = {
|
||||
.name = "bayer_gbrg8",
|
||||
BAYER8_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GBRG16LE] = {
|
||||
.name = "bayer_gbrg16le",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GBRG16BE] = {
|
||||
.name = "bayer_gbrg16be",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GRBG8] = {
|
||||
.name = "bayer_grbg8",
|
||||
BAYER8_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GRBG16LE] = {
|
||||
.name = "bayer_grbg16le",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
[AV_PIX_FMT_BAYER_GRBG16BE] = {
|
||||
.name = "bayer_grbg16be",
|
||||
BAYER16_DESC_COMMON
|
||||
},
|
||||
};
|
||||
|
||||
FF_DISABLE_DEPRECATION_WARNINGS
|
||||
@ -1918,6 +1987,8 @@ void ff_check_pixfmt_descriptors(void){
|
||||
av_assert0(8*(c->step_minus1+1) >= c->depth_minus1+1);
|
||||
}
|
||||
av_read_image_line(tmp, (void*)data, linesize, d, 0, 0, j, 2, 0);
|
||||
if (!memcmp(d->name, "bayer_", 6))
|
||||
continue;
|
||||
av_assert0(tmp[0] == 0 && tmp[1] == 0);
|
||||
tmp[0] = tmp[1] = (1<<(c->depth_minus1 + 1)) - 1;
|
||||
av_write_image_line(tmp, data, linesize, d, 0, 0, j, 2);
|
||||
|
@ -244,6 +244,20 @@ enum AVPixelFormat {
|
||||
AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian
|
||||
AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian
|
||||
AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of PIX_FMT_YUV411P and setting color_range
|
||||
|
||||
AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples */
|
||||
AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples */
|
||||
AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples */
|
||||
AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples */
|
||||
AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian */
|
||||
AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian */
|
||||
AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian */
|
||||
AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian */
|
||||
AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian */
|
||||
AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian */
|
||||
AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian */
|
||||
AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian */
|
||||
|
||||
AV_PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
|
||||
|
||||
#if FF_API_PIX_FMT
|
||||
|
Loading…
Reference in New Issue
Block a user