Commit 4170a44b authored by Kieran Kunhya's avatar Kieran Kunhya Committed by Michael Niedermayer

Add GBRAP12 pixel format

Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent e86444b1
...@@ -351,6 +351,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, ...@@ -351,6 +351,8 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
case AV_PIX_FMT_GBRP14BE: case AV_PIX_FMT_GBRP14BE:
case AV_PIX_FMT_GBRP16LE: case AV_PIX_FMT_GBRP16LE:
case AV_PIX_FMT_GBRP16BE: case AV_PIX_FMT_GBRP16BE:
case AV_PIX_FMT_GBRAP12LE:
case AV_PIX_FMT_GBRAP12BE:
case AV_PIX_FMT_GBRAP16LE: case AV_PIX_FMT_GBRAP16LE:
case AV_PIX_FMT_GBRAP16BE: case AV_PIX_FMT_GBRAP16BE:
w_align = 16; //FIXME assume 16 pixel per macroblock w_align = 16; //FIXME assume 16 pixel per macroblock
......
...@@ -2028,6 +2028,34 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { ...@@ -2028,6 +2028,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
......
...@@ -292,6 +292,9 @@ enum AVPixelFormat { ...@@ -292,6 +292,9 @@ enum AVPixelFormat {
AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian
AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-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
}; };
...@@ -347,6 +350,7 @@ enum AVPixelFormat { ...@@ -347,6 +350,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_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE) #define AV_PIX_FMT_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE)
#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_BAYER_BGGR16 AV_PIX_FMT_NE(BAYER_BGGR16BE, BAYER_BGGR16LE) #define AV_PIX_FMT_BAYER_BGGR16 AV_PIX_FMT_NE(BAYER_BGGR16BE, BAYER_BGGR16LE)
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 18 #define LIBAVUTIL_VERSION_MINOR 19
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
...@@ -981,6 +981,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -981,6 +981,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;
...@@ -997,6 +998,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -997,6 +998,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;
...@@ -1259,6 +1261,8 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -1259,6 +1261,8 @@ 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:
c->readAlpPlanar = planar_rgb12le_to_a;
case AV_PIX_FMT_GBRP12LE: case AV_PIX_FMT_GBRP12LE:
c->readLumPlanar = planar_rgb12le_to_y; c->readLumPlanar = planar_rgb12le_to_y;
break; break;
...@@ -1276,6 +1280,8 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) ...@@ -1276,6 +1280,8 @@ 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:
c->readAlpPlanar = planar_rgb12be_to_a;
case AV_PIX_FMT_GBRP12BE: case AV_PIX_FMT_GBRP12BE:
c->readLumPlanar = planar_rgb12be_to_y; c->readLumPlanar = planar_rgb12be_to_y;
break; break;
......
...@@ -1643,6 +1643,7 @@ void ff_get_unscaled_swscale(SwsContext *c) ...@@ -1643,6 +1643,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
dstFormat == AV_PIX_FMT_GBRP12LE || dstFormat == AV_PIX_FMT_GBRP12BE || dstFormat == AV_PIX_FMT_GBRP12LE || dstFormat == AV_PIX_FMT_GBRP12BE ||
dstFormat == AV_PIX_FMT_GBRP14LE || dstFormat == AV_PIX_FMT_GBRP14BE || dstFormat == AV_PIX_FMT_GBRP14LE || dstFormat == AV_PIX_FMT_GBRP14BE ||
dstFormat == AV_PIX_FMT_GBRP16LE || dstFormat == AV_PIX_FMT_GBRP16BE || dstFormat == AV_PIX_FMT_GBRP16LE || dstFormat == AV_PIX_FMT_GBRP16BE ||
dstFormat == AV_PIX_FMT_GBRAP12LE || dstFormat == AV_PIX_FMT_GBRAP12BE ||
dstFormat == AV_PIX_FMT_GBRAP16LE || dstFormat == AV_PIX_FMT_GBRAP16BE )) dstFormat == AV_PIX_FMT_GBRAP16LE || dstFormat == AV_PIX_FMT_GBRAP16BE ))
c->swscale = Rgb16ToPlanarRgb16Wrapper; c->swscale = Rgb16ToPlanarRgb16Wrapper;
...@@ -1651,6 +1652,7 @@ void ff_get_unscaled_swscale(SwsContext *c) ...@@ -1651,6 +1652,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
srcFormat == AV_PIX_FMT_GBRP10LE || srcFormat == AV_PIX_FMT_GBRP10BE || srcFormat == AV_PIX_FMT_GBRP10LE || srcFormat == AV_PIX_FMT_GBRP10BE ||
srcFormat == AV_PIX_FMT_GBRP12LE || srcFormat == AV_PIX_FMT_GBRP12BE || srcFormat == AV_PIX_FMT_GBRP12LE || srcFormat == AV_PIX_FMT_GBRP12BE ||
srcFormat == AV_PIX_FMT_GBRP14LE || srcFormat == AV_PIX_FMT_GBRP14BE || srcFormat == AV_PIX_FMT_GBRP14LE || srcFormat == AV_PIX_FMT_GBRP14BE ||
srcFormat == AV_PIX_FMT_GBRAP12LE || srcFormat == AV_PIX_FMT_GBRAP12BE ||
srcFormat == AV_PIX_FMT_GBRAP16LE || srcFormat == AV_PIX_FMT_GBRAP16BE) && srcFormat == AV_PIX_FMT_GBRAP16LE || srcFormat == AV_PIX_FMT_GBRAP16BE) &&
(dstFormat == AV_PIX_FMT_RGB48LE || dstFormat == AV_PIX_FMT_RGB48BE || (dstFormat == AV_PIX_FMT_RGB48LE || dstFormat == AV_PIX_FMT_RGB48BE ||
dstFormat == AV_PIX_FMT_BGR48LE || dstFormat == AV_PIX_FMT_BGR48BE || dstFormat == AV_PIX_FMT_BGR48LE || dstFormat == AV_PIX_FMT_BGR48BE ||
...@@ -1692,6 +1694,7 @@ void ff_get_unscaled_swscale(SwsContext *c) ...@@ -1692,6 +1694,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP12) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP12) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP14) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP14) ||
IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP16) || IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP16) ||
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) ||
......
...@@ -206,6 +206,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = { ...@@ -206,6 +206,8 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
[AV_PIX_FMT_GBRP10BE] = { 1, 1 }, [AV_PIX_FMT_GBRP10BE] = { 1, 1 },
[AV_PIX_FMT_GBRP12LE] = { 1, 1 }, [AV_PIX_FMT_GBRP12LE] = { 1, 1 },
[AV_PIX_FMT_GBRP12BE] = { 1, 1 }, [AV_PIX_FMT_GBRP12BE] = { 1, 1 },
[AV_PIX_FMT_GBRAP12LE] = { 1, 0 },
[AV_PIX_FMT_GBRAP12BE] = { 1, 0 },
[AV_PIX_FMT_GBRP14LE] = { 1, 1 }, [AV_PIX_FMT_GBRP14LE] = { 1, 1 },
[AV_PIX_FMT_GBRP14BE] = { 1, 1 }, [AV_PIX_FMT_GBRP14BE] = { 1, 1 },
[AV_PIX_FMT_GBRP16LE] = { 1, 0 }, [AV_PIX_FMT_GBRP16LE] = { 1, 0 },
...@@ -1083,6 +1085,9 @@ static enum AVPixelFormat alphaless_fmt(enum AVPixelFormat fmt) ...@@ -1083,6 +1085,9 @@ static enum AVPixelFormat alphaless_fmt(enum AVPixelFormat fmt)
case AV_PIX_FMT_GBRAP: return AV_PIX_FMT_GBRP; case AV_PIX_FMT_GBRAP: return AV_PIX_FMT_GBRP;
case AV_PIX_FMT_GBRAP12LE: return AV_PIX_FMT_GBRP12;
case AV_PIX_FMT_GBRAP12BE: return AV_PIX_FMT_GBRP12;
case AV_PIX_FMT_GBRAP16LE: return AV_PIX_FMT_GBRP16; case AV_PIX_FMT_GBRAP16LE: return AV_PIX_FMT_GBRP16;
case AV_PIX_FMT_GBRAP16BE: return AV_PIX_FMT_GBRP16; case AV_PIX_FMT_GBRAP16BE: return AV_PIX_FMT_GBRP16;
...@@ -1352,6 +1357,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, ...@@ -1352,6 +1357,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
srcFormat != AV_PIX_FMT_GBRP9BE && srcFormat != AV_PIX_FMT_GBRP9LE && srcFormat != AV_PIX_FMT_GBRP9BE && srcFormat != AV_PIX_FMT_GBRP9LE &&
srcFormat != AV_PIX_FMT_GBRP10BE && srcFormat != AV_PIX_FMT_GBRP10LE && srcFormat != AV_PIX_FMT_GBRP10BE && srcFormat != AV_PIX_FMT_GBRP10LE &&
srcFormat != AV_PIX_FMT_GBRP12BE && srcFormat != AV_PIX_FMT_GBRP12LE && srcFormat != AV_PIX_FMT_GBRP12BE && srcFormat != AV_PIX_FMT_GBRP12LE &&
srcFormat != AV_PIX_FMT_GBRAP12BE && srcFormat != AV_PIX_FMT_GBRAP12LE &&
srcFormat != AV_PIX_FMT_GBRP14BE && srcFormat != AV_PIX_FMT_GBRP14LE && srcFormat != AV_PIX_FMT_GBRP14BE && srcFormat != AV_PIX_FMT_GBRP14LE &&
srcFormat != AV_PIX_FMT_GBRP16BE && srcFormat != AV_PIX_FMT_GBRP16LE && srcFormat != AV_PIX_FMT_GBRP16BE && srcFormat != AV_PIX_FMT_GBRP16LE &&
srcFormat != AV_PIX_FMT_GBRAP16BE && srcFormat != AV_PIX_FMT_GBRAP16LE && srcFormat != AV_PIX_FMT_GBRAP16BE && srcFormat != AV_PIX_FMT_GBRAP16LE &&
......
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