From 5f1764232f465d417867eaa6989390d91889a86a Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 9 Dec 2015 17:40:02 +0100 Subject: [PATCH] multiqueue: Don't use random segment.position from upstream segment.position is meant for internal usage only, but the various GST_EVENT_SEGMENT creationg/parsing functions won't clear that field. Use the appropriate segment boundary as an initial value instead --- plugins/elements/gstmultiqueue.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c index 8d1f961ece..b19daa4c61 100644 --- a/plugins/elements/gstmultiqueue.c +++ b/plugins/elements/gstmultiqueue.c @@ -1217,6 +1217,12 @@ apply_segment (GstMultiQueue * mq, GstSingleQueue * sq, GstEvent * event, } GST_MULTI_QUEUE_MUTEX_LOCK (mq); + /* Make sure we have a valid initial segment position (and not garbage + * from upstream) */ + if (segment->rate > 0.0) + segment->position = segment->start; + else + segment->position = segment->stop; if (segment == &sq->sink_segment) sq->sink_tainted = TRUE; else {