From: Edward Hervey Date: Wed, 30 Nov 2022 15:16:53 +0000 (+0100) Subject: multiqueue: Handle gapless with flushing X-Git-Tag: 1.22.0~227 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90d41293014b3f8d4dcf38eef5e9d9ab6cf661cb;p=platform%2Fupstream%2Fgstreamer.git multiqueue: Handle gapless with flushing Don't reset the stream-start group-id when stop/pausing single queues. They are only resetted when re-used (in READY->PAUSED). Fixes #1586 Part-of: --- diff --git a/subprojects/gstreamer/plugins/elements/gstmultiqueue.c b/subprojects/gstreamer/plugins/elements/gstmultiqueue.c index bbe29e5..98a7fd7 100644 --- a/subprojects/gstreamer/plugins/elements/gstmultiqueue.c +++ b/subprojects/gstreamer/plugins/elements/gstmultiqueue.c @@ -1292,6 +1292,7 @@ gst_multi_queue_change_state (GstElement * element, GstStateChange transition) for (tmp = mqueue->queues; tmp; tmp = g_list_next (tmp)) { sq = (GstSingleQueue *) tmp->data; sq->flushing = FALSE; + sq->sink_stream_gid = sq->src_stream_gid = GST_GROUP_ID_INVALID; } /* the visible limit might not have been set on single queues that have grown because of other queueus were empty */ @@ -1363,9 +1364,7 @@ gst_single_queue_pause (GstMultiQueue * mq, GstSingleQueue * sq) } sq->sink_tainted = sq->src_tainted = TRUE; - sq->sink_stream_gid = sq->src_stream_gid = GST_GROUP_ID_INVALID; - sq->sink_stream_gid_changed = FALSE; - sq->src_stream_gid_changed = FALSE; + return result; } @@ -1381,9 +1380,7 @@ gst_single_queue_stop (GstMultiQueue * mq, GstSingleQueue * sq) gst_object_unref (srcpad); } sq->sink_tainted = sq->src_tainted = TRUE; - sq->sink_stream_gid = sq->src_stream_gid = GST_GROUP_ID_INVALID; - sq->sink_stream_gid_changed = FALSE; - sq->src_stream_gid_changed = FALSE; + return result; }