diff options
author | Muhammad Faiz <mfcc64@gmail.com> | 2016-11-25 16:39:34 +0700 |
---|---|---|
committer | Muhammad Faiz <mfcc64@gmail.com> | 2016-11-26 05:52:24 +0700 |
commit | da34e4e13238b755bb0e6ebf549015797d9b4467 (patch) | |
tree | 48d02666460dadd3ea6512351ee3e0b651e17236 /libswresample | |
parent | 6e1902bab4349a79c45807af18ebf5b50f7b436b (diff) | |
download | ffmpeg-da34e4e13238b755bb0e6ebf549015797d9b4467.tar.gz |
swresample/soxr: fix invalid use of linear_interp
give very bad quality for soxr resampler.
linear_interp is intended for using linear interpolation
between filter bank so quality will be better.
i guess this is misunderstood as 'do not use filter bank,
but directly interpolate linearly between samples'.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
Diffstat (limited to 'libswresample')
-rw-r--r-- | libswresample/soxr_resample.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libswresample/soxr_resample.c b/libswresample/soxr_resample.c index b9c6735028..8181c749b8 100644 --- a/libswresample/soxr_resample.c +++ b/libswresample/soxr_resample.c @@ -46,7 +46,7 @@ static struct ResampleContext *create(struct ResampleContext *c, int out_rate, i soxr_io_spec_t io_spec = soxr_io_spec(type, type); soxr_quality_spec_t q_spec = soxr_quality_spec((int)((precision-2)/4), (SOXR_HI_PREC_CLOCK|SOXR_ROLLOFF_NONE)*!!cheby); - q_spec.precision = linear? 0 : precision; + q_spec.precision = precision; #if !defined SOXR_VERSION /* Deprecated @ March 2013: */ q_spec.bw_pc = cutoff? FFMAX(FFMIN(cutoff,.995),.8)*100 : q_spec.bw_pc; #else |