8b710ea5e7
swresample: Use channel count in rematrix initialization
...
Rematrixing supports up to 64 channels. However, there is only a limited number of channel layouts defined. Since the in/out channel count is currently obtained from the channel layout, for undefined layouts (e.g. for 9, 10, 11 channels etc.) the rematrixing fails.
This patch changes rematrix init methods to use in (used) and out channel count directly instead of computing it from channel layout.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-07-26 02:42:42 +02:00
6325bd3717
swresample/rematrix: fix update of channel matrix if input or output layout is undefined
...
Prefer direct in/out channel count values over channel layout, when
available. Fixes a pan filter bug (ticket #6790 ).
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com >
2018-02-19 08:32:25 +01:00
ff994c2aaa
lswr/rematrix: Support s32p.
...
Fixes ticket #6785 .
2017-11-01 01:04:43 +01:00
fd502f4f5f
build: Generalize yasm/nasm-related variable names
...
None of them are specific to the YASM assembler.
(Cherry-picked from libav commit 39e208f4d4
)
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-21 17:00:29 -03:00
353f509ee3
lswr/rematrix: Remove an aggressive loop optimization.
...
Fixes undefined behaviour and a gcc warning:
libswresample/rematrix.c:376:47: warning: iteration 64 invokes undefined behavior
2017-02-25 18:53:34 +01:00
9445e7e6d5
swresample/rematrix: Fix float part of swr_set_matrix()
...
Fixes Ticket #5897 .
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-10-26 19:27:22 +02:00
23c0779cda
swresample: Add swr_build_matrix()
...
API and Doxy documentation is taken from avresample_build_matrix()
Fixes: Ticket5780
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-09-27 12:54:00 +02:00
740f5105d5
swresample: Use double and float for matrixes for best quality and speed
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-09-27 12:53:25 +02:00
2f76157eb0
swresample/rematrix: Use clipping s16 rematrixing if overflows are possible
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-05-15 22:25:34 +02:00
7fe81bc4f8
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 >
2016-05-15 18:36:53 +02:00
cdf4a13f86
swresample: slightly nicer debug output for auto matrix
...
This is the matrix that will be used for up/downmixing.
2015-10-15 20:16:13 +02:00
52acd22a7d
libswresample/rematrix: Check for malloc errors
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-04 02:36:30 +02:00
80a28c7509
swresample: Allow reinitialization without ever setting channel layouts
2015-04-12 22:21:34 +02:00
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
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
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
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
291d464161
swresample: fix AV_CH_LAYOUT_STEREO_DOWNMIX input
...
Fixes Ticket 3542
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-04-24 01:25:46 +02:00
4a640a6ac8
lswr: fix assert failure on unknown layouts.
2013-11-03 10:30:37 +01:00
c56d4dab03
swr/rematrix: Fix handling of AV_CH_LAYOUT_STEREO_DOWNMIX output
...
Fixes Ticket2859
Note, testcases related to the downmix channels are welcome.
(id like to make sure this is working correctly now, as obviously it didnt
work before ...)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-08-20 16:56:51 +02:00
6dfffe9200
swr: clean layouts before checking sanity
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-08-20 16:49:31 +02:00
7ac12599fe
swresample: fix negative rematrix volumns
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-07-22 03:24:22 +02:00
e2b718464e
swresample: Make rematrix maxvalue user settable
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-07-22 03:23:54 +02:00
4cfc92081d
swr: add native_simd_one
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-06-04 23:50:45 +02:00
b84de51f54
swresample/rematrix: add S32 mixing code
...
Needed for dithering S32
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-06-04 15:12:11 +02:00
6e29f39252
swr/rematrix: use av_calloc()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-04-15 20:31:06 +02:00
5e68bf9b92
swr/rematrix: move templating parameters to template itself.
2012-11-15 21:24:49 +01:00
1acd2f6ba7
Replace rest of libavutil/audioconvert.h with libavutil/channel_layout.h
...
Also remove it in once case when it is not needed.
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2012-11-13 13:21:21 +00:00
555f352f99
swr/rematrix: fix C99 left shift overflow
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-10-14 03:48:05 +02:00
31a797eb28
swr: add av_cold to init/free functions
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-09 02:26:20 +02:00
0e78e575ed
swr/auto_matrix: treat a single channel as mono instead of failing
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-08 21:32:24 +02:00
f8d74cbdc3
swr/auto_matrix: treat stereo downmix like stereo.
...
Based on code by John Stebbins
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-08 21:12:40 +02:00
c8ffab06f4
swr/auto_matrix: add clean layout function
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-08 21:10:19 +02:00
ebc854e4e9
swr/auto_matrix: move layouts to local variables
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-08 20:58:57 +02:00
c5278cb84f
Add Dolby/DPLII downmix support to libswresample
...
Based on code by John Stebbins <jstebbins.hb@gmail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-07 00:41:49 +02:00
2dd2e42951
swr: update rematrix coeffs to match AC-3
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-09-07 00:29:06 +02:00
7309451d73
swr: fix warning: passing argument 2 of s->mix_any_f from incompatible pointer type
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-07-02 17:33:27 +02:00
04b5eb47a6
swr: fix mix* related function pointer warnings
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-07-02 17:23:22 +02:00
065851ffac
lswr/rematrix: specify explicitly the name of the unsupported channel layouts
...
Help debugging.
2012-06-21 12:47:47 +02:00
728f86edfc
swr: mix_2_1_int16_mmx/sse
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-12 17:49:12 +02:00
cbeeaf2593
swr: mix_1_1 int16 MMX
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-12 16:35:13 +02:00
beb0cd6acf
swr: SIMD rematrixing and SSE/AVX mix_1_1 float
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-12 16:35:07 +02:00
48a45f819f
swr: add native matrix for SIMD
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-12 16:16:15 +02:00
a5c6349358
swr: skip memset(0) in rematrix when the array is known to be already 0
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-09 02:43:10 +02:00
b0348158a0
swr: 5.1->stereo double, float and s16
...
2.5 times faster than the generic code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-08 22:02:14 +02:00
ca30ae12c5
swr: add all in one rematrixing function ptr
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-08 21:55:33 +02:00
dfde3d497e
swr: add inrermediate sample type for rematrixing
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-06-08 21:54:54 +02:00
f2e799a3d0
swr: add double precision support to the rematrix code
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-02 01:12:16 +02:00
6d5bf67f04
swr: add lfe_mix_level
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-02 01:12:10 +02:00
9b42653b22
swr: update side to back mixing.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2012-05-02 01:11:55 +02:00