summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-01-11 16:17:42 +0000
committerVincent Penquerc'h <vincent.penquerch@collabora.co.uk>2012-01-11 16:17:42 +0000
commit9f4b71b2a71fd3f2b6c82ed74a6273dfbca5a3eb (patch)
treec146a51157efff71df430092f177bb44575f24f6
parent426f991b522e1fe63d30e3bf3e1a9b587bcaeca9 (diff)
oggdemux: fix push mode chain leak
When I first implemented push mode seeking, I removed the chain freeing there as it could be used later. The current code does not seem to do that though, so I'm restoring the previous freeing, which plugs the leak while apparently not reintroducing use of freed data with chained and normal files, both with gst-launch playbin2 and Totem.
-rw-r--r--ext/ogg/gstoggdemux.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 6afcae643..5baef8351 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -2436,10 +2436,12 @@ gst_ogg_demux_deactivate_current_chain (GstOggDemux * ogg)
pad->added = FALSE;
}
- /* With push mode seeking implemented, we can now seek back to the chain,
- so we do not destroy it */
- GST_DEBUG_OBJECT (ogg, "Resetting current chain");
- ogg->current_chain = NULL;
+
+ /* if we cannot seek back to the chain, we can destroy the chain
+ * completely */
+ if (!ogg->pullmode) {
+ gst_ogg_chain_free (chain);
+ }
return TRUE;
}