[FFmpeg-devel] ffprobe: Do not decode zero-sized packets in ffprobe -show_frame

Stefano Sabatini stefasab at gmail.com
Wed Feb 15 00:10:49 CET 2012


On date Tuesday 2012-02-14 17:26:13 +0100, Petter Ericson encoded:
> Greetings
> 
> Ticket #997 details a segfault in ffprobe that was exposed by the file
> http://titan.codemill.se/~peteri/120210144737.ts
> 
> This patch fixes the segfault. However, the desyncing issue that I
> mentioned in the ticket still remains (I was sloppy when looking at the
> output - It is still present in git master). If anyone could advice on what
> it is that is causing transcoding to result in desynced output, I would be
> most grateful. 
> 
> The patched ffmpeg passes make fate.
> 
> Best regards
> 
> Petter Ericson
> 

> commit e40952af2f5b6eccf24b34926bf09747117affdc
> Author: Petter Ericson <petter.ericson at codemill.se>
> Date:   Tue Feb 14 16:59:56 2012 +0100
> 
>     ffprobe: Do not avcodec_decode_video2 video packets with size == 0
> 
> diff --git a/ffprobe.c b/ffprobe.c
> index 79f7494..e23ef98 100644
> --- a/ffprobe.c
> +++ b/ffprobe.c
> @@ -1349,6 +1349,8 @@ static av_always_inline int get_decoded_frame(AVFormatContext *fmt_ctx,
>      *got_frame = 0;
>      switch (dec_ctx->codec_type) {
>      case AVMEDIA_TYPE_VIDEO:
> +        if(pkt->size == 0)
> +            return ret;
>          ret = avcodec_decode_video2(dec_ctx, frame, got_frame, pkt);
>          break;

Should be fine, alternatively I propose the attached patch which I
like more.
-- 
FFmpeg = Fundamental Frenzy Meaningful Pacific Extravagant Gadget
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavc-make-avcodec_decode_video2-immediately-return-0.patch
Type: text/x-diff
Size: 1025 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120215/1209bcf6/attachment.bin>


More information about the ffmpeg-devel mailing list