[FFmpeg-devel] [PATCH] fix issue434

Michael Niedermayer michaelni
Mon Apr 21 02:04:08 CEST 2008


On Mon, Apr 21, 2008 at 12:21:07AM +0100, M?ns Rullg?rd wrote:
> Michael Niedermayer <michaelni at gmx.at> writes:
> 
> > Hi
> >
> > The patch below fixes issue434, i will commit it in 24h unless mans objects
> >
> > Index: libavformat/mpeg.c
> > ===================================================================
> > --- libavformat/mpeg.c	(revision 12867)
> > +++ libavformat/mpeg.c	(working copy)
> > @@ -341,12 +341,13 @@
> >          if (flags & 0x01) { /* PES extension */
> >              pes_ext = get_byte(s->pb);
> >              header_len--;
> > -            if (pes_ext & 0x40) { /* pack header - should be zero in PS */
> > -                goto error_redo;
> > -            }
> >              /* Skip PES private data, program packet sequence counter and P-STD buffer */
> >              skip = (pes_ext >> 4) & 0xb;
> >              skip += skip & 0x9;
> > +            if (pes_ext & 0x40 || skip > header_len){
> > +                av_log(s, AV_LOG_WARNING, "pes_ext %X is invalid\n", pes_ext);
> > +                pes_ext=skip=0;
> > +            }
> >              url_fskip(s->pb, skip);
> >              header_len -= skip;
> 
> Workarounds for out-of-spec streams are only acceptable if explicitly
> requested.  Does lavf have something equivalent to lavc's
> AVCodecContext.strict_std_compliance?

No, also strict_std_compliance is a pure encoder side thing. Used for
preventing users to shoot themselfs in their foot (encoding expermental
codecs like snow, storing non jpeg YUV in jpeg, ...).

The variable with a matching purpose is error_resilience (bad name, yes ...)
It does select between how much spec non compliance should be ignored and
how much should be considered an error. Thus its a tradeoff between early
detection of errors in damaged streams vs. supporting streams which dont
conform to the specs.

We certainly could add such a variable to AVFormatContext as well.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080421/fbe52dae/attachment.pgp>



More information about the ffmpeg-devel mailing list