diff options
author | Paul B Mahol <onemda@gmail.com> | 2013-10-07 14:10:39 +0400 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2013-10-07 15:45:46 +0400 |
commit | 23824b9698bbc5b2640c87f6538598510f4bbf18 (patch) | |
tree | 95350cf3bf24c2b71f9dcb94141393e0d3370471 /libavcodec | |
parent | e745dc2d6f3bae21cd471a3dcfa0ffe700f39c6e (diff) |
avcodec/dpx: support for 8 and 16 bit luma only files
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/dpx.c | 13 | ||||
-rw-r--r-- | libavcodec/dpxenc.c | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/libavcodec/dpx.c b/libavcodec/dpx.c index e956f6dd10..4b997e421f 100644 --- a/libavcodec/dpx.c +++ b/libavcodec/dpx.c @@ -149,6 +149,9 @@ static int decode_frame(AVCodecContext *avctx, avctx->sample_aspect_ratio = (AVRational){ 0, 1 }; switch (descriptor) { + case 6: // Y + elements = 1; + break; case 51: // RGBA elements = 4; break; @@ -191,6 +194,10 @@ static int decode_frame(AVCodecContext *avctx, } switch (1000 * descriptor + 10 * bits_per_color + endian) { + case 6081: + case 6080: + avctx->pix_fmt = AV_PIX_FMT_GRAY8; + break; case 50081: case 50080: avctx->pix_fmt = AV_PIX_FMT_RGB24; @@ -211,6 +218,12 @@ static int decode_frame(AVCodecContext *avctx, case 51121: avctx->pix_fmt = AV_PIX_FMT_GBRP12; break; + case 6161: + avctx->pix_fmt = AV_PIX_FMT_GRAY16BE; + break; + case 6160: + avctx->pix_fmt = AV_PIX_FMT_GRAY16LE; + break; case 50161: avctx->pix_fmt = AV_PIX_FMT_RGB48BE; break; diff --git a/libavcodec/dpxenc.c b/libavcodec/dpxenc.c index 997e3d651c..875862d9af 100644 --- a/libavcodec/dpxenc.c +++ b/libavcodec/dpxenc.c @@ -43,6 +43,11 @@ static av_cold int encode_init(AVCodecContext *avctx) s->planar = !!(desc->flags & AV_PIX_FMT_FLAG_PLANAR); switch (avctx->pix_fmt) { + case AV_PIX_FMT_GRAY16BE: + case AV_PIX_FMT_GRAY16LE: + case AV_PIX_FMT_GRAY8: + s->descriptor = 6; + break; case AV_PIX_FMT_GBRP10BE: case AV_PIX_FMT_GBRP10LE: case AV_PIX_FMT_GBRP12BE: @@ -242,7 +247,9 @@ AVCodec ff_dpx_encoder = { .init = encode_init, .encode2 = encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ + AV_PIX_FMT_GRAY8, AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, + AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE, AV_PIX_FMT_GBRP10LE, AV_PIX_FMT_GBRP10BE, |