queue2: forward flush events correctly
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 6 Apr 2012 10:24:22 +0000 (12:24 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 6 Apr 2012 10:24:22 +0000 (12:24 +0200)
We want to forward the flush events received on the sinkpad whenever the srcpad
is activated in pushmode, which can also happen when using the RINGBUFFER or
DOWNLOAD mode and downstream failed to activate us in pull mode.

plugins/elements/gstqueue2.c

index 02fd10a..dba86cd 100644 (file)
@@ -2139,7 +2139,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstEvent * event)
     case GST_EVENT_FLUSH_START:
     {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received flush start event");
-      if (QUEUE_IS_USING_QUEUE (queue)) {
+      if (pad->mode == GST_ACTIVATE_PUSH) {
         /* forward event */
         gst_pad_push_event (queue->srcpad, event);
 
@@ -2171,7 +2171,7 @@ gst_queue2_handle_sink_event (GstPad * pad, GstEvent * event)
     {
       GST_CAT_LOG_OBJECT (queue_dataflow, queue, "received flush stop event");
 
-      if (QUEUE_IS_USING_QUEUE (queue)) {
+      if (pad->mode == GST_ACTIVATE_PUSH) {
         /* forward event */
         gst_pad_push_event (queue->srcpad, event);