Mercurial > libavcodec.hg
changeset 9519:d42979883bb1 libavcodec
Add 420,422 and 444 planar 16bit per component pix formats.
author | michael |
---|---|
date | Tue, 21 Apr 2009 01:02:48 +0000 |
parents | b293cd788af3 |
children | c9c23894f4ae |
files | imgconvert.c |
diffstat | 1 files changed, 66 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/imgconvert.c Mon Apr 20 17:13:21 2009 +0000 +++ b/imgconvert.c Tue Apr 21 01:02:48 2009 +0000 @@ -130,6 +130,55 @@ .depth = 8, .x_chroma_shift = 0, .y_chroma_shift = 1, }, + [PIX_FMT_YUV420PLE] = { + .name = "yuv420ple", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 1, .y_chroma_shift = 1, + }, + [PIX_FMT_YUV422PLE] = { + .name = "yuv422ple", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 1, .y_chroma_shift = 0, + }, + [PIX_FMT_YUV444PLE] = { + .name = "yuv444ple", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 0, .y_chroma_shift = 0, + }, + [PIX_FMT_YUV420PBE] = { + .name = "yuv420pbe", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 1, .y_chroma_shift = 1, + }, + [PIX_FMT_YUV422PBE] = { + .name = "yuv422pbe", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 1, .y_chroma_shift = 0, + }, + [PIX_FMT_YUV444PBE] = { + .name = "yuv444pbe", + .nb_channels = 3, + .color_type = FF_COLOR_YUV, + .pixel_type = FF_PIXEL_PLANAR, + .depth = 16, + .x_chroma_shift = 0, .y_chroma_shift = 0, + }, + /* YUV formats with alpha plane */ [PIX_FMT_YUVA420P] = { @@ -613,6 +662,17 @@ picture->linesize[1] = w2; picture->linesize[2] = w2; break; + case PIX_FMT_YUV420PLE: + case PIX_FMT_YUV422PLE: + case PIX_FMT_YUV444PLE: + case PIX_FMT_YUV420PBE: + case PIX_FMT_YUV422PBE: + case PIX_FMT_YUV444PBE: + w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift; + picture->linesize[0] = 2*width; + picture->linesize[1] = 2*w2; + picture->linesize[2] = 2*w2; + break; case PIX_FMT_YUVA420P: w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift; picture->linesize[0] = width; @@ -696,6 +756,12 @@ case PIX_FMT_YUVJ422P: case PIX_FMT_YUVJ444P: case PIX_FMT_YUVJ440P: + case PIX_FMT_YUV420PLE: + case PIX_FMT_YUV422PLE: + case PIX_FMT_YUV444PLE: + case PIX_FMT_YUV420PBE: + case PIX_FMT_YUV422PBE: + case PIX_FMT_YUV444PBE: h2 = (height + (1 << pinfo->y_chroma_shift) - 1) >> pinfo->y_chroma_shift; size2 = picture->linesize[1] * h2; picture->data[0] = ptr;