diff options
author | Edward Hervey <edward@centricular.com> | 2022-11-30 16:16:53 +0100 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2022-12-02 09:22:41 +0000 |
commit | 90d41293014b3f8d4dcf38eef5e9d9ab6cf661cb (patch) | |
tree | 83ae84bb77a10123881e30b9c64bfedc91b7029e | |
parent | 41017e6c3456a027b775d8fa1c5c07ecc851a669 (diff) | |
download | gstreamer-90d41293014b3f8d4dcf38eef5e9d9ab6cf661cb.tar.gz |
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: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3487>
-rw-r--r-- | subprojects/gstreamer/plugins/elements/gstmultiqueue.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/subprojects/gstreamer/plugins/elements/gstmultiqueue.c b/subprojects/gstreamer/plugins/elements/gstmultiqueue.c index bbe29e5e7f..98a7fd7f1e 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; } |