Commit e9757066 authored by Michael Niedermayer's avatar Michael Niedermayer

libavutil: add 12 and 14 bit planar colorspaces

Reviewed-by: 's avatarJean First <jeanfirst@gmail.com>
Reviewed-by: 's avatarPaul B Mahol <onemda@gmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 5d171b1f
......@@ -944,6 +944,54 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV420P12LE] = {
.name = "yuv420p12le",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV420P12BE] = {
.name = "yuv420p12be",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV420P14LE] = {
.name = "yuv420p14le",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV420P14BE] = {
.name = "yuv420p14be",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 1,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV420P16LE] = {
.name = "yuv420p16le",
.nb_components = 3,
......@@ -1016,6 +1064,54 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV422P12LE] = {
.name = "yuv422p12le",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV422P12BE] = {
.name = "yuv422p12be",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV422P14LE] = {
.name = "yuv422p14le",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV422P14BE] = {
.name = "yuv422p14be",
.nb_components = 3,
.log2_chroma_w = 1,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV422P16LE] = {
.name = "yuv422p16le",
.nb_components = 3,
......@@ -1112,6 +1208,54 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV444P12LE] = {
.name = "yuv444p12le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV444P12BE] = {
.name = "yuv444p12be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 11 }, /* Y */
{ 1, 1, 1, 0, 11 }, /* U */
{ 2, 1, 1, 0, 11 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_YUV444P14LE] = {
.name = "yuv444p14le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_PLANAR,
},
[PIX_FMT_YUV444P14BE] = {
.name = "yuv444p14be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 1, 1, 0, 13 }, /* Y */
{ 1, 1, 1, 0, 13 }, /* U */
{ 2, 1, 1, 0, 13 }, /* V */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR,
},
[PIX_FMT_DXVA2_VLD] = {
.name = "dxva2_vld",
.log2_chroma_w = 1,
......@@ -1192,6 +1336,54 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB,
},
[PIX_FMT_GBRP12LE] = {
.name = "gbrp12le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 1, 1, 0, 11 }, /* R */
{ 0, 1, 1, 0, 11 }, /* G */
{ 1, 1, 1, 0, 11 }, /* B */
},
.flags = PIX_FMT_PLANAR | PIX_FMT_RGB,
},
[PIX_FMT_GBRP12BE] = {
.name = "gbrp12be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 1, 1, 0, 11 }, /* R */
{ 0, 1, 1, 0, 11 }, /* G */
{ 1, 1, 1, 0, 11 }, /* B */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB,
},
[PIX_FMT_GBRP14LE] = {
.name = "gbrp14le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 1, 1, 0, 13 }, /* R */
{ 0, 1, 1, 0, 13 }, /* G */
{ 1, 1, 1, 0, 13 }, /* B */
},
.flags = PIX_FMT_PLANAR | PIX_FMT_RGB,
},
[PIX_FMT_GBRP14BE] = {
.name = "gbrp14be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 1, 1, 0, 13 }, /* R */
{ 0, 1, 1, 0, 13 }, /* G */
{ 1, 1, 1, 0, 13 }, /* B */
},
.flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB,
},
[PIX_FMT_GBRP16LE] = {
.name = "gbrp16le",
.nb_components = 3,
......
......@@ -185,6 +185,23 @@ enum PixelFormat {
PIX_FMT_YUVA444P, ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples)
PIX_FMT_YUVA422P, ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples)
PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big endian
PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little endian
PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big endian
PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little endian
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
};
......@@ -220,6 +237,12 @@ enum PixelFormat {
#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
#define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
#define PIX_FMT_YUV420P12 PIX_FMT_NE(YUV420P12BE, YUV420P12LE)
#define PIX_FMT_YUV422P12 PIX_FMT_NE(YUV422P12BE, YUV422P12LE)
#define PIX_FMT_YUV444P12 PIX_FMT_NE(YUV444P12BE, YUV444P12LE)
#define PIX_FMT_YUV420P14 PIX_FMT_NE(YUV420P14BE, YUV420P14LE)
#define PIX_FMT_YUV422P14 PIX_FMT_NE(YUV422P14BE, YUV422P14LE)
#define PIX_FMT_YUV444P14 PIX_FMT_NE(YUV444P14BE, YUV444P14LE)
#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
......@@ -228,6 +251,8 @@ enum PixelFormat {
#define PIX_FMT_BGRA64 PIX_FMT_NE(BGRA64BE, BGRA64LE)
#define PIX_FMT_GBRP9 PIX_FMT_NE(GBRP9BE , GBRP9LE)
#define PIX_FMT_GBRP10 PIX_FMT_NE(GBRP10BE, GBRP10LE)
#define PIX_FMT_GBRP12 PIX_FMT_NE(GBRP12BE, GBRP12LE)
#define PIX_FMT_GBRP14 PIX_FMT_NE(GBRP14BE, GBRP14LE)
#define PIX_FMT_GBRP16 PIX_FMT_NE(GBRP16BE, GBRP16LE)
#endif /* AVUTIL_PIXFMT_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment