update for new scheduling query
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 18 Nov 2011 16:58:58 +0000 (17:58 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 18 Nov 2011 16:58:58 +0000 (17:58 +0100)
ext/gio/gstgiosrc.c
ext/ogg/gstoggdemux.c
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/audio/gstaudiobasesrc.c
gst-libs/gst/tag/gsttagdemux.c
gst/audiotestsrc/gstaudiotestsrc.c

index 5e077ad7236e5fbd8a1d3774df7f19d0cad18338..ec9da4033c72a353e4fd863ad91aeea95e3b0f69 100644 (file)
@@ -256,9 +256,9 @@ gst_gio_src_query (GstBaseSrc * base_src, GstQuery * query)
     case GST_QUERY_SCHEDULING:
     {
       gchar *scheme;
-      gboolean pull_mode;
+      GstSchedulingFlags flags;
 
-      pull_mode = FALSE;
+      flags = 0;
       if (src->file == NULL)
         goto forward_parent;
 
@@ -268,7 +268,7 @@ gst_gio_src_query (GstBaseSrc * base_src, GstQuery * query)
 
       if (strcmp (scheme, "file") == 0) {
         GST_LOG_OBJECT (src, "local URI, assuming random access is possible");
-        pull_mode = TRUE;
+        flags |= GST_SCHEDULING_FLAG_SEEKABLE;
       } else if (strcmp (scheme, "http") == 0 || strcmp (scheme, "https") == 0) {
         GST_LOG_OBJECT (src, "blacklisted protocol '%s', "
             "no random access possible", scheme);
@@ -278,7 +278,11 @@ gst_gio_src_query (GstBaseSrc * base_src, GstQuery * query)
       }
       g_free (scheme);
 
-      gst_query_set_scheduling (query, pull_mode, pull_mode, FALSE, 1, -1, 1);
+      gst_query_set_scheduling (query, flags, 1, -1, 0);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
+      if (flags & GST_SCHEDULING_FLAG_SEEKABLE)
+        gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
+
       res = TRUE;
       break;
     }
index 3614001d26dbcfdbfbf58f9fef176f0e8da97432..1e4cd4e04f7123cbf1b4e07587aa3553becc0aa1 100644 (file)
@@ -4320,7 +4320,7 @@ gst_ogg_demux_sink_activate (GstPad * sinkpad, GstObject * parent)
     goto activate_push;
   }
 
-  gst_query_parse_scheduling (query, &pull_mode, NULL, NULL, NULL, NULL, NULL);
+  pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL);
   gst_query_unref (query);
 
   if (!pull_mode)
index 9e4d11c9d2dfcae9dcf7ebab5a3e3cda0e71575b..9444fd742f56bfb317519f71137f9d613ae8cee0 100644 (file)
@@ -786,17 +786,17 @@ gst_app_src_query (GstBaseSrc * src, GstQuery * query)
     }
     case GST_QUERY_SCHEDULING:
     {
-      gboolean pull_mode = FALSE;
+      gst_query_set_scheduling (query, GST_SCHEDULING_FLAG_SEEKABLE, 1, -1, 0);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
 
       switch (priv->stream_type) {
         case GST_APP_STREAM_TYPE_STREAM:
         case GST_APP_STREAM_TYPE_SEEKABLE:
           break;
         case GST_APP_STREAM_TYPE_RANDOM_ACCESS:
-          pull_mode = TRUE;
+          gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
           break;
       }
-      gst_query_set_scheduling (query, pull_mode, TRUE, FALSE, 1, -1, 1);
       res = TRUE;
       break;
     }
index 4c272f9de40589df1c9f323cd4d9b7cf069e0e60..20838a9a26708765a308568203d5332376d821c9 100644 (file)
@@ -642,11 +642,13 @@ gst_audio_base_src_query (GstBaseSrc * bsrc, GstQuery * query)
     }
     case GST_QUERY_SCHEDULING:
     {
-      /* we allow limited pull base operation of which the details
-       * will eventually exposed in an as of yet non-existing query.
-       * Basically pulling can be done on any number of bytes as long
-       * as the offset is -1 or sequentially increasing. */
-      gst_query_set_scheduling (query, TRUE, FALSE, TRUE, 1, -1, 1);
+      /* We allow limited pull base operation. Basically pulling can be
+       * done on any number of bytes as long as the offset is -1 or
+       * sequentially increasing. */
+      gst_query_set_scheduling (query, GST_SCHEDULING_FLAG_SEQUENTIAL, 1, -1,
+          0);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
 
       res = TRUE;
       break;
index 4d02a64dddccca9742f232a334e1af7e6812d4d3..c84ef325bd9e123e6696854422c53e5d1ac10261 100644 (file)
@@ -1123,7 +1123,7 @@ gst_tag_demux_sink_activate (GstPad * sinkpad, GstObject * parent)
     goto activate_push;
   }
 
-  gst_query_parse_scheduling (query, &pull_mode, NULL, NULL, NULL, NULL, NULL);
+  pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL);
   gst_query_unref (query);
 
   if (!pull_mode)
index 7ded3977cd3f4cbd87b0ead56ee2b31aa2839ff5..6a59884073ea9a1b94b1e29426a115e73451144b 100644 (file)
@@ -328,8 +328,11 @@ gst_audio_test_src_query (GstBaseSrc * basesrc, GstQuery * query)
     case GST_QUERY_SCHEDULING:
     {
       /* if we can operate in pull mode */
-      gst_query_set_scheduling (query, src->can_activate_pull, TRUE, FALSE, 1,
-          -1, 1);
+      gst_query_set_scheduling (query, GST_SCHEDULING_FLAG_SEEKABLE, 1, -1, 0);
+      gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
+      if (src->can_activate_pull)
+        gst_query_add_scheduling_mode (query, GST_PAD_MODE_PULL);
+
       res = TRUE;
       break;
     }