From c8ffab06f4bc039f4ff191de4761ab3c57eb684a Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 8 Sep 2012 21:10:19 +0200 Subject: swr/auto_matrix: add clean layout function Signed-off-by: Michael Niedermayer --- libswresample/rematrix.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libswresample/rematrix.c') diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c index 9fa4f52880..a8d5fde00c 100644 --- a/libswresample/rematrix.c +++ b/libswresample/rematrix.c @@ -102,6 +102,11 @@ static int even(int64_t layout){ return 0; } +static int clean_layout(SwrContext *s, int64_t layout){ + + return layout; +} + static int sane_layout(int64_t layout){ if(!(layout & AV_CH_LAYOUT_SURROUND)) // at least 1 front speaker return 0; @@ -123,16 +128,19 @@ static int auto_matrix(SwrContext *s) { int i, j, out_i; double matrix[64][64]={{0}}; - int64_t unaccounted, in_ch_layout = s->in_ch_layout, out_ch_layout = s->out_ch_layout; + int64_t unaccounted, in_ch_layout, out_ch_layout; double maxcoef=0; char buf[128]; const int matrix_encoding = s->matrix_encoding; + in_ch_layout = clean_layout(s, s->in_ch_layout); if(!sane_layout(in_ch_layout)){ av_get_channel_layout_string(buf, sizeof(buf), -1, s->in_ch_layout); av_log(s, AV_LOG_ERROR, "Input channel layout '%s' is not supported\n", buf); return AVERROR(EINVAL); } + + out_ch_layout = clean_layout(s, s->out_ch_layout); if(!sane_layout(out_ch_layout)){ av_get_channel_layout_string(buf, sizeof(buf), -1, s->out_ch_layout); av_log(s, AV_LOG_ERROR, "Output channel layout '%s' is not supported\n", buf); -- cgit v1.2.3