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

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Aug 27 19:40:40 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 ?

No idea, should it?
The existing code to emulate EOI at the end of a buffer jumps to exactly
that location.
restart_interval is 0 anyway after SOI, so that break will not trigger
in the normal case, and neither should it I think.
Should the buggy_avid case skip the cur_scan = 0 code?
Should cur_scan possibly be reset on every SOF anyway, or rather instead?


More information about the ffmpeg-devel mailing list