Michael Niedermayer
344f8d307a
swresample/audioconvert: Fix undefined behavior (left shift of negative value)
...
Fixes: asan_heap-oob_4da4f3_8_asan_heap-oob_4da4f3_419_scene1a.mm
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-08 05:35:06 +02:00
Michael Niedermayer
6b347f519d
swresample/swresample: replace always true if() by av_assert0()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 01:29:15 +02:00
Michael Niedermayer
f9fefa499f
swresample/swresample: fix sample drop loop end condition
...
Fixes Ticket3985
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-06 01:29:06 +02:00
Reimar Döffinger
2c5c37ade1
libswresample: move condition to start of loop.
...
This avoids several issue like calculating sum/maxcoef
incorrectly due to adding up matrix entries that will
be overwritten, as well as out-of-range writes to
s->matrix if the maximum allowed number of channels is used.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:34 +02:00
Reimar Döffinger
284123d7fd
Remove pointless if.
...
A branch to avoid some calculation seems unlikely to have any benefits.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Reimar Döffinger
2231d5b671
libswresample: Avoid needlessly large on-stack array.
...
We only actually need to use a tiny part of it.
Unfortunately we seem to have no real test coverage on
the code, so this is a bit risky.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2014-09-07 11:31:33 +02:00
Michael Niedermayer
7c51f5bd39
swr: aarch64 audio_convert and neon clobber test
...
Ported from avresample
Code by: Mans Rullgard, Janne Grunau, Martin Storsjo
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 20:06:37 +02:00
Michael Niedermayer
b7d5e016a3
swresample: Add AVFrame based API
...
Based on commit fb1ddcdc8f
by Luca Barbato <lu_zero@gentoo.org>
Adapted for libswresample by Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-16 20:39:37 +02:00
Michael Niedermayer
f4e814f787
swresample: check av_opt_set for failure in swr_alloc_set_opts()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 01:34:34 +02:00
Luca Barbato
c4ac48c5a1
swresample: document the need to configure the context using AVOptions
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 00:35:56 +02:00
Michael Niedermayer
97f8c7a03e
bump libpostproc and libswresample
...
this is needed / avoids some headaches as one of their dependancies
(libavutil) was bumped
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:17:02 +02:00
Michael Niedermayer
74be0f82a7
swresample-test: make it independant of the internal SWR_CH_MAX
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:15:43 +02:00
Michael Niedermayer
05ff1a2c05
swresample/swresample: Treat mono as planar
...
This might in some cases improve performance.
Idea from: fbc0b86599
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 03:05:05 +02:00
Andreas Cadhalpun
39a6e02fd4
fix spelling errors
...
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 22:33:27 +02:00
Michael Niedermayer
52fafaf474
swresample/libswresample.v: hide ff_*
...
Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-12 18:40:17 +02:00
Timothy Gu
5b58692ed4
swresample: misc. doxy improvements
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-08 01:36:56 +02:00
Timothy Gu
064945b3aa
swresample: organize functions into doxy groups
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 22:07:15 +02:00
Timothy Gu
81f47e272d
swresample: better doxy for configuration-returning functions
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 22:06:51 +02:00
Timothy Gu
2711b4708a
swresample: improve Doxygen introduction
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 21:41:31 +02:00
Timothy Gu
77c5f546e7
swresample: add SwrContext doxy
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:58 +02:00
Timothy Gu
fc71434e84
swresample: add SwrDitherType doxy
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:41 +02:00
Timothy Gu
c0d9b026f9
swresample: group all the option constants in a section in doxy
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:58:34 +02:00
Timothy Gu
0c58388211
swresample: grammar/capitalization fixes
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 20:46:06 +02:00
Timothy Gu
37715b4594
swresample: split option table to a separate file
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-06 03:45:46 +02:00
James Almer
9937362c54
x86/swr: use lavu helper macros to check CPU extensions
...
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 02:12:16 +02:00
James Almer
8279a15284
x86/swr: split audioconvert and rematrix DSP into separate files
...
Also rename resample_x86_dsp.c to resample_init.c
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 02:00:11 +02:00
James Almer
857cd1f33b
swr: initialize only the necessary resample dsp functions
...
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-04 01:37:41 +02:00
James Almer
b5f0eac068
swr: rename swresample_dsp init functions to swri_resample_dsp
...
The swresample_ prefix is not for internal functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 13:18:30 +02:00
James Almer
42a92a240d
swr: remove obsolete resample prototypes
...
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 03:14:45 +02:00
James Almer
23a9edf531
Partially revert "swr: add prototypes for resample dsp functions"
...
Prototypes are not needed anymore now that the x86 functions don't
include resample_template.c
The DO_RESAMPLE_ONE macro is removed for that same reason as well.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 03:14:36 +02:00
James Almer
c45b7f0d80
x86/swr: add ff_resample_{common, linear}_int16_xop
...
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 01:11:20 +02:00
James Almer
1a69224f44
x86/swr: add ff_resample_{common, linear}_float_fma
...
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-02 01:09:53 +02:00
James Almer
dd2c9034b1
x86/swr: convert resample_{common, linear}_double_sse2 to yasm
...
Signed-off-by: James Almer <jamrial@gmail.com>
312531 -> 311528 dezicycles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-01 17:57:36 +02:00
Ronald S. Bultje
847bb638c0
swr: convert resample_common/linear_int16_mmx2/sse2 to yasm.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 20:11:50 +02:00
Michael Niedermayer
418e5768c6
swresample/resample_template: move division out of loop for float/double swri_resample_linear()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-30 04:30:10 +02:00
Michael Niedermayer
c5a405c4f0
swresample/resample_template: flip order of operations in swri_resample_linear() for 32bit
...
Fixes integer overflow
Found-by: BBB
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-29 22:19:57 +02:00
Ronald S. Bultje
faa1471ffc
swr: rewrite resample_common/linear_float_sse/avx in yasm.
...
Linear interpolation goes from 63 (llvm) or 58 (gcc) to 48 (yasm)
cycles/sample on 64bit, or from 66 (llvm/gcc) to 52 (yasm) cycles/
sample on 32bit. Bon-linear goes from 43 (llvm) or 38 (gcc) to
32 (yasm) cycles/sample on 64bit, or from 46 (llvm) or 44 (gcc) to
38 (yasm) cycles/sample on 32bit (all testing on OSX 10.9.2, llvm
5.1 and gcc 4.8/9).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 17:06:47 +02:00
Ronald S. Bultje
ddb7b4435a
swr: move dst_size == 0 handling outside DSP function.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-28 15:30:01 +02:00
Ronald S. Bultje
0dae193d3e
swr: remove another forgotten division in DSP function.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-22 05:20:22 +02:00
Ronald S. Bultje
cbf21628a5
swr: remove div/mod from DSP functions.
...
Also fix a bug with resample_compensation resetting dst_incr.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 14:15:52 +02:00
Michael Niedermayer
0608bc6502
swresample/audioconvert: fix () in FMT_PAIR_FUNC()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:37 +02:00
Ronald S. Bultje
edf930472b
swr: reindent.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-16 01:33:32 +02:00
Ronald S. Bultje
083cd3d1f7
swr: compile mmx2 s16p functions only on x86-32.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 13:34:53 +02:00
James Almer
7f4dfbd080
swr: add prototypes for resample dsp functions
...
Should fix compilation failures with MSVC and any other compiler
without inline asm support.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 01:33:17 +02:00
Ronald S. Bultje
ada8f9c046
swr: remove obsolete function prototypes.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-15 00:07:25 +02:00
Ronald S. Bultje
7128a35f8c
swr: split out DSP functions.
...
DSP bits of swri_resample go into their own mini-DSP functions; DSP
init goes from a per-call branch in multiple_resample to a proper
DSP init routine; x86 bits go into x86/; swri_resample() moves out of
resample_template.c into resample.c because it's independent of DSP
code or sample type; multiple_resample() is simplified.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 20:21:39 +02:00
Michael Niedermayer
4411928c64
swresample/resample: replace assert by av_assert
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 16:33:09 +02:00
Ronald S. Bultje
b785c62681
swr: handle initial negative sample index outside DSP function.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 14:36:18 +02:00
Ronald S. Bultje
6b9685de3a
swr: remove unnecessary assignment.
...
I don't see dst_incr/dst_incr_frac ever being changed from their
initial value (which is the inverse of this operation), so it seems
to me that this is a no-op.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-14 04:30:53 +02:00
Ronald S. Bultje
f341340552
swr: handle 64bit overflow check in multiple_resample().
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-09 15:24:51 +02:00