From 9c9315059ee9d2feb8cb0874629a93b787aca3ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 8 Jul 2011 15:42:56 +0200 Subject: [PATCH] omxvideodec: Fix some minor memory leaks --- omx/gstomxvideodec.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c index 376263c..c30c1f1 100644 --- a/omx/gstomxvideodec.c +++ b/omx/gstomxvideodec.c @@ -279,6 +279,7 @@ _find_nearest_frame (GstOMXVideoDec * self, GstOMXBuffer * buf) if (diff_ticks > MAX_FRAME_DIST_TICKS || diff_frames > MAX_FRAME_DIST_FRAMES) { g_warning ("Too old frame, bug in decoder -- please file a bug"); + g_slice_free (BufferIdentification, id); gst_base_video_decoder_finish_frame (GST_BASE_VIDEO_DECODER (self), tmp); l = GST_BASE_VIDEO_CODEC (self)->frames; @@ -618,11 +619,19 @@ static gboolean gst_omx_video_dec_reset (GstBaseVideoDecoder * decoder) { GstOMXVideoDec *self; + GList *l; self = GST_OMX_VIDEO_DEC (decoder); GST_DEBUG_OBJECT (self, "Resetting decoder"); + for (l = GST_BASE_VIDEO_CODEC (self)->frames; l; l = l->next) { + GstVideoFrame *frame = l->data; + + g_slice_free (BufferIdentification, frame->coder_hook); + frame->coder_hook = NULL; + } + gst_omx_port_set_flushing (self->in_port, TRUE); gst_omx_port_set_flushing (self->out_port, TRUE); -- 2.7.4