summaryrefslogtreecommitdiff
path: root/gst/audiofx
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-12-25 11:41:19 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-12-25 11:41:19 +0100
commit903c431d6d4ac6ca802306361144230057c232bd (patch)
tree17094b6dc07f456fcdde793ed18677c125fd8684 /gst/audiofx
parent75f21c86988bed75495bc263330bb4f9b88d95ad (diff)
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.
Diffstat (limited to 'gst/audiofx')
-rw-r--r--gst/audiofx/gstscaletempo.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gst/audiofx/gstscaletempo.c b/gst/audiofx/gstscaletempo.c
index 2601bf448..f859feeef 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);
}