summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu.duponchelle@opencreed.com>2017-05-31 03:14:04 +0200
committerEdward Hervey <bilboed@bilboed.com>2017-06-12 16:09:47 +0200
commitb3a8c524f5e617a7d590b74757348c7d79520c37 (patch)
treecad16b15635ef3f2820208cb67185057aada92a3
parente76f0526b50fc023cef797ccf853465b2a5c82d3 (diff)
downloadgstreamer-plugins-bad-b3a8c524f5e617a7d590b74757348c7d79520c37.tar.gz
adaptivedemux: make sure to free all "old streams"
As we release the MANIFEST_LOCK in stop_tasks, demux->priv->old_streams can be set, we need to free these otherwise we may end up trying to dispose elements in the READY state. https://bugzilla.gnome.org/show_bug.cgi?id=783256
-rw-r--r--gst-libs/gst/adaptivedemux/gstadaptivedemux.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
index 3843b1f5b..edbf55e2b 100644
--- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
+++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c
@@ -809,6 +809,12 @@ gst_adaptive_demux_reset (GstAdaptiveDemux * demux)
(GDestroyNotify) gst_adaptive_demux_stream_free);
}
+ if (demux->priv->old_streams) {
+ g_list_free_full (demux->priv->old_streams,
+ (GDestroyNotify) gst_adaptive_demux_stream_free);
+ demux->priv->old_streams = NULL;
+ }
+
g_free (demux->manifest_uri);
g_free (demux->manifest_base_uri);
demux->manifest_uri = NULL;