qtdemux: emit no-more-pads after pruning old pads

If we don't do that, clients can rely on this signal to see the final pad
topology but it won't be the real one as some of them will disappear after
emitting that signal. This can happen after injecting a different init segment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4557>
This commit is contained in:
Xabier Rodriguez Calvar 2023-05-03 13:21:23 +02:00 committed by Tim-Philipp Müller
parent b17fbb231c
commit 5c863418ba

View file

@ -13789,8 +13789,6 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
gst_qtdemux_guess_bitrate (qtdemux);
gst_element_no_more_pads (GST_ELEMENT_CAST (qtdemux));
/* If we have still old_streams, it's no more used stream */
for (i = 0; i < qtdemux->old_streams->len; i++) {
QtDemuxStream *stream = QTDEMUX_NTH_OLD_STREAM (qtdemux, i);
@ -13808,6 +13806,8 @@ qtdemux_expose_streams (GstQTDemux * qtdemux)
g_ptr_array_set_size (qtdemux->old_streams, 0);
gst_element_no_more_pads (GST_ELEMENT_CAST (qtdemux));
/* check if we should post a redirect in case there is a single trak
* and it is a redirecting trak */
if (QTDEMUX_N_STREAMS (qtdemux) == 1 &&