[FFmpeg-devel] [PATCH] MJPEG: emulate EOI also on two consecutive SOI.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sat Aug 27 21:43:58 CEST 2011
On Sat, Aug 27, 2011 at 09:16:45PM +0200, Michael Niedermayer wrote:
> On Sat, Aug 27, 2011 at 07:40:40PM +0200, Reimar Döffinger wrote:
> > 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?
>
> I dont think it should skip it
What is it supposed to do anyway?
The comment says
/* if restart period is over process EOI */
However the comment is:
if ((s->buggy_avid && !s->interlaced) || s->restart_interval)
Which will go to EOI when the restart feature is enabled,
not when the restart period is over.
More information about the ffmpeg-devel
mailing list