• Muhammad Faiz's avatar
    swresample: add exact_rational option · b8c6e5a6
    Muhammad Faiz authored
    
    
    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: default avatarMuhammad Faiz <mfcc64@gmail.com>
    b8c6e5a6