summaryrefslogtreecommitdiff
path: root/libswresample/rematrix.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-08 21:10:19 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-09-08 21:10:19 +0200
commitc8ffab06f4bc039f4ff191de4761ab3c57eb684a (patch)
tree2fa529a1d3366465de4d9c254de43442b2859fa9 /libswresample/rematrix.c
parentebc854e4e90c3b960d2776e52e251effcdea4243 (diff)
swr/auto_matrix: add clean layout function
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswresample/rematrix.c')
-rw-r--r--libswresample/rematrix.c10
1 files changed, 9 insertions, 1 deletions
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);