From ac38fbc3a732a575eb647b42db5f1f65c34cf04a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 1 Oct 2010 10:44:37 +0200 Subject: [PATCH] volume: Implement f64 scaling with orc This requires orc 0.4.10 --- gst/volume/gstvolume.c | 7 +------ gst/volume/gstvolumeorc.orc | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/gst/volume/gstvolume.c b/gst/volume/gstvolume.c index fab1787..796210e 100644 --- a/gst/volume/gstvolume.c +++ b/gst/volume/gstvolume.c @@ -502,13 +502,8 @@ volume_process_double (GstVolume * self, gpointer bytes, guint n_bytes) { gdouble *data = (gdouble *) bytes; guint num_samples = n_bytes / sizeof (gdouble); - int i; - - gdouble vol = self->current_volume; - for (i = 0; i < num_samples; i++) { - data[i] *= vol; - } + orc_scalarmultiply_f64_ns (data, self->current_volume, num_samples); } static void diff --git a/gst/volume/gstvolumeorc.orc b/gst/volume/gstvolumeorc.orc index 2de5566..c05a2fb 100644 --- a/gst/volume/gstvolumeorc.orc +++ b/gst/volume/gstvolumeorc.orc @@ -1,6 +1,12 @@ .init gst_volume_orc_init +.function orc_scalarmultiply_f64_ns +.dest 8 d1 double +.floatparam 8 p1 + +muld d1, d1, p1 + .function orc_scalarmultiply_f32_ns .dest 4 d1 float .floatparam 4 p1 -- 2.7.4