diff options
Diffstat (limited to 'libswresample/rematrix.c')
-rw-r--r-- | libswresample/rematrix.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libswresample/rematrix.c b/libswresample/rematrix.c index 872722ffe4..1b8e65a1f4 100644 --- a/libswresample/rematrix.c +++ b/libswresample/rematrix.c @@ -291,6 +291,8 @@ int swri_rematrix_init(SwrContext *s){ int nb_in = av_get_channel_layout_nb_channels(s->in_ch_layout); int nb_out = av_get_channel_layout_nb_channels(s->out_ch_layout); + s->mix_any_f = NULL; + if (!s->rematrix_custom) { int r = auto_matrix(s); if (r) @@ -346,6 +348,11 @@ void swri_rematrix_free(SwrContext *s){ int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy){ int out_i, in_i, i, j; + if(s->mix_any_f) { + s->mix_any_f(out->ch, in->ch, s->native_matrix, len); + return 0; + } + av_assert0(out->ch_count == av_get_channel_layout_nb_channels(s->out_ch_layout)); av_assert0(in ->ch_count == av_get_channel_layout_nb_channels(s-> in_ch_layout)); |