Commit Graph

520 Commits

Author SHA1 Message Date
Michael Niedermayer 83ffda78dd swresample/swresample: Fix input channel count in resample_first computation
Found-by: Marcin Gorzel <gorzel@google.com>
Reviewed-by: Marcin Gorzel <gorzel@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit bce4da85e8)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-03 02:14:31 +02:00
Rahul Chaudhry 9ffbda72c7 swresample/arm: rename labels to fix xcode build error
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit e84212b78e)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-13 18:36:55 +02:00
Rahul Chaudhry e5b29c60f0 swresample/arm: remove unintentional relocation.
Branch to global symbol results in reference to PLT, and when compiling
for THUMB-2 - in a R_ARM_THM_JUMP19 relocation. Some linkers don't
support this relocation (ld.gold), while others can end up truncating
the relocation to fit (ld.bfd).

Convert this branch through PLT into a direct branch that the assembler
can resolve locally.

See https://github.com/android-ndk/ndk/issues/337 for background.

The current workaround is to disable neon during gstreamer build,
which is not optimal and can be reverted after this patch:
https://github.com/freedesktop/gstreamer-cerbero/commit/41556c415739fbc3a72c7eaee7e70a565b719b2f

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit b22db4f465)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-10 01:52:55 +02:00
Hendrik Schreiber fe4e35e202 swresample/swresample: Fix for seg fault in swr_convert_internal() -> sum2_float during dithering.
Removed +len1 in call to s->mix_2_1_f() as I found no logical explanation for it. After removal, problem was gone.

Signed-off-by: Hendrik Schreiber <hs@tagtraum.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 647fd4b829)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-07-10 01:18:52 +02:00
James Almer 31e65eb84d swresample/resample: free existing ResampleContext on reinit
Fixes memleak.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit db7a05dab0)
2017-03-21 12:19:20 -03:00
James Almer f7f5a52459 swresample/resample: move resample_free() higher in the file
Also make it more readable while at it.

Signed-off-by: James Almer <jamrial@gmail.com>
(cherry picked from commit 2a8a8a2e98)

Conflicts:
	libswresample/resample.c
2017-03-21 12:19:03 -03:00
Michael Niedermayer 67c7f8ca14 swresample/rematrix: Use clipping s16 rematrixing if overflows are possible
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 2f76157eb0)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-15 18:54:34 +02:00
Michael Niedermayer 500cf2e159 swresample/rematrix: Use error diffusion to avoid error in the DC component 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>
(cherry picked from commit 7fe81bc4f8)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-08-15 18:54:34 +02:00
Michael Niedermayer 3de8521667 swresample/resample: increase precision for compensation
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 351e625d60)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-11-11 18:41:01 +01:00
Michael Niedermayer 32f53958b8 swresample/swresample: Fix integer overflow in seed calculation
Fixes CID1322333

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-03 09:32:43 +02:00
Michael Niedermayer fb42e77516 swresample/swresample-test: Make layouts static const
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-30 13:10:11 +02:00
Ganesh Ajjanagadde 24e6729a04 swresample/dither: use integer arithmetic
This fixes a -Wabsolute-value reported by clang 3.5+ complaining about misuse of fabs() for integer absolute value.
An additional benefit is the removal of floating point calculations.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-08-23 23:19:31 +02:00
James Almer 5750d6c5e9 x86: move XOP emulation code back to x86inc
Only two functions that use xop multiply-accumulate instructions where the
first operand is the same as the fourth actually took advantage of the macros.

This further reduces differences with x264's x86inc.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-08-03 17:11:13 -03:00
James Almer f37a5dcb55 swresample/x86: add missing colon to labels
Silences warnings with Nasm

Signed-off-by: James Almer <jamrial@gmail.com>
2015-07-26 02:51:13 -03:00
Carl Eugen Hoyos a77401e1f7 lswr: Allow 64 channels internally. 2015-07-17 00:17:08 +02:00
Michael Niedermayer d4325b2fea swr: Remember previously set int_sample_format from user
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 18:34:39 +02:00
Michael Niedermayer 0dd2790df5 swresample/swresample: Clear delayed_samples_fixup in clear_context()
This probably makes no difference but its more proper

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-22 18:34:39 +02:00
Rob Sykes c70c6be225 swresample: soxr implementation for swr_get_out_samples()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 23:38:44 +02:00
Michael Niedermayer 5de3a589f1 swresample/swresample: Print used int_sample_fmt
Suggested-by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 18:12:56 +02:00
Michael Niedermayer 4977692461 swresample: Choose 16bit internally only if input and output is 16bit or less
or if no rematrix and no resampling is performed and the input is 16bit
note reampling and rematrix itself always use more than 16bit internally
the "internal" sampling format is the format between these steps

