From 38b553dda76651d7c412537c1b095a83761c2d9b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alicia=20Boya=20Garc=C3=ADa?= Date: Fri, 30 Nov 2018 19:29:30 +0100 Subject: [PATCH] qtdemux: set need_segment after a second moov stream.segment should be updated with the values of the current edit list, also when a new `moov` is received. Unfortunately this was not being the case because of an early return. As a consequence of this bugs, no end of movie clipping was being performed on the new moov and no segment event was being emitted. When performing stream switching (e.g. in MSE) the new moov may have a different edit list. This is often the case when switching between baseline H.264 (which lacks B-frames) and more demanding profiles. For this reason it's important to emit a new segment in order to be able to get matching stream times. --- gst/isomp4/qtdemux.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 79604ba..a58557a 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -12665,6 +12665,8 @@ qtdemux_expose_streams (GstQTDemux * qtdemux) g_ptr_array_remove_range (qtdemux->old_streams, 0, qtdemux->old_streams->len); + qtdemux->need_segment = TRUE; + return GST_FLOW_OK; } -- 2.7.4