From 49b19191bc0e23fea139b79b2c42969bc0c501d9 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 10 Dec 2009 18:14:26 +0000 Subject: [PATCH] Lossless jpeg expects and uses BGRA not RGB32 (this probably caused a problem on big endian) Originally committed as revision 20789 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mjpegdec.c | 2 +- libavcodec/mjpegenc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 5b213e40e4..d23c67c5f8 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -301,7 +301,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) switch(pix_fmt_id){ case 0x11111100: if(s->rgb){ - s->avctx->pix_fmt = PIX_FMT_RGB32; + s->avctx->pix_fmt = PIX_FMT_BGRA; }else s->avctx->pix_fmt = s->cs_itu601 ? PIX_FMT_YUV444P : PIX_FMT_YUVJ444P; assert(s->nb_components==3); diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index d7a85ee96c..129a257d70 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -211,7 +211,7 @@ void ff_mjpeg_encode_picture_header(MpegEncContext *s) } put_bits(&s->pb, 16, 17); - if(lossless && s->avctx->pix_fmt == PIX_FMT_RGB32) + if(lossless && s->avctx->pix_fmt == PIX_FMT_BGRA) put_bits(&s->pb, 8, 9); /* 9 bits/component RCT */ else put_bits(&s->pb, 8, 8); /* 8 bits/component */