summaryrefslogtreecommitdiff
path: root/gst/gstquery.h
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2011-11-18 17:27:16 +0100
committerWim Taymans <wim.taymans@collabora.co.uk>2011-11-18 17:27:16 +0100
commit770159fb1ca388b11f2905fd0af58ec66387a4a0 (patch)
treed05d835927a35a286228b2b220bb8099f6859c04 /gst/gstquery.h
parent016d404ccf6a697df97b51f7929cd210535eb95b (diff)
query: improve scheduling query
Turns some boolean arguments in the scheduling query to flags, which are easier to extend and makes the code easier to read. Make extra methods for configuring and querying the supported scheduling modes. This should make it easier to add new modes later.
Diffstat (limited to 'gst/gstquery.h')
-rw-r--r--gst/gstquery.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/gst/gstquery.h b/gst/gstquery.h
index 9416169e76..7895861bab 100644
--- a/gst/gstquery.h
+++ b/gst/gstquery.h
@@ -374,14 +374,30 @@ guint gst_query_get_n_allocation_memories (GstQuery *query);
const gchar * gst_query_parse_nth_allocation_memory (GstQuery *query, guint index);
/* scheduling query */
+/**
+ * GstSchedulingFlags:
+ * @GST_SCHEDULING_FLAG_SEEKABLE: if seeking is possible
+ * @GST_SCHEDULING_FLAG_SEQUENTIAL: if sequential access is recommended
+ *
+ * The different scheduling flags.
+ */
+typedef enum {
+ GST_SCHEDULING_FLAG_SEEKABLE = (1 << 0),
+ GST_SCHEDULING_FLAG_SEQUENTIAL = (1 << 1)
+} GstSchedulingFlags;
+
GstQuery * gst_query_new_scheduling (void);
-void gst_query_set_scheduling (GstQuery *query, gboolean pull_mode,
- gboolean random_access, gboolean sequential,
+void gst_query_set_scheduling (GstQuery *query, GstSchedulingFlags flags,
gint minsize, gint maxsize, gint align);
-void gst_query_parse_scheduling (GstQuery *query, gboolean *pull_mode,
- gboolean *random_access, gboolean *sequential,
+void gst_query_parse_scheduling (GstQuery *query, GstSchedulingFlags *flags,
gint *minsize, gint *maxsize, gint *align);
+
+void gst_query_add_scheduling_mode (GstQuery *query, GstPadMode mode);
+guint gst_query_get_n_scheduling_modes (GstQuery *query);
+GstPadMode gst_query_parse_nth_scheduling_mode (GstQuery *query, guint index);
+gboolean gst_query_has_scheduling_mode (GstQuery *query, GstPadMode mode);
+
/* accept-caps query */
GstQuery * gst_query_new_accept_caps (GstCaps *caps);
void gst_query_parse_accept_caps (GstQuery *query, GstCaps **caps);