From: Jan Schmidt Date: Wed, 10 Aug 2022 19:17:05 +0000 (+1000) Subject: hlsdemux2: Fix reference leak of variant stream X-Git-Tag: 1.22.0~1118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=025e4464709087e4addca773899f03e6e7be7ce4;p=platform%2Fupstream%2Fgstreamer.git hlsdemux2: Fix reference leak of variant stream When switching back to the previous variant stream in gst_hls_demux_change_playlist(), fix a couple of paths that would leak a reference to the previous variant. Part-of: --- diff --git a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c index da5c8bb..9995ccd 100644 --- a/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c +++ b/subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux.c @@ -2673,16 +2673,22 @@ retry_failover_protection: } gst_hls_demux_set_current_variant (demux, previous_variant); + /* Try a lower bitrate (or stop if we just tried the lowest) */ if (previous_variant->iframe) { lowest_ivariant = demux->master->iframe_variants->data; - if (new_bandwidth == lowest_ivariant->bandwidth) + if (new_bandwidth == lowest_ivariant->bandwidth) { + gst_hls_variant_stream_unref (previous_variant); return FALSE; + } } else { lowest_variant = demux->master->variants->data; - if (new_bandwidth == lowest_variant->bandwidth) + if (new_bandwidth == lowest_variant->bandwidth) { + gst_hls_variant_stream_unref (previous_variant); return FALSE; + } } + gst_hls_variant_stream_unref (previous_variant); return gst_hls_demux_change_playlist (demux, new_bandwidth - 1, changed); }