Commit 81f1f6c3 authored by Kieran Kunhya's avatar Kieran Kunhya Committed by Luca Barbato

Add GBRAP12 pixel format support

Signed-off-by: 's avatarDiego Biurrun <diego@biurrun.de>
parent ef3740c3
...@@ -13,6 +13,9 @@ libavutil: 2015-08-28 ...@@ -13,6 +13,9 @@ libavutil: 2015-08-28
API changes, most recent first: API changes, most recent first:
2016-xx-xx - xxxxxxx - lavu 55.25.0 - pixfmt.h
Add AV_PIX_FMT_GBRAP12(LE/BE).
2016-xx-xx - xxxxxxx - lavu 55.24.0 - pixfmt.h 2016-xx-xx - xxxxxxx - lavu 55.24.0 - pixfmt.h
Add AV_PIX_FMT_GBRP12(LE/BE). Add AV_PIX_FMT_GBRP12(LE/BE).
......
...@@ -233,6 +233,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, ...@@ -233,6 +233,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
case AV_PIX_FMT_GBRP9BE: case AV_PIX_FMT_GBRP9BE:
case AV_PIX_FMT_GBRP10LE: case AV_PIX_FMT_GBRP10LE:
case AV_PIX_FMT_GBRP10BE: case AV_PIX_FMT_GBRP10BE:
case AV_PIX_FMT_GBRAP12LE:
case AV_PIX_FMT_GBRAP12BE:
w_align = 16; //FIXME assume 16 pixel per macroblock w_align = 16; //FIXME assume 16 pixel per macroblock
h_align = 16 * 2; // interlaced needs 2 macroblocks height h_align = 16 * 2; // interlaced needs 2 macroblocks height
break; break;
......
...@@ -1710,6 +1710,34 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -1710,6 +1710,34 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
}, },
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
}, },
[AV_PIX_FMT_GBRAP12LE] = {
.name = "gbrap12le",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 2, 0, 0, 12, 1, 11, 1 }, /* R */
{ 0, 2, 0, 0, 12, 1, 11, 1 }, /* G */
{ 1, 2, 0, 0, 12, 1, 11, 1 }, /* B */
{ 3, 2, 0, 0, 12, 1, 11, 1 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
AV_PIX_FMT_FLAG_ALPHA,
},
[AV_PIX_FMT_GBRAP12BE] = {
.name = "gbrap12be",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 2, 0, 0, 12, 1, 11, 1 }, /* R */
{ 0, 2, 0, 0, 12, 1, 11, 1 }, /* G */
{ 1, 2, 0, 0, 12, 1, 11, 1 }, /* B */
{ 3, 2, 0, 0, 12, 1, 11, 1 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
},
}; };
#if FF_API_PLUS1_MINUS1 #if FF_API_PLUS1_MINUS1
FF_ENABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS
......
...@@ -242,6 +242,9 @@ enum AVPixelFormat { ...@@ -242,6 +242,9 @@ enum AVPixelFormat {
AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian
AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian
AV_PIX_FMT_GBRAP12BE, ///< planar GBR 4:4:4:4 48bpp, big-endian
AV_PIX_FMT_GBRAP12LE, ///< planar GBR 4:4:4:4 48bpp, little-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 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
}; };
...@@ -287,6 +290,7 @@ enum AVPixelFormat { ...@@ -287,6 +290,7 @@ enum AVPixelFormat {
#define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE) #define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE)
#define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE) #define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE)
#define AV_PIX_FMT_GBRAP12 AV_PIX_FMT_NE(GBRAP12BE, GBRAP12LE)
#define AV_PIX_FMT_GBRAP16 AV_PIX_FMT_NE(GBRAP16BE, GBRAP16LE) #define AV_PIX_FMT_GBRAP16 AV_PIX_FMT_NE(GBRAP16BE, GBRAP16LE)
#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE) #define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE)
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 24 #define LIBAVUTIL_VERSION_MINOR 25
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
...@@ -812,6 +812,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -812,6 +812,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_GBRP10LE: case AV_PIX_FMT_GBRP10LE:
c->readChrPlanar = planar_rgb10le_to_uv; c->readChrPlanar = planar_rgb10le_to_uv;
break; break;
case AV_PIX_FMT_GBRAP12LE:
case AV_PIX_FMT_GBRP12LE: case AV_PIX_FMT_GBRP12LE:
c->readChrPlanar = planar_rgb12le_to_uv; c->readChrPlanar = planar_rgb12le_to_uv;
break; break;
...@@ -825,6 +826,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -825,6 +826,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_GBRP10BE: case AV_PIX_FMT_GBRP10BE:
c->readChrPlanar = planar_rgb10be_to_uv; c->readChrPlanar = planar_rgb10be_to_uv;
break; break;
case AV_PIX_FMT_GBRAP12BE:
case AV_PIX_FMT_GBRP12BE: case AV_PIX_FMT_GBRP12BE:
c->readChrPlanar = planar_rgb12be_to_uv; c->readChrPlanar = planar_rgb12be_to_uv;
break; break;
...@@ -1041,6 +1043,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -1041,6 +1043,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_GBRP10LE: case AV_PIX_FMT_GBRP10LE:
c->readLumPlanar = planar_rgb10le_to_y; c->readLumPlanar = planar_rgb10le_to_y;
break; break;
case AV_PIX_FMT_GBRAP12LE:
case AV_PIX_FMT_GBRP12LE: case AV_PIX_FMT_GBRP12LE:
c->readLumPlanar = planar_rgb12le_to_y; c->readLumPlanar = planar_rgb12le_to_y;
break; break;
...@@ -1054,6 +1057,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -1054,6 +1057,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
case AV_PIX_FMT_GBRP10BE: case AV_PIX_FMT_GBRP10BE:
c->readLumPlanar = planar_rgb10be_to_y; c->readLumPlanar = planar_rgb10be_to_y;
break; break;
case AV_PIX_FMT_GBRAP12BE:
case AV_PIX_FMT_GBRP12BE: case AV_PIX_FMT_GBRP12BE:
c->readLumPlanar = planar_rgb12be_to_y; c->readLumPlanar = planar_rgb12be_to_y;
break; break;
......
...@@ -1099,6 +1099,7 @@ void ff_get_unscaled_swscale(SwsContext *c) ...@@ -1099,6 +1099,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGRA64) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGRA64) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRAP12)||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRAP16)|| IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRAP16)||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB444) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB444) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB48) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB48) ||
......
...@@ -189,6 +189,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = { ...@@ -189,6 +189,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
[AV_PIX_FMT_GBRP16LE] = { 1, 0 }, [AV_PIX_FMT_GBRP16LE] = { 1, 0 },
[AV_PIX_FMT_GBRP16BE] = { 1, 0 }, [AV_PIX_FMT_GBRP16BE] = { 1, 0 },
[AV_PIX_FMT_GBRAP] = { 1, 1 }, [AV_PIX_FMT_GBRAP] = { 1, 1 },
[AV_PIX_FMT_GBRAP12LE] = { 1, 0 },
[AV_PIX_FMT_GBRAP12BE] = { 1, 0 },
[AV_PIX_FMT_GBRAP16LE] = { 1, 0 }, [AV_PIX_FMT_GBRAP16LE] = { 1, 0 },
[AV_PIX_FMT_GBRAP16BE] = { 1, 0 }, [AV_PIX_FMT_GBRAP16BE] = { 1, 0 },
[AV_PIX_FMT_XYZ12BE] = { 0, 0, 1 }, [AV_PIX_FMT_XYZ12BE] = { 0, 0, 1 },
......
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