swresample/resample: optimize exact_rational=on:linear_interp=on case
authorMuhammad Faiz <mfcc64@gmail.com>
Thu, 24 Nov 2016 08:02:07 +0000 (15:02 +0700)
committerMuhammad Faiz <mfcc64@gmail.com>
Thu, 24 Nov 2016 20:22:04 +0000 (03:22 +0700)
commit06f94149c61fd6beff6fcd0fd7ccc34b77c948dc
treec4dbe9dd1b10334394dd98a8f63f7e986b82ba23
parentebb4c783d025122a20aa6fb21ddf73b861da18ef
swresample/resample: optimize exact_rational=on:linear_interp=on case

separate dsp.resample to dsp.resample_common and dsp.resample_linear
and choose to call faster resample_common even when linear_interp=on
when c->frac and c->dst_incr_mod are both zero

speed up resampling when exact_rational and linear_interp are both
enabled because exact_rational force c->frac and c->dst_incr_mod to
be zero when soft compensation does not happen

benchmark on exact_rational=on:linear_interp=on
        old     new
real    8.432s  5.097s
user    7.679s  4.989s
sys     0.125s  0.107s

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
libswresample/arm/resample_init.c
libswresample/resample.c
libswresample/resample.h
libswresample/resample_dsp.c
libswresample/x86/resample_init.c