mpegdemux: don't ignore GstFlowReturn values
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 25 Feb 2009 10:34:45 +0000 (11:34 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 25 Feb 2009 10:34:45 +0000 (11:34 +0100)
don't ignore the return value of pull_range because we only get a valid non-NULL
buffer when the return value is GST_FLOW_OK. Avoids a crash when the pipeline is
shutting down.

gst/mpegdemux/gstmpegdemux.c

index 87c251e4492f52049ab2acae7973f6f3bf0ca38b..1794cfc599d4a6b8993614ba6123e2685cf8c3df 100644 (file)
@@ -2195,6 +2195,9 @@ gst_flups_demux_scan_forward_ts (GstFluPSDemux * demux, guint64 * pos,
 
     /* read some data */
     ret = gst_pad_pull_range (demux->sinkpad, offset, to_read, &buffer);
+    if (G_UNLIKELY (ret != GST_FLOW_OK))
+      return FALSE;
+
     data = GST_BUFFER_DATA (buffer);
     end_scan = GST_BUFFER_SIZE (buffer) - scan_sz;
     /* scan the block */
@@ -2242,6 +2245,9 @@ gst_flups_demux_scan_backward_ts (GstFluPSDemux * demux, guint64 * pos,
     }
     /* read some data */
     ret = gst_pad_pull_range (demux->sinkpad, offset, to_read, &buffer);
+    if (G_UNLIKELY (ret != GST_FLOW_OK))
+      return FALSE;
+
     start_scan = GST_BUFFER_SIZE (buffer) - scan_sz;
     data = GST_BUFFER_DATA (buffer) + start_scan;
     /* scan the block */