[0.10] gst-plugins-base: streamsynchronizer: force fallback buffer_alloc when other pad not available
Tim Müller
tpm at kemper.freedesktop.org
Wed Jan 4 08:01:07 PST 2012
Module: gst-plugins-base
Branch: 0.10
Commit: 6a22f6c83e5e70aa073a71b8cd574da525e5353b
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=6a22f6c83e5e70aa073a71b8cd574da525e5353b
Author: Mark Nauwelaerts <mark.nauwelaerts at collabora.co.uk>
Date: Tue Jan 3 11:04:23 2012 +0100
streamsynchronizer: force fallback buffer_alloc when other pad not available
... to avoid unnecessary spurious errors (upon e.g. shutdown).
If a real error is applicable in this unusual circumstance (missing other pad),
other (STREAM_LOCK protected) call paths can take care of that.
---
gst/playback/gststreamsynchronizer.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index 3f2b8a8..b71dcb3 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -565,7 +565,7 @@ gst_stream_synchronizer_sink_bufferalloc (GstPad * pad, guint64 offset,
guint size, GstCaps * caps, GstBuffer ** buf)
{
GstPad *opad;
- GstFlowReturn ret = GST_FLOW_ERROR;
+ GstFlowReturn ret = GST_FLOW_OK;
GST_LOG_OBJECT (pad, "Allocating buffer: size=%u", size);
@@ -573,6 +573,10 @@ gst_stream_synchronizer_sink_bufferalloc (GstPad * pad, guint64 offset,
if (opad) {
ret = gst_pad_alloc_buffer (opad, offset, size, caps, buf);
gst_object_unref (opad);
+ } else {
+ /* may have been released during shutdown;
+ * silently trigger fallback */
+ *buf = NULL;
}
GST_LOG_OBJECT (pad, "Allocation: %s", gst_flow_get_name (ret));
More information about the gstreamer-commits
mailing list