summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-06-08 17:14:09 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-06-08 17:14:34 +0200
commitf5752463f662351a448bf5a631ccfca2985fb7cb (patch)
treefbd7106b25b3e69ed01758269198fc36a3ad5cbe /gst
parent3a72c02dfef0b9de3b5ac69f69838db2b714c322 (diff)
mpegtsmux: plug leaks when freeing stream
Diffstat (limited to 'gst')
-rw-r--r--gst/mpegtsmux/tsmux/tsmuxstream.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.c b/gst/mpegtsmux/tsmux/tsmuxstream.c
index ac2b7b9cf..56dce88a1 100644
--- a/gst/mpegtsmux/tsmux/tsmuxstream.c
+++ b/gst/mpegtsmux/tsmux/tsmuxstream.c
@@ -214,8 +214,20 @@ tsmux_stream_get_pid (TsMuxStream * stream)
void
tsmux_stream_free (TsMuxStream * stream)
{
+ GList *cur;
+
g_return_if_fail (stream != NULL);
+ /* free buffers */
+ for (cur = stream->buffers; cur; cur = cur->next) {
+ TsMuxStreamBuffer *tmbuf = (TsMuxStreamBuffer *) cur->data;
+
+ if (stream->buffer_release)
+ stream->buffer_release (tmbuf->data, tmbuf->user_data);
+ g_slice_free (TsMuxStreamBuffer, tmbuf);
+ }
+ g_list_free (stream->buffers);
+
g_slice_free (TsMuxStream, stream);
}