diff options
-rw-r--r-- | libswresample/rematrix.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c index 26e76a2ed8..7652fd8a32 100644 --- a/libswresample/rematrix.c +++ b/libswresample/rematrix.c @@ -150,8 +150,13 @@ static int auto_matrix(SwrContext *s) if(unaccounted & AV_CH_FRONT_CENTER){ if((s->out_ch_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(s->in_ch_layout & AV_CH_LAYOUT_STEREO) { + matrix[ FRONT_LEFT][FRONT_CENTER]+= s->clev; + matrix[FRONT_RIGHT][FRONT_CENTER]+= s->clev; + } else { + matrix[ FRONT_LEFT][FRONT_CENTER]+= M_SQRT1_2; + matrix[FRONT_RIGHT][FRONT_CENTER]+= M_SQRT1_2; + } }else av_assert0(0); } |