From d5df61ccb7378cfe77a8a1735d248a666c25aa9f Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 8 Feb 2008 15:12:03 +0000 Subject: [PATCH] ext/ffmpeg/gstffmpegdemux.c: Don't try handling a buffer if downstream allocation failed. Original commit message from CVS: * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): Don't try handling a buffer if downstream allocation failed. Avoids crashes and Fixes #515205 --- ChangeLog | 6 ++++++ common | 2 +- ext/ffmpeg/gstffmpegdemux.c | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 94ddf98..4747b0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-08 Edward Hervey + + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + Don't try handling a buffer if downstream allocation failed. + Avoids crashes and Fixes #515205 + 2008-01-29 Wim Taymans * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_video_frame): diff --git a/common b/common index 571dce3..df7f73b 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 571dce3335f9be76978009b3842c050dbb900e6f +Subproject commit df7f73bd454e0b0ee7870d8c85874aba9329fd2e diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c index 747d127..8494920 100644 --- a/ext/ffmpeg/gstffmpegdemux.c +++ b/ext/ffmpeg/gstffmpegdemux.c @@ -1160,7 +1160,7 @@ gst_ffmpegdemux_loop (GstPad * pad) GstPad *srcpad; GstFFStream *stream; AVStream *avstream; - GstBuffer *outbuf; + GstBuffer *outbuf = NULL; GstClockTime timestamp, duration; gint outsize; gboolean rawvideo; @@ -1239,6 +1239,10 @@ gst_ffmpegdemux_loop (GstPad * pad) if ((ret = gst_ffmpegdemux_aggregated_flow (demux)) != GST_FLOW_OK) goto no_buffer; + /* If the buffer allocation failed, don't try sending it ! */ + if (stream->last_flow != GST_FLOW_OK) + goto done; + /* copy the data from packet into the target buffer * and do conversions for raw video packets */ if (rawvideo) { -- 2.7.4