[gst-plugins-farsight/master] Ignore errors if dropping is set to true

Olivier Crête olivier.crete at collabora.co.uk
Tue Jan 6 12:10:26 PST 2009


---
 gst/valve/gstvalve.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/gst/valve/gstvalve.c b/gst/valve/gstvalve.c
index ecd0f7d..a61e009 100644
--- a/gst/valve/gstvalve.c
+++ b/gst/valve/gstvalve.c
@@ -204,6 +204,12 @@ gst_valve_chain (GstPad *pad, GstBuffer *buffer)
   else
     ret = gst_pad_push (valve->srcpad, buffer);
 
+
+  GST_OBJECT_LOCK (GST_OBJECT (valve));
+  if (valve->drop)
+    ret = GST_FLOW_OK;
+  GST_OBJECT_UNLOCK (GST_OBJECT (valve));
+
   gst_object_unref (valve);
 
   return ret;
@@ -226,6 +232,11 @@ gst_valve_event (GstPad *pad, GstEvent *event)
   else
     ret = gst_pad_push_event (valve->srcpad, event);
 
+  GST_OBJECT_LOCK (GST_OBJECT (valve));
+  if (valve->drop)
+    ret = TRUE;
+  GST_OBJECT_UNLOCK (GST_OBJECT (valve));
+
   gst_object_unref (valve);
   return ret;
 }
@@ -247,6 +258,11 @@ gst_valve_buffer_alloc (GstPad * pad, guint64 offset, guint size,
   else
     ret = gst_pad_alloc_buffer (valve->srcpad, offset, size, caps, buf);
 
+  GST_OBJECT_LOCK (GST_OBJECT (valve));
+  if (valve->drop)
+    ret = GST_FLOW_OK;
+  GST_OBJECT_UNLOCK (GST_OBJECT (valve));
+
   gst_object_unref (valve);
 
   return ret;
-- 
1.5.6.5



More information about the farsight-commits mailing list