Its unlikely the difference from this commit is audible in any case
unless there is some bug either before or after the change.
but multiple people prefer this and it slightly improves the precission
of computations.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-21 17:33:46 +02:00
Michael Niedermayer 56f0fe6b84 swr: Fix ASSERT_LEVEL warning
Found-by: cehoyos
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-08 20:16:06 +02:00
Clément Bœsch c5a08956a3 swresample: fix initilaize/initialize typo 2015-06-06 12:16:18 +02:00
Michael Niedermayer b14361486b swresample/resample: fix typos
Found-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 13:04:09 +02:00
Michael Niedermayer c3f87f7545 swresample/swresample: Cleanup on init failure.
This avoids leaks if the user doest call swr_close() after a failed init

Found-by: James Almer <jamrial@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 12:35:04 +02:00
Michael Niedermayer cc17b43d8d swresample: Add swr_get_out_samples()
Previous version reviewed-by: Pavel Koshevoy <pkoshevoy@gmail.com>
Previous version reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 05:37:32 +02:00
Michael Niedermayer 52acd22a7d libswresample/rematrix: Check for malloc errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-04 02:36:30 +02:00
Ganesh Ajjanagadde 196b885a5f swresample/dither: check memory allocation
check memory allocation in swri_get_dither()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 11:46:37 +02:00
Michael Niedermayer 02915602d9 swresample: Check the return value of resampler->init()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-03 01:05:19 +02:00
James Almer c16e99e3b3 x86: check for AV_CPU_FLAG_AVXSLOW where useful
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-01 00:15:35 +02:00
Rainer Hochecker adb7372f74 swr: fix alignment issue caused by 8ch sse functions
Fix crash when doing 8 ch conversion from apps compiled with MSVS
Thanks to Ronald for giving this hint:
https://ffmpeg.org/pipermail/ffmpeg-devel/2015-May/173049.html

Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-13 22:44:06 +02:00
Michael Niedermayer 223a859853 swresample/dither_template: Do not define macro functions to nothing
This avoids potential warnings

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-07 01:07:30 +02:00
Michael Niedermayer ff50b1b13b swresample/swresample-test: Randomly wipe out channel counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:53 +02:00
Michael Niedermayer 3c77bb5f23 swresample: Check channel layouts and channels against each other and print human readable error messages
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:34 +02:00
Michael Niedermayer 80a28c7509 swresample: Allow reinitialization without ever setting channel layouts 2015-04-12 22:21:34 +02:00
Michael Niedermayer d7b9cb2f7a swresample: Allow reinitialization without ever setting channel counts
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-12 22:21:34 +02:00
James Almer 43482bd1a5 swr/resample: use av_clip functions
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-05 22:46:40 +02:00
Michael Niedermayer 1a10134e20 swresample/swresample: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-30 23:24:33 +02:00
Michael Niedermayer e16592c42e swresample/resample: Fix undefined shifts
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 01:15:37 +01:00
Michael Niedermayer 4d00860ac7 swresample: Add prefix to soxr_resampler
also move declaration to header

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-27 19:20:43 +01:00
Michael Niedermayer c0e3b46118 swresample: add av_cold to init functions
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-21 00:33:09 +01:00
Michael Niedermayer 0cb95f9082 swresample/resample_template: Add () to protect the arguments of the OUT() macro
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-17 00:36:35 +01:00
Michael Niedermayer 37013fd018 swresample/swresample-test: Add () to protect uint_rand() argument
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-16 23:09:09 +01:00
James Almer f7ed997a6d x86/swr: make pack_8ch functions work with compilers without aligned stack
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-15 13:57:37 -03:00
Michael Niedermayer b74ecb82fa swresample/x86/rematrix_init: Check av_malloc* return codes, forward errors
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-09 10:15:56 +01:00
Michael Niedermayer 48ffaaaaef swresample/x86/rematrix_init: Use av_mallocz_array()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-09 10:15:56 +01:00
Michael Niedermayer 9d7ae72725 swresample: Use int instead of enum for fields which are accessed through AVOptions as int
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-02 23:27:26 +01:00
Michael Niedermayer c77cc2c176 swresample/dither: Cleanup number suffixes
The <<31 case needs LL

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-01 20:00:10 +01:00
Reimar Döffinger 6efd0ba977 swresample_internal.h: Move struct declaration before first use.
It seems more logical and works with more restricted C compilers
like tinycc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
2015-01-27 21:29:51 +01:00
James Almer 59ac93f6af x86/swr: add SSE/AVX unpack_6ch functions
int32/float only

Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-01-12 15:40:03 -03:00
James Almer 6abf00d615 x86/swr: load constants outside the loop in pack_6ch functions
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-01-11 01:11:46 -03:00