Luca Barbato
b2d4565422
avresample: Add avresample_get_out_samples
...
Utility function to get the upper bound on the number of samples the
resampler would output.
2014-05-28 22:04:56 +02:00
Janne Grunau
449511740f
build: handle library dependencies in configure
...
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
2014-05-13 20:02:01 +02:00
Janne Grunau
a24a252709
aarch64: NEON optimized FIR audio resampling
...
Optimized for the default filter length 16.
30% faster opus silk decoding.
2014-04-24 18:28:26 +02:00
Janne Grunau
cae8df7875
lavr: define ResampleContext in resample.h
...
Required for arch optimized resampling.
2014-04-24 18:28:26 +02:00
Janne Grunau
f4d5a2cc35
aarch64: NEON float to s16 audio conversion
2014-04-22 19:35:41 +02:00
Anton Khirnov
21d8f4da91
resample: remove an unneeded context variable
2014-04-17 20:08:19 +02:00
Anton Khirnov
ac976ed91e
lavr: allocate the resampling buffer with a positive size
...
This fixes cases where very few input samples (fewer than needed for one
output sample) are passed to lavr at the beginning.
CC:libav-stable@libav.org
2014-04-13 11:21:20 +02:00
Anton Khirnov
f7c5fd8151
resample: implement flushing
2014-04-13 11:15:45 +02:00
Anton Khirnov
254c95cdd1
resample: split linear into its own function
2014-04-11 16:34:02 +02:00
Anton Khirnov
be394968c8
resample: add initial padding explicitly
...
This simplifies the code, since we do not have to deal with a possibly
negative source index anymore.
2014-04-11 16:33:46 +02:00
Anton Khirnov
eed752d61d
resample: drop useless abs()
...
negative sample_index is handled in the block above.
2014-04-11 16:28:11 +02:00
Anton Khirnov
3c84f6b5d2
resample: reindent
2014-04-11 16:27:22 +02:00
Anton Khirnov
f20892eb67
resample: split the nearest neighbour path into a separate function pointer
2014-04-11 16:26:36 +02:00
Anton Khirnov
b9dea23766
resample: fix avresample_get_delay() return value
...
The correct "next" input sample is not the first sample of the
resampling buffer, but the center sample of the filter_length-sized
block at the beginning.
CC:libav-stable@libav.org
2014-04-11 16:21:25 +02:00
Diego Biurrun
01c5779f56
x86: Drop some unnecessary YASM ifdefs
...
Dead code elimination is enough to avoid undefined references in these cases.
2014-04-04 19:08:05 +02:00
Diego Biurrun
aba70bb538
Add missing headers to make template files compile (more) standalone
2014-03-26 04:31:27 -07:00
Anton Khirnov
1db03a6864
lavr: return an error if a avresample_open() is called on an open context
2014-02-22 20:53:09 +01:00
Anton Khirnov
7e86c27b4e
lavr: add a function for checking whether AVAudioResampleContext is open
2014-02-22 20:52:36 +01:00
Tim Walker
76a75c523c
lavr: mix front center channel as indicated in the ATSC A/52 specification.
...
When mixing 3 front channels into 2, the center channel is mixed into left and right with the center mix level, not -3dB.
2014-02-08 13:42:55 +01:00
Martin Storsjö
5bcbb516f2
arm: Add X() around all references to extern symbols
...
Don't rely on the fact that an unprefixed label currently exists.
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07 15:13:58 +02:00
Janne Grunau
fe96769bed
aarch64: port neon clobber test from arm
2014-01-15 12:31:07 +01:00
Martin Storsjö
99e2012523
x86/arm: Add clobber tests to libavresample
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-13 14:13:27 +02:00
Anton Khirnov
cc976a75df
audio_mix: print (SKIP) instead of 0.0 for matrix columns removed along with output zeroing
2014-01-03 16:43:25 +01:00
Anton Khirnov
fc6a3ef40d
audio_mix: fix zeroing output channels in certain cases
...
Specifically, when the corresponding input channel exists and its matrix
column is all-zero (which is necessary for zeroing the output), the
matrix column must be removed from the matrix.
This is not done currently, so the mixing code would end up using
uninitialized pointers from stack.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-01-03 16:42:46 +01:00
Anton Khirnov
3d95d27376
audio_mix: initialize the data pointers to NULL
...
This should make it easier to catch problems where some of those
pointers are used uninitialized, since reading from NULL should always
crash, while random numbers from stack can turn out to be valid
pointers, so random memory may be silently overwritten.
2014-01-03 16:42:23 +01:00
Diego Biurrun
b83d1ee3b4
avutil: Move library version related macros to version.h
...
This is a more sensible place for these macros.
2013-12-26 19:05:22 +01:00
Diego Biurrun
8f8bc92365
Add missing #includes for *INT64_MAX and *INT64_C
2013-11-23 21:55:52 +01:00
Justin Ruggles
211ca69b13
lavr: check that current_buffer is not NULL before using it
...
Fixes a segfault during resampling when compiled with -DDEBUG.
Fixes all fate-lavr-resample tests with -DDEBUG.
CC:libav-stable@libav.org
2013-10-27 15:07:10 -04:00
Derek Buitenhuis
206895708e
x86inc: Remove our FMA4 support
...
This is so we can sync to x264's version of FMA4 support.
This partialy reverts commit 79687079a9
.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-14 12:39:29 +01:00
Derek Buitenhuis
15748773bf
avresample/x86: Switch operand order for mulps
...
With the forthcoming VEX instruction emulation, mulps
must have only the third operand point to memory, as
this is what vmulps expects.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-14 12:36:11 +01:00
Anton Khirnov
df6737a55f
audio_mix: fix channel order in mix_1_to_2_fltp_flt_c
...
CC:libav-stable@libav.org
2013-10-12 15:06:55 +02:00
Diego Biurrun
b5a138652f
Give less generic names to global library option arrays
2013-08-02 19:19:02 +02:00
Diego Biurrun
03039f4c8c
miscellaneous typo fixes
2013-07-25 19:43:32 +02:00
Diego Biurrun
3ac7fa81b2
Consistently use "cpu_flags" as variable/parameter name for CPU flags
2013-07-18 00:31:35 +02:00
Anton Khirnov
006ec64877
lavr doxy: add version.h to the lavr group
2013-05-17 20:27:48 +02:00
Diego Biurrun
e445647b4f
avresample: Add av_cold attributes to init functions missing them
2013-05-04 21:10:05 +02:00
Diego Biurrun
b6649ab503
cosmetics: Remove unnecessary extern keywords from function declarations
2013-03-27 14:21:45 +01:00
Justin Ruggles
b2eea615c0
lavr: allow setting internal_sample_fmt option by string
2013-02-23 17:07:54 -05:00
Justin Ruggles
50f4337a2f
lavr: Add "resample_cutoff" option as a duplicate of "cutoff"
...
Avoids an option name conflict with libavcodec, which is needed in order
to work properly with avconv.
2013-02-23 17:07:54 -05:00
Justin Ruggles
157542ebc1
lavr: fix mixing matrix reduction when normalization is disabled
...
In some cases when an input contributes fully to the corresponding
output, other inputs may also contribute to the same output. This is the
case, for example, for the default 5.1 to stereo downmix matrix without
normalization.
2013-02-12 13:41:13 -05:00
Justin Ruggles
600b4c973f
lavr: fix matrix reduction for upmixing in certain cases
...
Do not skip an output if the corresponding input contributes to other output
channels.
2013-02-12 13:41:13 -05:00
Justin Ruggles
a3735bb92a
lavr: cosmetics: reindent
2013-02-12 13:41:13 -05:00
Justin Ruggles
1647da89dd
lavr: make sure that the mix function is reset even if no mixing will be done
...
If the matrix reduction ends up with no mixing matrix needed, we need to still
reset the mix function accordingly and log the info to the user.
2013-02-12 13:41:09 -05:00
Justin Ruggles
646831e697
lavr: print out the mix matrix in ff_audio_mix_set_matrix()
...
This will print the new matrix if it is set after initialization.
2013-02-12 13:35:04 -05:00
Justin Ruggles
b90632d596
lavr: always reset mix function names and pointers in mix_function_init()
...
CC: libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Justin Ruggles
f07ef2d9c9
lavr: call mix_function_init() in ff_audio_mix_set_matrix()
...
This is needed if a custom matrix is set by the user after opening the
AVAudioResampleContext because the matrix channel count can change if
different mixing coefficients are used.
CC:libav-stable@libav.org
2013-01-17 19:27:01 -05:00
Justin Ruggles
a6a3164b13
x86: lavr: add SSE2/AVX dither_int_to_float()
2013-01-08 14:52:43 -05:00
Justin Ruggles
1fb8f6a44f
x86: lavr: add SSE2 quantize() for dithering
2013-01-08 14:52:43 -05:00
Justin Ruggles
7ff3fd7ae4
lavr: log channel conversion description for any-to-any functions
2013-01-07 21:49:07 -05:00
Justin Ruggles
4164b0e8d3
lavr: mix: reduce the mixing matrix when possible
...
If the matrix results in an output channel not getting a contribution
from any input channel and the corresponding input channel does not
contribute to any outputs, we can skip the channel during mixing and
silence it after mixing.
If the matrix results in an input channel not contributing to any output
channels and it is not in the output mix, or if the input channel only
contributes fully to the same output channel, we can skip the channel
during mixing.
If the matrix results in an output channel only getting full
contribution from the corresponding input channel and that input channel
does not contribute to any other output channels, we can skip the
channel during mixing.
2013-01-07 21:49:06 -05:00