ext/ffmpeg/gstffmpegdemux.c: Don't try handling a buffer if downstream allocation...
authorEdward Hervey <bilboed@bilboed.com>
Fri, 8 Feb 2008 15:12:03 +0000 (15:12 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 8 Feb 2008 15:12:03 +0000 (15:12 +0000)
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
common
ext/ffmpeg/gstffmpegdemux.c

index 94ddf98..4747b0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-08  Edward Hervey  <edward.hervey@collabora.co.uk>
+
+       * 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  <wim.taymans@collabora.co.uk>
 
        * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_video_frame):
diff --git a/common b/common
index 571dce3..df7f73b 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 571dce3335f9be76978009b3842c050dbb900e6f
+Subproject commit df7f73bd454e0b0ee7870d8c85874aba9329fd2e
index 747d127..8494920 100644 (file)
@@ -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) {