summaryrefslogtreecommitdiff
path: root/libswresample/soxr_resample.c
diff options
context:
space:
mode:
authorMuhammad Faiz <mfcc64@gmail.com>2016-11-25 16:39:34 +0700
committerMuhammad Faiz <mfcc64@gmail.com>2016-11-26 05:52:24 +0700
commitda34e4e13238b755bb0e6ebf549015797d9b4467 (patch)
tree48d02666460dadd3ea6512351ee3e0b651e17236 /libswresample/soxr_resample.c
parent6e1902bab4349a79c45807af18ebf5b50f7b436b (diff)
downloadffmpeg-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/soxr_resample.c')
-rw-r--r--libswresample/soxr_resample.c2
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