From 7544ef78051c2b0477687ac4d7da829e61dbf8ac Mon Sep 17 00:00:00 2001 From: Michael Bradshaw Date: Tue, 3 Jul 2012 11:31:44 -0600 Subject: [PATCH 1/3] libopenjpegenc: add support for YUV420/422/444P12/14 Signed-off-by: Michael Bradshaw --- libavcodec/libopenjpegenc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 5bd1f9c82f..2b0238f8c2 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -104,6 +104,12 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p case PIX_FMT_YUV420P10: case PIX_FMT_YUV422P10: case PIX_FMT_YUV444P10: + case PIX_FMT_YUV420P12: + case PIX_FMT_YUV422P12: + case PIX_FMT_YUV444P12: + case PIX_FMT_YUV420P14: + case PIX_FMT_YUV422P14: + case PIX_FMT_YUV444P14: case PIX_FMT_YUV420P16: case PIX_FMT_YUV422P16: case PIX_FMT_YUV444P16: @@ -358,6 +364,12 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, case PIX_FMT_YUV444P9: case PIX_FMT_YUV444P10: case PIX_FMT_YUV444P16: + case PIX_FMT_YUV420P12: + case PIX_FMT_YUV422P12: + case PIX_FMT_YUV444P12: + case PIX_FMT_YUV420P14: + case PIX_FMT_YUV422P14: + case PIX_FMT_YUV444P14: cpyresult = libopenjpeg_copy_unpacked16(avctx, frame, image); break; default: @@ -460,6 +472,8 @@ AVCodec ff_libopenjpeg_encoder = { PIX_FMT_YUV411P, PIX_FMT_YUV410P, PIX_FMT_YUVA444P, PIX_FMT_YUV420P9, PIX_FMT_YUV422P9, PIX_FMT_YUV444P9, PIX_FMT_YUV420P10, PIX_FMT_YUV422P10, PIX_FMT_YUV444P10, + PIX_FMT_YUV420P12, PIX_FMT_YUV422P12, PIX_FMT_YUV444P12, + PIX_FMT_YUV420P14, PIX_FMT_YUV422P14, PIX_FMT_YUV444P14, PIX_FMT_YUV420P16, PIX_FMT_YUV422P16, PIX_FMT_YUV444P16, PIX_FMT_NONE }, From 713a7854e06964abc8f7d015b94acbed27769d24 Mon Sep 17 00:00:00 2001 From: Michael Bradshaw Date: Tue, 3 Jul 2012 11:33:41 -0600 Subject: [PATCH 2/3] libopenjpegenc: cosmetics: reorder pix_fmts Signed-off-by: Michael Bradshaw --- libavcodec/libopenjpegenc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 2b0238f8c2..96cca283b8 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -356,20 +356,20 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, break; case PIX_FMT_GRAY16: case PIX_FMT_YUV420P9: - case PIX_FMT_YUV420P10: - case PIX_FMT_YUV420P16: case PIX_FMT_YUV422P9: - case PIX_FMT_YUV422P10: - case PIX_FMT_YUV422P16: case PIX_FMT_YUV444P9: case PIX_FMT_YUV444P10: - case PIX_FMT_YUV444P16: + case PIX_FMT_YUV422P10: + case PIX_FMT_YUV420P10: case PIX_FMT_YUV420P12: case PIX_FMT_YUV422P12: case PIX_FMT_YUV444P12: case PIX_FMT_YUV420P14: case PIX_FMT_YUV422P14: case PIX_FMT_YUV444P14: + case PIX_FMT_YUV444P16: + case PIX_FMT_YUV422P16: + case PIX_FMT_YUV420P16: cpyresult = libopenjpeg_copy_unpacked16(avctx, frame, image); break; default: From d3b84fdccc849b5eef036f4e11e35788793c7f83 Mon Sep 17 00:00:00 2001 From: Michael Bradshaw Date: Tue, 3 Jul 2012 11:35:25 -0600 Subject: [PATCH 3/3] libopenjpegdec: add support for decoding YUV420/422/444P12/14 Signed-off-by: Michael Bradshaw --- libavcodec/libopenjpegdec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c index 5b5d27bc38..0643698653 100644 --- a/libavcodec/libopenjpegdec.c +++ b/libavcodec/libopenjpegdec.c @@ -44,6 +44,8 @@ PIX_FMT_YUV440P,PIX_FMT_YUV444P,PIX_FMT_YUVA444P, \ PIX_FMT_YUV420P9,PIX_FMT_YUV422P9,PIX_FMT_YUV444P9, \ PIX_FMT_YUV420P10,PIX_FMT_YUV422P10,PIX_FMT_YUV444P10, \ + PIX_FMT_YUV420P12,PIX_FMT_YUV422P12,PIX_FMT_YUV444P12, \ + PIX_FMT_YUV420P14,PIX_FMT_YUV422P14,PIX_FMT_YUV444P14, \ PIX_FMT_YUV420P16,PIX_FMT_YUV422P16,PIX_FMT_YUV444P16 static const enum PixelFormat libopenjpeg_rgb_pix_fmts[] = {RGB_PIXEL_FORMATS};