Merge commit 'fc6a3ef40d34ce8443ae57c2452f3f273d7d4891'

* commit 'fc6a3ef40d34ce8443ae57c2452f3f273d7d4891':
  audio_mix: fix zeroing output channels in certain cases

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-01-04 02:16:30 +01:00
commit 4b8bc6d2b0
1 changed files with 5 additions and 2 deletions

View File

@ -559,9 +559,12 @@ static void reduce_matrix(AudioMix *am, const double *matrix, int stride)
if (zero) {
am->output_zero[o] = 1;
am->out_matrix_channels--;
if (o < am->in_channels)
am->in_matrix_channels--;
}
}
if (am->out_matrix_channels == 0) {
if (am->out_matrix_channels == 0 || am->in_matrix_channels == 0) {
am->out_matrix_channels = 0;
am->in_matrix_channels = 0;
return;
}
@ -683,7 +686,7 @@ int ff_audio_mix_set_matrix(AudioMix *am, const double *matrix, int stride)
am->in_matrix_channels; \
for (i = 0, i0 = 0; i < am->in_channels; i++) { \
double v; \
if (am->input_skip[i]) \
if (am->input_skip[i] || am->output_zero[i]) \
continue; \
v = matrix[o * stride + i]; \
am->matrix_## type[o0][i0] = expr; \