Commit 35f6c154 authored by Lars Täuber's avatar Lars Täuber Committed by Ramiro Polla

Make 16bit YUV formats compatible with NE avcodec_get_pix_fmt().

Patch by Lars Täuber <lars <dot> taeuber <at> gmx <dot> net>.

Originally committed as revision 19775 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 991e579c
...@@ -130,48 +130,48 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = { ...@@ -130,48 +130,48 @@ static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
.depth = 8, .depth = 8,
.x_chroma_shift = 0, .y_chroma_shift = 1, .x_chroma_shift = 0, .y_chroma_shift = 1,
}, },
[PIX_FMT_YUV420PLE] = { [PIX_FMT_YUV420P16LE] = {
.name = "yuv420ple", .name = "yuv420p16le",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
.depth = 16, .depth = 16,
.x_chroma_shift = 1, .y_chroma_shift = 1, .x_chroma_shift = 1, .y_chroma_shift = 1,
}, },
[PIX_FMT_YUV422PLE] = { [PIX_FMT_YUV422P16LE] = {
.name = "yuv422ple", .name = "yuv422p16le",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
.depth = 16, .depth = 16,
.x_chroma_shift = 1, .y_chroma_shift = 0, .x_chroma_shift = 1, .y_chroma_shift = 0,
}, },
[PIX_FMT_YUV444PLE] = { [PIX_FMT_YUV444P16LE] = {
.name = "yuv444ple", .name = "yuv444p16le",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
.depth = 16, .depth = 16,
.x_chroma_shift = 0, .y_chroma_shift = 0, .x_chroma_shift = 0, .y_chroma_shift = 0,
}, },
[PIX_FMT_YUV420PBE] = { [PIX_FMT_YUV420P16BE] = {
.name = "yuv420pbe", .name = "yuv420p16be",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
.depth = 16, .depth = 16,
.x_chroma_shift = 1, .y_chroma_shift = 1, .x_chroma_shift = 1, .y_chroma_shift = 1,
}, },
[PIX_FMT_YUV422PBE] = { [PIX_FMT_YUV422P16BE] = {
.name = "yuv422pbe", .name = "yuv422p16be",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
.depth = 16, .depth = 16,
.x_chroma_shift = 1, .y_chroma_shift = 0, .x_chroma_shift = 1, .y_chroma_shift = 0,
}, },
[PIX_FMT_YUV444PBE] = { [PIX_FMT_YUV444P16BE] = {
.name = "yuv444pbe", .name = "yuv444p16be",
.nb_channels = 3, .nb_channels = 3,
.color_type = FF_COLOR_YUV, .color_type = FF_COLOR_YUV,
.pixel_type = FF_PIXEL_PLANAR, .pixel_type = FF_PIXEL_PLANAR,
...@@ -662,12 +662,12 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width) ...@@ -662,12 +662,12 @@ int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width)
picture->linesize[1] = w2; picture->linesize[1] = w2;
picture->linesize[2] = w2; picture->linesize[2] = w2;
break; break;
case PIX_FMT_YUV420PLE: case PIX_FMT_YUV420P16LE:
case PIX_FMT_YUV422PLE: case PIX_FMT_YUV422P16LE:
case PIX_FMT_YUV444PLE: case PIX_FMT_YUV444P16LE:
case PIX_FMT_YUV420PBE: case PIX_FMT_YUV420P16BE:
case PIX_FMT_YUV422PBE: case PIX_FMT_YUV422P16BE:
case PIX_FMT_YUV444PBE: case PIX_FMT_YUV444P16BE:
w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift; w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
picture->linesize[0] = 2*width; picture->linesize[0] = 2*width;
picture->linesize[1] = 2*w2; picture->linesize[1] = 2*w2;
...@@ -760,12 +760,12 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt, ...@@ -760,12 +760,12 @@ int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt,
case PIX_FMT_YUVJ422P: case PIX_FMT_YUVJ422P:
case PIX_FMT_YUVJ444P: case PIX_FMT_YUVJ444P:
case PIX_FMT_YUVJ440P: case PIX_FMT_YUVJ440P:
case PIX_FMT_YUV420PLE: case PIX_FMT_YUV420P16LE:
case PIX_FMT_YUV422PLE: case PIX_FMT_YUV422P16LE:
case PIX_FMT_YUV444PLE: case PIX_FMT_YUV444P16LE:
case PIX_FMT_YUV420PBE: case PIX_FMT_YUV420P16BE:
case PIX_FMT_YUV422PBE: case PIX_FMT_YUV422P16BE:
case PIX_FMT_YUV444PBE: case PIX_FMT_YUV444P16BE:
h2 = (height + (1 << pinfo->y_chroma_shift) - 1) >> pinfo->y_chroma_shift; h2 = (height + (1 << pinfo->y_chroma_shift) - 1) >> pinfo->y_chroma_shift;
size2 = picture->linesize[1] * h2; size2 = picture->linesize[1] * h2;
picture->data[0] = ptr; picture->data[0] = ptr;
......
...@@ -511,8 +511,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -511,8 +511,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
{0,1,1,0,4}, /* R */ {0,1,1,0,4}, /* R */
}, },
}, },
[PIX_FMT_YUV420PLE] = { [PIX_FMT_YUV420P16LE] = {
.name = "yuv420ple", .name = "yuv420p16le",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 1, .log2_chroma_w= 1,
.log2_chroma_h= 1, .log2_chroma_h= 1,
...@@ -522,8 +522,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -522,8 +522,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
{2,1,1,0,15}, /* V */ {2,1,1,0,15}, /* V */
}, },
}, },
[PIX_FMT_YUV420PBE] = { [PIX_FMT_YUV420P16BE] = {
.name = "yuv420pbe", .name = "yuv420p16be",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 1, .log2_chroma_w= 1,
.log2_chroma_h= 1, .log2_chroma_h= 1,
...@@ -534,8 +534,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -534,8 +534,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
}, },
.flags = PIX_FMT_BE, .flags = PIX_FMT_BE,
}, },
[PIX_FMT_YUV422PLE] = { [PIX_FMT_YUV422P16LE] = {
.name = "yuv422ple", .name = "yuv422p16le",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 1, .log2_chroma_w= 1,
.log2_chroma_h= 0, .log2_chroma_h= 0,
...@@ -545,8 +545,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -545,8 +545,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
{2,1,1,0,15}, /* V */ {2,1,1,0,15}, /* V */
}, },
}, },
[PIX_FMT_YUV422PBE] = { [PIX_FMT_YUV422P16BE] = {
.name = "yuv422pbe", .name = "yuv422p16be",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 1, .log2_chroma_w= 1,
.log2_chroma_h= 0, .log2_chroma_h= 0,
...@@ -557,8 +557,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -557,8 +557,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
}, },
.flags = PIX_FMT_BE, .flags = PIX_FMT_BE,
}, },
[PIX_FMT_YUV444PLE] = { [PIX_FMT_YUV444P16LE] = {
.name = "yuv444ple", .name = "yuv444p16le",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 0, .log2_chroma_w= 0,
.log2_chroma_h= 0, .log2_chroma_h= 0,
...@@ -568,8 +568,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { ...@@ -568,8 +568,8 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
{2,1,1,0,15}, /* V */ {2,1,1,0,15}, /* V */
}, },
}, },
[PIX_FMT_YUV444PBE] = { [PIX_FMT_YUV444P16BE] = {
.name = "yuv444pbe", .name = "yuv444p16be",
.nb_channels = 3, .nb_channels = 3,
.log2_chroma_w= 0, .log2_chroma_w= 0,
.log2_chroma_h= 0, .log2_chroma_h= 0,
......
...@@ -117,12 +117,12 @@ enum PixelFormat { ...@@ -117,12 +117,12 @@ enum PixelFormat {
PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers
PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
PIX_FMT_YUV420PLE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
PIX_FMT_YUV420PBE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
PIX_FMT_YUV422PLE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
PIX_FMT_YUV422PBE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
PIX_FMT_YUV444PLE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
PIX_FMT_YUV444PBE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-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 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
}; };
...@@ -144,8 +144,8 @@ enum PixelFormat { ...@@ -144,8 +144,8 @@ enum PixelFormat {
#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE) #define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE) #define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420PBE, YUV420PLE) #define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422PBE, YUV422PLE) #define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444PBE, YUV444PLE) #define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
#endif /* AVUTIL_PIXFMT_H */ #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