Age | Commit message (Collapse) | Author |
|
|
|
Avoids an option name conflict with libavcodec, which is needed in order
to work properly with avconv.
|
|
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.
|
|
Do not skip an output if the corresponding input contributes to other output
channels.
|
|
|
|
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.
|
|
This will print the new matrix if it is set after initialization.
|
|
CC: libav-stable@libav.org
|
|
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
|
|
|
|
|
|
|
|
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.
|
|
|
|
This allows reordering, duplication, and silencing of input channels.
|
|
Simplifies header dependencies by not including all other internal headers
in internal.h.
|
|
CC:libav-stable@libav.org
|
|
Signed-off-by: Peter Meerwald <p.meerwald@bct-electronic.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
|
|
|
|
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
|
|
It adds unnecessary complication for insignificant usability improvement.
The user really should know if they'll need resampling compensation before
opening the context.
Note that only the documentation has changed. The current functionality will
still work until the next major bump.
|
|
|
|
|
|
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
This allows AudioMix to be treated the same way as other conversion contexts
and removes the requirement to allocate it at the same time as the
AVAudioResampleContext.
The current matrix get/set functions are split between the public interface
and AudioMix private functions.
|
|
|
|
Since the resampler handles buffering of unconsumed samples internally, the
caller does not need this information.
|
|
|
|
It will always be the number of samples in the input buffer, so just use that
directly instead of passing it as a separate parameter.
|
|
Fixes crashes on Win32 and stack overruns on x86-32 in general.
|
|
If there are any samples remaining in the output fifo from previous conversion
calls, we have to output those samples first instead of doing direct output
of the current samples.
|
|
An assembler able to cope with AVX instructions is now required.
|
|
Also reorder some other #include when applicable.
|
|
|
|
YASM accepts labels without colons, but NASM issues warnings.
|
|
This is more consistent with the way we handle C #includes and
it simplifies the build system.
|
|
This is necessary to allow refactoring some x86util macros with cpuflags.
|
|
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|
We cannot clip to INT_MAX because that value cannot be exactly
represented by a float value and ends up overflowing during conversion
anyway. We need to use a slightly smaller float value, which ends up
with slightly inaccurate results for samples which clip or nearly clip,
but it is close enough. Using doubles as intermediates in the conversion
would be more accurate, but it takes about twice as much time.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
|
|
This is more consistent with what the rest of Libav does.
This breaks API.
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Mans Rullgard <mans@mansr.com>
|
|
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
|
|
This separates code relying on inline from that relying on external
assembly and fixes instances where the coalesced check was incorrect.
|
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|