]> code.delx.au - pulseaudio/commit
core: Refactor code to multiply s16 by volume
authorPeter Meerwald <pmeerw@pmeerw.net>
Wed, 13 Feb 2013 16:27:05 +0000 (17:27 +0100)
committerTanu Kaskinen <tanuk@iki.fi>
Fri, 15 Feb 2013 19:34:13 +0000 (21:34 +0200)
commit8fa81a93c984523bf2bd5ad4b079bce8d14a9a4e
tree539d2179e688f05ffd141bd0a5f096b13ba29936
parentb123cfa7c961080f32a1ff46e22d1c567bb52b0d
core: Refactor code to multiply s16 by volume

move code to function pa_mult_s16_volume() in sample-util.h
use 64 bit integers on 64 bit platforms (it's faster)

on i5, 2.5GHz (64-bit)

Running suite(s): Mult-s16
32 bit mult: 1272300 usec (avg: 12723, min = 12533, max = 18749, stddev = 620.48).
64 bit mult: 852241 usec (avg: 8522.41, min = 8420, max = 9148, stddev = 109.388).
100%: Checks: 1, Failures: 0, Errors: 0

on Pentium D, 3.4GHz (32-bit)

Running suite(s): Mult-s16
32 bit mult: 2228504 usec (avg: 22285, min = 18775, max = 29648, stddev = 3865.59).
64 bit mult: 5546861 usec (avg: 55468.6, min = 55028, max = 64924, stddev = 978.981).
100%: Checks: 1, Failures: 0, Errors: 0

on TI DM3730, Cortex-A8, 800MHz (32-bit)

Running suite(s): Mult-s16
32 bit mult: 23708900 usec (avg: 237089, min = 191864, max = 557312, stddev = 77503.6).
64 bit mult: 22190039 usec (avg: 221900, min = 177978, max = 480469, stddev = 68520.5).
100%: Checks: 1, Failures: 0, Errors: 0

there is a test program called mult-s16-test which checks that the functions compute the
same results, and compares runtime

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
src/pulsecore/mix.c
src/pulsecore/sample-util.h
src/pulsecore/svolume_c.c