summaryrefslogtreecommitdiff
path: root/libavresample/audio_mix_matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavresample/audio_mix_matrix.c')
-rw-r--r--libavresample/audio_mix_matrix.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavresample/audio_mix_matrix.c b/libavresample/audio_mix_matrix.c
index 8da1b487a4..487869b5fd 100644
--- a/libavresample/audio_mix_matrix.c
+++ b/libavresample/audio_mix_matrix.c
@@ -126,8 +126,13 @@ int avresample_build_matrix(uint64_t in_layout, uint64_t out_layout,
/* mix front center to front left/right */
if (unaccounted & AV_CH_FRONT_CENTER) {
if ((out_layout & AV_CH_LAYOUT_STEREO) == AV_CH_LAYOUT_STEREO) {
- matrix[FRONT_LEFT ][FRONT_CENTER] += M_SQRT1_2;
- matrix[FRONT_RIGHT][FRONT_CENTER] += M_SQRT1_2;
+ if ((in_layout & AV_CH_LAYOUT_STEREO) == AV_CH_LAYOUT_STEREO) {
+ matrix[FRONT_LEFT ][FRONT_CENTER] += center_mix_level;
+ matrix[FRONT_RIGHT][FRONT_CENTER] += center_mix_level;
+ } else {
+ matrix[FRONT_LEFT ][FRONT_CENTER] += M_SQRT1_2;
+ matrix[FRONT_RIGHT][FRONT_CENTER] += M_SQRT1_2;
+ }
} else
return AVERROR_PATCHWELCOME;
}