From 63b598b40955b49e30ce0be5fc48f641884410e9 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Mon, 5 Dec 2022 10:55:57 +0100 Subject: [PATCH] adaptivedemux2: Don't allow stream selection while switching periods The stream selection is done on the currently outputting tracks, but in order to (de)activate the backing streams we can only do it if the input and output period are identical. Fixes crash when doing stream selection during period migration Part-of: --- .../gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c index 91161f69d0..817348d294 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c @@ -2355,6 +2355,13 @@ handle_stream_selection (GstAdaptiveDemux * demux, GList * streams, return FALSE; TRACKS_LOCK (demux); + /* We can't do stream selection if we are migrating between periods */ + if (demux->input_period && demux->output_period != demux->input_period) { + GST_WARNING_OBJECT (demux, + "Stream selection while migrating between periods is not possible"); + TRACKS_UNLOCK (demux); + return FALSE; + } /* Validate the streams and fill: * tracks : list of tracks corresponding to requested streams */