From: Sebastian Dröge Date: Fri, 25 Dec 2015 10:41:19 +0000 (+0100) Subject: scaletempo: Free the various buffers in GstBaseTransform::stop() X-Git-Tag: 1.19.3~509^2~3048 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=903c431d6d4ac6ca802306361144230057c232bd;p=platform%2Fupstream%2Fgstreamer.git scaletempo: Free the various buffers in GstBaseTransform::stop() Previously we leaked them completely, but as they're specific to the caps freeing them in stop() instead of finalize() makes most sense. --- diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c index 2601bf4..f859fee 100644 --- a/gst/audiofx/gstscaletempo.c +++ b/gst/audiofx/gstscaletempo.c @@ -699,6 +699,25 @@ gst_scaletempo_start (GstBaseTransform * trans) } static gboolean +gst_scaletempo_stop (GstBaseTransform * trans) +{ + GstScaletempo *scaletempo = GST_SCALETEMPO (trans); + + g_free (scaletempo->buf_queue); + scaletempo->buf_queue = NULL; + g_free (scaletempo->buf_overlap); + scaletempo->buf_overlap = NULL; + g_free (scaletempo->table_blend); + scaletempo->table_blend = NULL; + g_free (scaletempo->buf_pre_corr); + scaletempo->buf_pre_corr = NULL; + g_free (scaletempo->table_window); + scaletempo->table_window = NULL; + + return TRUE; +} + +static gboolean gst_scaletempo_query (GstBaseTransform * trans, GstPadDirection direction, GstQuery * query) { @@ -857,6 +876,7 @@ gst_scaletempo_class_init (GstScaletempoClass * klass) basetransform_class->transform = GST_DEBUG_FUNCPTR (gst_scaletempo_transform); basetransform_class->query = GST_DEBUG_FUNCPTR (gst_scaletempo_query); basetransform_class->start = GST_DEBUG_FUNCPTR (gst_scaletempo_start); + basetransform_class->stop = GST_DEBUG_FUNCPTR (gst_scaletempo_stop); basetransform_class->submit_input_buffer = GST_DEBUG_FUNCPTR (gst_scaletempo_submit_input_buffer); }