summaryrefslogtreecommitdiff
path: root/libavresample/audio_mix.c
Commit message (Collapse)AuthorAge
* Replace av_dlog with normal av_log at trace levelVittorio Giovara2015-04-19
| | | | This applies to every library where performance is not critical.
* audio_mix: print (SKIP) instead of 0.0 for matrix columns removed along with ↵Anton Khirnov2014-01-03
| | | | output zeroing
* audio_mix: fix zeroing output channels in certain casesAnton Khirnov2014-01-03
| | | | | | | | | | | 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
* audio_mix: initialize the data pointers to NULLAnton Khirnov2014-01-03
| | | | | | | 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.
* audio_mix: fix channel order in mix_1_to_2_fltp_flt_cAnton Khirnov2013-10-12
| | | | CC:libav-stable@libav.org
* avresample: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
|
* lavr: fix mixing matrix reduction when normalization is disabledJustin Ruggles2013-02-12
| | | | | | | 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.
* lavr: fix matrix reduction for upmixing in certain casesJustin Ruggles2013-02-12
| | | | | Do not skip an output if the corresponding input contributes to other output channels.
* lavr: cosmetics: reindentJustin Ruggles2013-02-12
|
* lavr: make sure that the mix function is reset even if no mixing will be doneJustin Ruggles2013-02-12
| | | | | 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.
* lavr: print out the mix matrix in ff_audio_mix_set_matrix()Justin Ruggles2013-02-12
| | | | This will print the new matrix if it is set after initialization.
* lavr: always reset mix function names and pointers in mix_function_init()Justin Ruggles2013-01-17
| | | | CC: libav-stable@libav.org
* lavr: call mix_function_init() in ff_audio_mix_set_matrix()Justin Ruggles2013-01-17
| | | | | | | | 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
* lavr: log channel conversion description for any-to-any functionsJustin Ruggles2013-01-07
|
* lavr: mix: reduce the mixing matrix when possibleJustin Ruggles2013-01-07
| | | | | | | | | | | | | | | | | 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.
* avresample: use valid log context in mixing functionsHendrik Leppkes2012-12-16
| | | | Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* lavr: move AudioMix struct definition to audio_mix.cJustin Ruggles2012-12-15
|
* lavr: temporarily store custom matrix in AVAudioResampleContextJustin Ruggles2012-12-11
| | | | | | | | | 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.
* Don't include common.h from avutil.hMartin Storsjö2012-08-15
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* libavresample: add mix level normalization optionJohn Stebbins2012-08-14
| | | | | | Provides an option to disable mix level normalization Signed-off-by: Diego Biurrun <diego@biurrun.de>
* lavr: fix handling of custom mix matricesJustin Ruggles2012-08-04
| | | | | Adds some validation for changing parameters after setting the matrix and fixes a bug in the conversion path setup.
* lavr: mix: validate internal sample format in ff_audio_mix_init()Justin Ruggles2012-07-08
|
* Add Dolby/DPLII downmix support to libavresampleJohn Stebbins2012-06-18
| | | | Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
* lavr: add C functions for mixing 2 to 1 channels with s16p formatJustin Ruggles2012-05-29
|
* lavr: use 8.8 instead of 10.6 as the 16-bit fixed-point mixing coeff typeJustin Ruggles2012-05-01
|
* Add libavresampleJustin Ruggles2012-04-24
This is a new library for audio sample format, channel layout, and sample rate conversion.