X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Faf_ladspa.c;h=890888096cec1b7c6864c2af2a0429fe120b3c30;hb=4982130d5a7babcb4b2e208fca2c745de7e10658;hp=655c01811d822d9161e3ad4567408d24b58b1592;hpb=c2972a2800242229ac22e882fe60245a44ac026c;p=ffmpeg diff --git a/libavfilter/af_ladspa.c b/libavfilter/af_ladspa.c index 655c01811d8..890888096ce 100644 --- a/libavfilter/af_ladspa.c +++ b/libavfilter/af_ladspa.c @@ -142,7 +142,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFilterContext *ctx = inlink->dst; LADSPAContext *s = ctx->priv; AVFrame *out; - int i, h; + int i, h, p; if (!s->nb_outputs || (av_frame_is_writable(in) && s->nb_inputs == s->nb_outputs && @@ -159,13 +159,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) for (h = 0; h < s->nb_handles; h++) { for (i = 0; i < s->nb_inputs; i++) { + p = s->nb_handles > 1 ? h : i; s->desc->connect_port(s->handles[h], s->ipmap[i], - (LADSPA_Data*)in->extended_data[i]); + (LADSPA_Data*)in->extended_data[p]); } for (i = 0; i < s->nb_outputs; i++) { + p = s->nb_handles > 1 ? h : i; s->desc->connect_port(s->handles[h], s->opmap[i], - (LADSPA_Data*)out->extended_data[i]); + (LADSPA_Data*)out->extended_data[p]); } s->desc->run(s->handles[h], in->nb_samples);