summaryrefslogtreecommitdiff
path: root/libswresample/rematrix.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-06-08 21:56:20 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-06-08 22:02:14 +0200
commitb0348158a07912ddedf5a98a50a17717f328ce53 (patch)
treeb90ec3b584fa5d4e319792fbb70607e2dc926ce4 /libswresample/rematrix.c
parentca30ae12c5b7b8f8975e7bc70b2c33e8b06587e4 (diff)
swr: 5.1->stereo double, float and s16
2.5 times faster than the generic code Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswresample/rematrix.c')
-rw-r--r--libswresample/rematrix.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c
index 1b8e65a1f4..96246275b2 100644
--- a/libswresample/rematrix.c
+++ b/libswresample/rematrix.c
@@ -307,6 +307,7 @@ int swri_rematrix_init(SwrContext *s){
*((int*)s->native_one) = 32768;
s->mix_1_1_f = copy_s16;
s->mix_2_1_f = sum2_s16;
+ s->mix_any_f = get_mix_any_func_s16(s);
}else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){
s->native_matrix = av_mallocz(nb_in * nb_out * sizeof(float));
s->native_one = av_mallocz(sizeof(float));
@@ -316,6 +317,7 @@ int swri_rematrix_init(SwrContext *s){
*((float*)s->native_one) = 1.0;
s->mix_1_1_f = copy_float;
s->mix_2_1_f = sum2_float;
+ s->mix_any_f = get_mix_any_func_float(s);
}else if(s->midbuf.fmt == AV_SAMPLE_FMT_DBLP){
s->native_matrix = av_mallocz(nb_in * nb_out * sizeof(double));
s->native_one = av_mallocz(sizeof(double));
@@ -325,6 +327,7 @@ int swri_rematrix_init(SwrContext *s){
*((double*)s->native_one) = 1.0;
s->mix_1_1_f = copy_double;
s->mix_2_1_f = sum2_double;
+ s->mix_any_f = get_mix_any_func_double(s);
}else
av_assert0(0);
//FIXME quantize for integeres