[FFmpeg-devel] [PATCH 2/2] Do not fail DVB sub decoding because of a few padding bytes

Janne Grunau janne-ffmpeg
Thu Feb 10 00:32:45 CET 2011


On Wed, Feb 09, 2011 at 11:11:29PM +0000, M?ns Rullg?rd wrote:
> Janne Grunau <janne-ffmpeg at jannau.net> writes:
> 
> > On Wed, Feb 09, 2011 at 09:01:37PM +0000, M?ns Rullg?rd wrote:
> >> Janne Grunau <janne-ffmpeg at jannau.net> writes:
> >> 
> >> > On Wed, Feb 09, 2011 at 07:32:07PM +0100, Reimar D?ffinger wrote:
> >> >> Instead of returning an error when bytes are left over, just return
> >> >> the number of actually used bytes as other decoders do.
> >> >> Instead add a special case so an error will be returned when none
> >> >> of the data looks valid to avoid making debugging a pain.
> >> >> ---
> >> >>  libavcodec/dvbsubdec.c |    9 ++-------
> >> >>  1 files changed, 2 insertions(+), 7 deletions(-)
> >> >> 
> >> >> diff --git a/libavcodec/dvbsubdec.c b/libavcodec/dvbsubdec.c
> >> >> index 8cc8d4f..401144f 100644
> >> >> --- a/libavcodec/dvbsubdec.c
> >> >> +++ b/libavcodec/dvbsubdec.c
> >> >> @@ -1423,7 +1423,7 @@ static int dvbsub_decode(AVCodecContext *avctx,
> >> >>  
> >> >>  #endif
> >> >>  
> >> >> -    if (buf_size <= 2)
> >> >> +    if (buf_size <= 2 || *buf != 0x0f)
> 
> What is the point in checking *buf here and again in the loop below?
> One of them should be enough.

We don't want to return an error after already decoding something but
still have to return an error somewhere so that the caller can discard
the garbage.

Janne



More information about the ffmpeg-devel mailing list