pad: add PROXY_SCHEDULING flag

Add a flag that makes the default query handler forward the scheduling query.
This commit is contained in:
Wim Taymans 2012-07-18 17:30:30 +02:00
parent 586b1ca8c6
commit 06addca012
2 changed files with 9 additions and 1 deletions

View file

@ -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);

View file

@ -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