bpmdetect: Save one memory allocation per stereo buffer

This commit is contained in:
Sebastian Dröge 2009-02-16 16:06:02 +01:00
parent a6320f13f1
commit 4fe032d97e

View file

@ -215,17 +215,18 @@ gst_bpm_detect_transform_ip (GstBaseTransform * trans, GstBuffer * in)
inbuf += 2048;
}
} else {
gfloat *data, *inbuf;
gfloat *inbuf, *intmp, data[2*2048];
data = inbuf =
(gfloat *) g_memdup (GST_BUFFER_DATA (in), GST_BUFFER_SIZE (in));
inbuf = (gfloat *) GST_BUFFER_DATA (in);
intmp = data;
while (nsamples > 0) {
bpm_detect->priv->detect->inputSamples (inbuf, MIN (nsamples, 2048));
memcpy (intmp, inbuf, sizeof (gfloat) * 2 * MIN (nsamples, 2048));
bpm_detect->priv->detect->inputSamples (intmp, MIN (nsamples, 2048));
nsamples -= 2048;
inbuf += 2048 * 2;
intmp += 2048 * 2;
}
g_free (data);
}
bpm = bpm_detect->priv->detect->getBpm ();