diff options
author | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-12-02 03:26:21 +0100 |
---|---|---|
committer | Carl Eugen Hoyos <cehoyos@ag.or.at> | 2011-12-02 03:26:21 +0100 |
commit | 40c36196d555496269656dd9f15c8520fa2301cd (patch) | |
tree | 9c5961f848c615523f27b8fcc3d5ba49f9a502c9 /libavcodec/libopenjpegenc.c | |
parent | d7fc100694f776092ce07f616dbe0f02e73f347f (diff) | |
download | ffmpeg-40c36196d555496269656dd9f15c8520fa2301cd.tar.gz |
Support yuva420p encoding via libopenjpeg.
Diffstat (limited to 'libavcodec/libopenjpegenc.c')
-rw-r--r-- | libavcodec/libopenjpegenc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 521583641e..6b37fb08cf 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -93,6 +93,10 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p color_space = CLRSPC_SYCC; numcomps = 3; break; + case PIX_FMT_YUVA420P: + color_space = CLRSPC_SYCC; + numcomps = 4; + break; case PIX_FMT_YUV420P9: case PIX_FMT_YUV422P9: case PIX_FMT_YUV444P9: @@ -210,7 +214,7 @@ static int libopenjpeg_copy_yuv8(AVCodecContext *avctx, AVFrame *frame, opj_imag int y; int width; int height; - const int numcomps = 3; + const int numcomps = avctx->pix_fmt == PIX_FMT_YUVA420P ? 4 : 3; for (compno = 0; compno < numcomps; ++compno) { if (image->comps[compno].w > frame->linesize[compno]) { @@ -292,6 +296,7 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf case PIX_FMT_YUV422P: case PIX_FMT_YUV440P: case PIX_FMT_YUV444P: + case PIX_FMT_YUVA420P: cpyresult = libopenjpeg_copy_yuv8(avctx, frame, image); break; case PIX_FMT_YUV420P9: @@ -363,7 +368,7 @@ AVCodec ff_libopenjpeg_encoder = { .decode = NULL, .capabilities = 0, .pix_fmts = (const enum PixelFormat[]){PIX_FMT_RGB24,PIX_FMT_RGBA,PIX_FMT_GRAY8, - PIX_FMT_YUV420P,PIX_FMT_YUV422P, + PIX_FMT_YUV420P,PIX_FMT_YUV422P,PIX_FMT_YUVA420P, PIX_FMT_YUV440P,PIX_FMT_YUV444P, PIX_FMT_YUV420P9,PIX_FMT_YUV422P9,PIX_FMT_YUV444P9, PIX_FMT_YUV420P10,PIX_FMT_YUV422P10,PIX_FMT_YUV444P10, |