[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