multiqueue: recheck buffering status after flushed 68/185168/1
authorEunhae Choi <eunhae1.choi@samsung.com>
Thu, 26 Jul 2018 10:53:01 +0000 (19:53 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Thu, 26 Jul 2018 10:53:01 +0000 (19:53 +0900)
Change-Id: I71b1e166d148743bd6b2fd7a5306191120a0a820

plugins/elements/gstmultiqueue.c

index b9ec4b5..d9270ac 100644 (file)
@@ -2752,8 +2752,20 @@ gst_multi_queue_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
       res = gst_pad_push_event (sq->srcpad, event);
 
       gst_single_queue_flush (mq, sq, FALSE, FALSE);
-      goto done;
 
+#ifdef TIZEN_FEATURE_MQ_MODIFICATION
+      /* need to reset the buffering data after seeking */
+      GList *tmp;
+      tmp = mq->queues;
+      while (tmp) {
+        GstSingleQueue *q = (GstSingleQueue *) tmp->data;
+        if (q->flushing)
+          goto done;
+        tmp = g_list_next (tmp);
+      }
+      recheck_buffering_status (mq);
+#endif
+      goto done;
     case GST_EVENT_SEGMENT:
       sref = gst_event_ref (event);
       break;