Commit 05bd25ea authored by Seungha Yang's avatar Seungha Yang 🐑 Committed by Edward Hervey

qtdemux: Don't switch active streams and old streams ...

... before the old streams is not exposed yet for MSS stream.

In case of DASH, newly configured streams will be exposed
whenever demux got moov without delay.
Meanwhile, since there is no moov box in MSS stream,
the caps will act like moov. Then, there is delay for exposing new pads
until demux got the first moof.

So, following scenario is possible only for MSS but not for DASH,
STREAM-START -> CAPS -> (configure stream but NOT EXPOSED YET)
-> STREAM-START-> CAPS (configure stream again).

In above scenario, we can reuse old stream without any stream reconfigure.
parent b2876ad8
......@@ -2488,8 +2488,10 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
gst_qtdemux_process_adapter (demux, TRUE);
gst_qtdemux_reset (demux, FALSE);
/* We expect new moov box after new stream-start event */
gst_qtdemux_stream_concat (demux,
demux->old_streams, demux->active_streams);
if (demux->exposed) {
gst_qtdemux_stream_concat (demux,
demux->old_streams, demux->active_streams);
goto drop;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment