diff options
Diffstat (limited to 'ext/ogg/gstoggdemux.c')
-rw-r--r-- | ext/ogg/gstoggdemux.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 5307521fb..084d5d5f0 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -4966,11 +4966,23 @@ gst_ogg_demux_clear_chains (GstOggDemux * ogg) for (i = 0; i < ogg->chains->len; i++) { GstOggChain *chain = g_array_index (ogg->chains, GstOggChain *, i); + if (chain == ogg->current_chain) + ogg->current_chain = NULL; + if (chain == ogg->building_chain) + ogg->building_chain = NULL; gst_ogg_chain_free (chain); } ogg->chains = g_array_set_size (ogg->chains, 0); - ogg->current_chain = NULL; - ogg->building_chain = NULL; + if (ogg->current_chain != NULL) { + GST_FIXME_OBJECT (ogg, "current chain was tracked in existing chains !"); + gst_ogg_chain_free (ogg->current_chain); + ogg->current_chain = NULL; + } + if (ogg->building_chain != NULL) { + GST_FIXME_OBJECT (ogg, "building chain was tracked in existing chains !"); + gst_ogg_chain_free (ogg->building_chain); + ogg->building_chain = NULL; + } GST_CHAIN_UNLOCK (ogg); } |