queue2: add pull scheduling mode depends on peer scheduling mode 80/115980/2
authorEunhae Choi <eunhae1.choi@samsung.com>
Wed, 22 Feb 2017 08:09:24 +0000 (17:09 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Wed, 22 Feb 2017 09:39:37 +0000 (18:39 +0900)
Change-Id: I39c9174206ef113a6373dee50fcb8a806ff73d0d

packaging/gstreamer.spec
plugins/elements/gstqueue2.c

index fb2132c..e2decdd 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:           gstreamer
 Version:        1.6.1
-Release:        7
+Release:        8
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.0+
 Group:          Multimedia/Framework
index 05c0fff..1f8ece5 100644 (file)
@@ -3268,6 +3268,16 @@ gst_queue2_handle_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
 
       gst_query_parse_scheduling (query, &flags, NULL, NULL, NULL);
 
+#ifdef TIZEN_FEATURE_QUEUE2_MODIFICATION
+      if (!gst_query_has_scheduling_mode(query, GST_PAD_MODE_PULL)) {
+        GST_DEBUG_OBJECT(queue, "peer can support only push mode");
+        gst_query_set_scheduling (query, flags, 0, -1, 0);
+        gst_query_add_scheduling_mode (query, GST_PAD_MODE_PUSH);
+        break;
+      }
+#endif
+      GST_DEBUG_OBJECT(queue, "peer can support pull mode");
+
       /* we can operate in pull mode when we are using a tempfile */
       pull_mode = !QUEUE_IS_USING_QUEUE (queue);