swresample: add exact_rational option
authorMuhammad Faiz <mfcc64@gmail.com>
Sat, 11 Jun 2016 22:19:20 +0000 (05:19 +0700)
committerMuhammad Faiz <mfcc64@gmail.com>
Mon, 13 Jun 2016 05:36:01 +0000 (12:36 +0700)
commitb8c6e5a6618337a82ea9d0bafb471eeecc51b919
tree2e3f169f004747e59cde3043312446deec719711
parent5ca44ebd99937b0038c25784570fa80d158b21fb
swresample: add exact_rational option

give high quality resampling
as good as with linear_interp=on
as fast as without linear_interp=on
tested visually with ffplay
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000, showcqt=gamma=5"
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000:linear_interp=on, showcqt=gamma=5"
ffplay -f lavfi "aevalsrc='sin(10000*t*t)', aresample=osr=48000:exact_rational=on, showcqt=gamma=5"

slightly speed improvement
for fair comparison with -cpuflags 0
audio.wav is ~ 1 hour 44100 stereo 16bit wav file
ffmpeg -i audio.wav -af aresample=osr=48000 -f null -
        old         new
real    13.498s     13.121s
user    13.364s     12.987s
sys      0.131s      0.129s

linear_interp=on
        old         new
real    23.035s     23.050s
user    22.907s     22.917s
sys      0.119s     0.125s

exact_rational=on
real    12.418s
user    12.298s
sys      0.114s

possibility to decrease memory usage if soft compensation is ignored

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
libswresample/arm/resample_init.c
libswresample/options.c
libswresample/resample.c
libswresample/resample.h
libswresample/resample_template.c
libswresample/soxr_resample.c
libswresample/swresample.c
libswresample/swresample_internal.h
libswresample/version.h
libswresample/x86/resample_init.c