mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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
This commit is contained in:
parent
11eb3cea73
commit
643fc8f107
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user