summaryrefslogtreecommitdiff
path: root/libswresample
Commit message (Collapse)AuthorAge
...
* Merge commit '11a9320de54759340531177c9f2b1e31e6112cc2'Clément Bœsch2017-05-03
| | | | | | | | | * commit '11a9320de54759340531177c9f2b1e31e6112cc2': build: Move build-system-related helper files to a separate subdirectory "ffbuild" directory name is used instead of "avbuild". Merged-by: Clément Bœsch <u@pkh.me>
* Bump versions for master after 3.3Michael Niedermayer2017-04-02
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Bump minor for 3.3Michael Niedermayer2017-04-02
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Bump minor versions for master after release/3.3 branchpointMichael Niedermayer2017-03-31
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Bump minor versions for staring release/3.3 branchMichael Niedermayer2017-03-31
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/resample: free existing ResampleContext on reinitJames Almer2017-03-21
| | | | | | | | Fixes memleak. Reviewed-by: wm4 <nfxjfg@googlemail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* swresample/resample: move resample_free() higher in the fileJames Almer2017-03-21
| | | | | | Also make it more readable while at it. Signed-off-by: James Almer <jamrial@gmail.com>
* swresample/x86/resample: extend resample_double to support avx and fma3Muhammad Faiz2017-03-19
| | | | | | | | | benchmark: sse2 10.670s avx 8.763s fma3 8.380s Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/swresample: do not use s32p internally by default when resamplingMuhammad Faiz2017-03-18
| | | | | | | | | | | | use fltp when doing s32 -> s32 resampling because s32p has no simd optimization benchmark: old 17.913s new 7.584s (use fma3) Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: do not assert compensation_distance on rebuild_filterMuhammad Faiz2017-03-17
| | | | | | | | | | | | when set_compensation is called with zero sample_delta, compensation does not happen (because dst_incr == ideal_dst_incr) but compensation_distance is set regression since 01ebb57c03abde89bca7bdbc552917efcb8f551d Found-by: wm4 <nfxjfg@googlemail.com> Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/options: enable linear_interp and exact_rational by defaultMuhammad Faiz2017-03-17
| | | | | | better quality without speedloss Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/swresample: do not reset tsf on swr_alloc_set_optsMuhammad Faiz2017-03-13
| | | | | | | | | | | | so tsf option in aresample will have effect previously tsf/internal_sample_format had no effect fate is updated s32p previously used fltp internally dblp previously used fltp/dblp internally Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: do not allow odd filter_lengthMuhammad Faiz2017-03-09
| | | | | | | | | | | | except filter_length == 1 odd filter_length gives worse frequency response, even when compared with shorter filter_length also makes build_filter simpler Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: use uniform normalizationMuhammad Faiz2017-03-08
| | | | | | | | | this gives better frequency response update swresample fate and other fates that depend on resampling Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* lswr/rematrix: Remove an aggressive loop optimization.Carl Eugen Hoyos2017-02-25
| | | | | Fixes undefined behaviour and a gcc warning: libswresample/rematrix.c:376:47: warning: iteration 64 invokes undefined behavior
* swr/aarch64: add missing ret to ff_resample_common_apply_filter_x8_float_neonMatthieu Bouron2017-02-16
|
* swresample/arm: cosmetic fixesMatthieu Bouron2017-01-13
|
* swresample/aarch64: add ff_resample_common_apply_filter_{x4,x8}_{float,s16}_neonMatthieu Bouron2017-01-13
|
* swresample/resample: remove swri_resample functionMuhammad Faiz2016-12-14
| | | | | | | | | integrate it inside multiple_resample allow some calculations to be performed outside loop Suggested-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: do not allow negative dst_size return valueMuhammad Faiz2016-12-14
| | | | | | | This should fix Ticket6012 Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample_template: Add filter values in parallelMichael Niedermayer2016-12-10
| | | | | | | | | This is faster 2871 -> 2189 cycles for int16 matrixbench -> 23456hz Fixes a integer overflow in a artificial corner case Fixes part of 668007-media Found-by: Matt Wolenetz <wolenetz@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/resample_template: Reorder operations to avoid one additionMichael Niedermayer2016-12-10
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/swresample: Check count before memcpy()Michael Niedermayer2016-12-10
| | | | | | | | Fixes undefined operation Fixes part of 668007-media Found-by: Matt Wolenetz <wolenetz@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/resample: do not rebuild filter when sample_delta is zeroMuhammad Faiz2016-12-04
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/soxr: fix invalid use of linear_interpMuhammad Faiz2016-11-26
| | | | | | | | | | | | 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>
* swresample/resample: optimize exact_rational=on:linear_interp=on caseMuhammad Faiz2016-11-25
| | | | | | | | | | | | | | | | | | | 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>
* Bump minor versions after 3.2 branchpoint to seperate releaseMichael Niedermayer2016-10-26
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* Bump minor versions for 3.2Michael Niedermayer2016-10-26
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/rematrix: Fix float part of swr_set_matrix()Vodyannikov Aleksandr2016-10-26
| | | | | | Fixes Ticket #5897. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/resample: fix return value of build_filterMuhammad Faiz2016-10-18
| | | | | | return AVERROR code on error Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swr: Update version & APIChanges for swr_build_matrix()Michael Niedermayer2016-09-27
| | | | | Found-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample: Add swr_build_matrix()Michael Niedermayer2016-09-27
| | | | | | | API and Doxy documentation is taken from avresample_build_matrix() Fixes: Ticket5780 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample: Use double and float for matrixes for best quality and speedMichael Niedermayer2016-09-27
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample: add int64 sample formatPaul B Mahol2016-08-18
|
* swresample: Skip over dither steps if dithering scale is 0Michael Niedermayer2016-08-18
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample: move dither init upMichael Niedermayer2016-08-18
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* doxygen: Standardize root-level modulesTimothy Gu2016-08-02
|
* Merge commit '535a742c2695a9e0c586b50d7fa76e318232ff24'Matthieu Bouron2016-06-27
| | | | | | | * commit '535a742c2695a9e0c586b50d7fa76e318232ff24': build: Change structure of the linker version script templates Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
* swr: fix time.h includeClément Bœsch2016-06-22
|
* Merge commit 'a6a750c7ef240b72ce01e9653343a0ddf247d196'Clément Bœsch2016-06-22
| | | | | | | * commit 'a6a750c7ef240b72ce01e9653343a0ddf247d196': tests: Move all test programs to a subdirectory Merged-by: Clément Bœsch <clement@stupeflix.com>
* swresample/x86: add support for exact_rationalMuhammad Faiz2016-06-21
| | | | | | | phase_shift and phase_mask is removed generally exact_rational=on is faster than exact_rational=off Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: do not increase phase_count on exact_rationalMuhammad Faiz2016-06-17
| | | | | | | | | | | | | | high phase_count is only useful when dst_incr_mod is non zero in other word, it is only useful on soft compensation on init, it will build filter with low phase_count but when soft compensation is enabled, rebuild filter with high phase_count this approach saves lots of memory Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample/resample: add support for odd phase_countMuhammad Faiz2016-06-17
| | | | | | | | because exact_rational does not guarantee that phase_count is even Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* swresample: add exact_rational optionMuhammad Faiz2016-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* swresample/resample: Fix division by 0 with tap_count=1Michael Niedermayer2016-05-16
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/rematrix: Use clipping s16 rematrixing if overflows are possibleMichael Niedermayer2016-05-15
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/rematrix: Use error diffusion to avoid error in the DC component ↵Michael Niedermayer2016-05-15
| | | | | | | | | | | of the matrix This fixes the sum of the integer coefficients ending up summing to a value larger than the value representing unity. This issue occurs with qN0.dts when converting to stereo Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swresample/arm: add ff_resample_common_apply_filter_{x4,x8}_{float,s16}_neonMatthieu Bouron2016-05-13
|
* swresample/swresample: Remove "less than" comparissions of enumsMichael Niedermayer2016-03-22
| | | | | Found-by: wm4 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* x86: use the new helper macros where usefulJames Almer2016-02-14
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>