diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-08 17:14:09 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-08 17:14:34 +0200 |
commit | f5752463f662351a448bf5a631ccfca2985fb7cb (patch) | |
tree | fbd7106b25b3e69ed01758269198fc36a3ad5cbe /gst | |
parent | 3a72c02dfef0b9de3b5ac69f69838db2b714c322 (diff) |
mpegtsmux: plug leaks when freeing stream
Diffstat (limited to 'gst')
-rw-r--r-- | gst/mpegtsmux/tsmux/tsmuxstream.c | 12 |
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); } |