diff --git a/gstlal-ugly/gst/lal/gstlal_interpolator.c b/gstlal-ugly/gst/lal/gstlal_interpolator.c index 0fe97d21007ce1d37fec0cf749a59888f7356792..acb68b477c526a08063919afb7fef0fa1ffea37e 100644 --- a/gstlal-ugly/gst/lal/gstlal_interpolator.c +++ b/gstlal-ugly/gst/lal/gstlal_interpolator.c @@ -334,8 +334,6 @@ static gboolean set_caps (GstBaseTransform * base, GstCaps * incaps, GstCaps * o g_return_val_if_fail(gst_structure_get_int (outstruct, "rate", &outrate), FALSE); g_return_val_if_fail(inchannels == outchannels, FALSE); - // enable downsampling too - //g_return_val_if_fail(outrate >= inrate, FALSE); g_return_val_if_fail(outrate % inrate == 0, FALSE); element->inrate = inrate; @@ -353,7 +351,8 @@ static gboolean set_caps (GstBaseTransform * base, GstCaps * incaps, GstCaps * o element->need_pretend = TRUE; if (element->upkernel) - free(element->upkernel); + for (guint i = 0; i < element->outrate / element->inrate; i++) + gsl_vector_float_free(element->upkernel[i]); element->upkernel = upkernel(element->half_length, element->outrate / element->inrate); /*