mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
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>
This commit is contained in:
parent
41017e6c34
commit
90d4129301
1 changed files with 3 additions and 6 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue