rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly
authorSebastian Dröge <sebastian@centricular.com>
Tue, 24 Dec 2013 13:40:25 +0000 (14:40 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 24 Dec 2013 13:40:25 +0000 (14:40 +0100)
gst/debugutils/rndbuffersize.c

index 6259579..009f833 100644 (file)
@@ -159,11 +159,17 @@ gst_rnd_buffer_size_init (GstRndBufferSize * self)
       GST_DEBUG_FUNCPTR (gst_rnd_buffer_size_sink_event));
   gst_pad_set_chain_function (self->sinkpad,
       GST_DEBUG_FUNCPTR (gst_rnd_buffer_size_chain));
+  GST_OBJECT_FLAG_SET (self->sinkpad, GST_PAD_FLAG_PROXY_CAPS);
+  GST_OBJECT_FLAG_SET (self->sinkpad, GST_PAD_FLAG_PROXY_ALLOCATION);
+  GST_OBJECT_FLAG_SET (self->sinkpad, GST_PAD_FLAG_PROXY_SCHEDULING);
   gst_element_add_pad (GST_ELEMENT (self), self->sinkpad);
 
   self->srcpad = gst_pad_new_from_static_template (&src_template, "src");
   gst_pad_set_event_function (self->srcpad,
       GST_DEBUG_FUNCPTR (gst_rnd_buffer_size_src_event));
+  GST_OBJECT_FLAG_SET (self->srcpad, GST_PAD_FLAG_PROXY_CAPS);
+  GST_OBJECT_FLAG_SET (self->srcpad, GST_PAD_FLAG_PROXY_ALLOCATION);
+  GST_OBJECT_FLAG_SET (self->srcpad, GST_PAD_FLAG_PROXY_SCHEDULING);
   gst_element_add_pad (GST_ELEMENT (self), self->srcpad);
 }
 
@@ -296,8 +302,7 @@ gst_rnd_buffer_size_src_event (GstPad * pad, GstObject * parent,
   gint64 start;
 
   if (GST_EVENT_TYPE (event) != GST_EVENT_SEEK) {
-    GST_WARNING_OBJECT (pad, "dropping %s event", GST_EVENT_TYPE_NAME (event));
-    return FALSE;
+    return gst_pad_event_default (pad, parent, event);
   }
 
   self = GST_RND_BUFFER_SIZE (parent);
@@ -417,7 +422,7 @@ gst_rnd_buffer_size_sink_event (GstPad * pad, GstObject * parent,
       break;
   }
 
-  return gst_pad_push_event (rnd->srcpad, event);
+  return gst_pad_event_default (pad, parent, event);
 }
 
 static GstFlowReturn