From 06addca0125028a5949e019acacb57775aa0f164 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 18 Jul 2012 17:30:30 +0200 Subject: [PATCH] pad: add PROXY_SCHEDULING flag Add a flag that makes the default query handler forward the scheduling query. --- gst/gstpad.c | 2 +- gst/gstpad.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gst/gstpad.c b/gst/gstpad.c index 3d3fcf4..21529f1 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2881,7 +2881,7 @@ gst_pad_query_default (GstPad * pad, GstObject * parent, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_SCHEDULING: - forward = FALSE; + forward = GST_PAD_IS_PROXY_SCHEDULING (pad); break; case GST_QUERY_ALLOCATION: forward = GST_PAD_IS_PROXY_ALLOCATION (pad); diff --git a/gst/gstpad.h b/gst/gstpad.h index 915d7c2..9bf812a 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -601,6 +601,9 @@ typedef gboolean (*GstPadStickyEventsForeachFunction) (GstPad *pad, GstEvent ** * @GST_PAD_FLAG_PROXY_ALLOCATION: the default query handler will forward * allocation queries to the internally linked pads * instead of discarding them. + * @GST_PAD_FLAG_PROXY_SCHEDULING: the default query handler will forward + * scheduling queries to the internally linked pads + * instead of discarding them. * @GST_PAD_FLAG_LAST: offset to define more flags * * Pad state flags @@ -616,6 +619,7 @@ typedef enum { GST_PAD_FLAG_FIXED_CAPS = (GST_OBJECT_FLAG_LAST << 7), GST_PAD_FLAG_PROXY_CAPS = (GST_OBJECT_FLAG_LAST << 8), GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 9), + GST_PAD_FLAG_PROXY_SCHEDULING = (GST_OBJECT_FLAG_LAST << 10), /* padding */ GST_PAD_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 16) } GstPadFlags; @@ -765,6 +769,10 @@ struct _GstPadClass { #define GST_PAD_SET_PROXY_ALLOCATION(pad) (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_ALLOCATION)) #define GST_PAD_UNSET_PROXY_ALLOCATION(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_ALLOCATION)) +#define GST_PAD_IS_PROXY_SCHEDULING(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PROXY_SCHEDULING)) +#define GST_PAD_SET_PROXY_SCHEDULING(pad) (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PROXY_SCHEDULING)) +#define GST_PAD_UNSET_PROXY_SCHEDULING(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PROXY_SCHEDULING)) + /** * GST_PAD_GET_STREAM_LOCK: * @pad: a #GstPad -- 2.7.4