From 6c559a0a9d3e8eb10e2b92b6793e11038ab86fcf Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 22 Jan 2015 01:49:04 +0100 Subject: [PATCH] lavc/pnm: Support decoding ya16. --- libavcodec/pnm.c | 5 ++++- libavcodec/pnmdec.c | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libavcodec/pnm.c b/libavcodec/pnm.c index 502e550097..1675959fbf 100644 --- a/libavcodec/pnm.c +++ b/libavcodec/pnm.c @@ -122,8 +122,11 @@ int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s) avctx->pix_fmt = AV_PIX_FMT_GRAY16; } } else if (depth == 2) { - if (maxval == 255) + if (maxval < 256) { avctx->pix_fmt = AV_PIX_FMT_GRAY8A; + } else { + avctx->pix_fmt = AV_PIX_FMT_YA16; + } } else if (depth == 3) { if (maxval < 256) { avctx->pix_fmt = AV_PIX_FMT_RGB24; diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c index c84b6eb080..e634500674 100644 --- a/libavcodec/pnmdec.c +++ b/libavcodec/pnmdec.c @@ -108,6 +108,13 @@ static int pnm_decode_frame(AVCodecContext *avctx, void *data, if (s->maxval < 65535) upgrade = 2; goto do_read; + case AV_PIX_FMT_YA16: + n = avctx->width * 4; + components=2; + sample_len=16; + if (s->maxval < 65535) + upgrade = 2; + goto do_read; case AV_PIX_FMT_MONOWHITE: case AV_PIX_FMT_MONOBLACK: n = (avctx->width + 7) >> 3;