[SCM] libav/experimental: Flip (M)JPEG frames encoded by Intel JPEG library. Fixes issues 1464 and 1468.
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jun 30 16:53:16 UTC 2013
The following commit has been merged in the experimental branch:
commit 643fc8f1076bce3c971b09400019397be98065de
Author: Carl Eugen Hoyos <cehoyos at rainbow.studorg.tuwien.ac.at>
Date: Mon Oct 19 15:41:28 2009 +0000
Flip (M)JPEG frames encoded by Intel JPEG library.
Fixes issues 1464 and 1468.
Originally committed as revision 20312 to svn://svn.ffmpeg.org/ffmpeg/trunk
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 5e55614..d1d933f 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -105,6 +105,8 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_DEBUG, "mjpeg bottom field first\n");
}
}
+ if (avctx->codec->id == CODEC_ID_AMV)
+ s->flipped = 1;
return 0;
}
@@ -773,7 +775,7 @@ static int mjpeg_decode_scan(MJpegDecodeContext *s, int nb_components, int Ah, i
data[c] = s->picture.data[c];
linesize[c]=s->linesize[c];
s->coefs_finished[c] |= 1;
- if(s->avctx->codec->id==CODEC_ID_AMV) {
+ if(s->flipped) {
//picture should be flipped upside-down for this codec
assert(!(s->avctx->flags & CODEC_FLAG_EMU_EDGE));
data[c] += (linesize[c] * (s->v_scount[i] * (8 * s->mb_height -((s->height/s->v_max)&7)) - 1 ));
@@ -1176,6 +1178,9 @@ static int mjpeg_decode_com(MJpegDecodeContext *s)
else if(!strcmp(cbuf, "CS=ITU601")){
s->cs_itu601= 1;
}
+ else if(len > 20 && !strncmp(cbuf, "Intel(R) JPEG Library", 21)){
+ s->flipped = 1;
+ }
av_free(cbuf);
}
diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
index 9ef8987..d7a33b8 100644
--- a/libavcodec/mjpegdec.h
+++ b/libavcodec/mjpegdec.h
@@ -101,6 +101,7 @@ typedef struct MJpegDecodeContext {
int mjpb_skiptosod;
int cur_scan; /* current scan, used by JPEG-LS */
+ int flipped; /* true if picture is flipped */
} MJpegDecodeContext;
int ff_mjpeg_decode_init(AVCodecContext *avctx);
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list