[FFmpeg-devel] [PATCH] correct MPEG video parser not to return incomplete frames

Michael Niedermayer michaelni
Mon Aug 3 03:25:13 CEST 2009


On Sun, Aug 02, 2009 at 12:39:25PM -0700, Baptiste Coudurier wrote:
> On 08/02/2009 07:53 AM, Michael Niedermayer wrote:
>> On Sun, Aug 02, 2009 at 03:58:59PM +0200, Ivan Schreter wrote:
>> [...]
>>> @@ -146,7 +153,12 @@
>>>       /* we have a full frame : we just parse the first few MPEG headers
>>>          to have the full timing information. The time take by this
>>>          function should be negligible for uncorrupted streams */
>>> -    mpegvideo_extract_headers(s, avctx, buf, buf_size);
>>> +    if (mpegvideo_extract_headers(s, avctx, buf, buf_size)<  0) {
>>> +        /* garbled frame, ignore (possibly first read after seek) */
>>> +        *poutbuf = NULL;
>>> +        *poutbuf_size = 0;
>>> +        return next;
>>> +    }
>>>   #if 0
>>>       printf("pict_type=%d frame_rate=%0.3f repeat_pict=%d\n",
>>>              s->pict_type, (double)avctx->time_base.den / 
>>> avctx->time_base.num, s->repeat_pict);
>>
>> as already said elsewhere, its not the job of parsers to discard data
>> it would break decoders that are capable to decode damaged frames, like
>> our decoder.
>
> Well there is another problem, the partial frame it will be kept during 
> stream copy, I don't think anybody will want that when extracting mpeg-2 
> from TS or PS.
>
> IMHO if picture start code is missing, if pict_type is 0 after 
> extract_headers, you can reasonably discard the data.

i dont mind giving the user the option to discard broken frames in the
parser. As you say it does make sense for stream copy but i dont want
this to be done unconditonally and as only option ...

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

> ... defining _GNU_SOURCE...
For the love of all that is holy, and some that is not, don't do that.
-- Luca & Mans
-------------- 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/20090803/c32b3572/attachment.pgp>



More information about the ffmpeg-devel mailing list