[FFmpeg-devel] [PATCH] MJPEG: emulate EOI also on two consecutive SOI.

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Aug 27 22:23:00 CEST 2011


On Sat, Aug 27, 2011 at 06:52:21PM +0200, Michael Niedermayer wrote:
> On Sat, Aug 27, 2011 at 02:43:04PM +0200, Reimar Döffinger wrote:
> > Fixes issue #362.
> > 
> > Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
> > ---
> >  libavcodec/mjpegdec.c |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> > 
> > diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
> > index 6331e3d..57ce821 100644
> > --- a/libavcodec/mjpegdec.c
> > +++ b/libavcodec/mjpegdec.c
> > @@ -1430,6 +1430,10 @@ int ff_mjpeg_decode_frame(AVCodecContext *avctx,
> >  
> >                      s->restart_count = 0;
> >                      /* nothing to do on SOI */
> > +                    if (s->got_picture) {
> > +                        av_log(avctx, AV_LOG_WARNING, "EOI missing, emulating\n");
> > +                        goto eoi_parser;
> 
> should that not jump to 3 lines earlier to emulate EOI fully ?

I sent a patch to move resetting cur_scan.
After that I think it is the right place to go to.
The if as far as I can tell is there to avoid a warning for the buggy
case when the EOI ends up at the wrong place. Or something like that.
In either way if we encounter an SOI we really want the EOI code to
be run, not skipped like that condition does.
Though it might help to have that avid sample (and any others) that
condition is supposed to check.
So in short, for now I still think this proposed patch is doing the
right thing.


More information about the ffmpeg-devel mailing list