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;
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;
}
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;