]> code.delx.au - pulseaudio/commitdiff
resampler: avoid some multiplies when we can
authorWim Taymans <wim.taymans@collabora.co.uk>
Wed, 19 Aug 2009 18:47:48 +0000 (20:47 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 20 Aug 2009 09:31:04 +0000 (11:31 +0200)
src/pulsecore/resampler.c

index 2256516e77f362693b7d243e700f5ed1deb9c819..43771dc8c24a244e41c95df01dd75bf893864ba9 100644 (file)
@@ -1122,8 +1122,13 @@ static void remap_channels_matrix (pa_resampler *r, void *dst, const void *src,
                     d = (float *)dst + oc;
                     s = (float *)src + ic;
 
-                    for (i = n; i > 0; i--, s += n_ic, d += n_oc)
-                        *d += *s * vol;
+                   if (vol >= 1.0) {
+                        for (i = n; i > 0; i--, s += n_ic, d += n_oc)
+                            *d += *s;
+                   } else { 
+                        for (i = n; i > 0; i--, s += n_ic, d += n_oc)
+                            *d += *s * vol;
+                   }
                 }
             }