From a8cdb7b95a7fb7f39eb06c0e4bc0af632b85ba47 Mon Sep 17 00:00:00 2001
From: Nicolas George <nicolas.george@normalesup.org>
Date: Mon, 20 Feb 2012 23:55:28 +0100
Subject: [PATCH] swr: special case for empty channels in rematrix.

Speed += 10% overall for pan=stereo:FL=FL+FR from wav to null.
---
 libswresample/rematrix.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c
index da817e14556..e588fe973e2 100644
--- a/libswresample/rematrix.c
+++ b/libswresample/rematrix.c
@@ -280,6 +280,9 @@ int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mus
 
     for(out_i=0; out_i<out->ch_count; out_i++){
         switch(s->matrix_ch[out_i][0]){
+        case 0:
+            memset(out->ch[out_i], 0, len * (s->int_sample_fmt == AV_SAMPLE_FMT_FLT ? sizeof(float) : sizeof(int16_t)));
+            break;
         case 1:
             in_i= s->matrix_ch[out_i][1];
             if(mustcopy || s->matrix[out_i][in_i]!=1.0){
-- 
GitLab