[FFmpeg-cvslog] Revert "pnm: remove nonsense code"

Paul B Mahol git at videolan.org
Mon Jul 29 00:07:32 CEST 2013


ffmpeg | branch: release/2.0 | Paul B Mahol <onemda at gmail.com> | Mon Jul 29 00:00:42 2013 +0200| [0047a310905cb6816d75059f507f5ae083c8750f] | committer: Carl Eugen Hoyos

Revert "pnm: remove nonsense code"

Breaks decoding pgms with 255 < maxval < 65535.

Found-by: Carl Eugen Hoyos <cehoyos at ag.or.at>.

This reverts commit a0348d0966a81a66f3a1bf061576b24d5296b933.
(cherry picked from commit 768e40b451a459fefaceed6b1b3d6e70c93596ac)

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

 libavcodec/pnm.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavcodec/pnm.c b/libavcodec/pnm.c
index 308457b..578bb89 100644
--- a/libavcodec/pnm.c
+++ b/libavcodec/pnm.c
@@ -163,6 +163,8 @@ int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s)
         if (s->maxval >= 256) {
             if (avctx->pix_fmt == AV_PIX_FMT_GRAY8) {
                 avctx->pix_fmt = AV_PIX_FMT_GRAY16BE;
+                if (s->maxval != 65535)
+                    avctx->pix_fmt = AV_PIX_FMT_GRAY16;
             } else if (avctx->pix_fmt == AV_PIX_FMT_RGB24) {
                 avctx->pix_fmt = AV_PIX_FMT_RGB48BE;
             } else if (avctx->pix_fmt == AV_PIX_FMT_YUV420P && s->maxval < 65536) {



More information about the ffmpeg-cvslog mailing list