[FFmpeg-cvslog] Do not try to read 16bit gray png files with alpha channel.

Carl Eugen Hoyos git at videolan.org
Mon Nov 21 19:59:17 CET 2011


ffmpeg | branch: release/0.7 | Carl Eugen Hoyos <cehoyos at ag.or.at> | Sat Nov 12 19:30:27 2011 +0100| [00d35e82b2500f69db9d482db76e8c2f53521f2d] | committer: Michael Niedermayer

Do not try to read 16bit gray png files with alpha channel.

FFmpeg does not support gray16a.
Fixes the crash in ticket #644.
(cherry picked from commit 0c5fd6372e6c257912d7ae64cbfc4d8541f0452f)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=00d35e82b2500f69db9d482db76e8c2f53521f2d
---

 libavcodec/pngdec.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 05ba027..f8ebb1b 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -471,7 +471,8 @@ static int decode_frame(AVCodecContext *avctx,
                     avctx->pix_fmt = PIX_FMT_MONOBLACK;
                 } else if (s->color_type == PNG_COLOR_TYPE_PALETTE) {
                     avctx->pix_fmt = PIX_FMT_PAL8;
-                } else if (s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
+                } else if (s->bit_depth == 8 &&
+                           s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
                     avctx->pix_fmt = PIX_FMT_GRAY8A;
                 } else {
                     goto fail;



More information about the ffmpeg-cvslog mailing list