diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c index f8289ccf5e..06931456fb 100644 --- a/libavfilter/af_channelmap.c +++ b/libavfilter/af_channelmap.c @@ -275,8 +275,6 @@ static av_cold int channelmap_init(AVFilterContext *ctx) return AVERROR(EINVAL); } - ff_add_channel_layout(&s->channel_layouts, s->output_layout); - if (mode == MAP_PAIR_INT_STR || mode == MAP_PAIR_STR_STR) { for (i = 0; i < s->nch; i++) { s->map[i].out_channel_idx = av_get_channel_layout_channel_index( @@ -299,6 +297,7 @@ static int channelmap_query_formats(AVFilterContext *ctx) if (!layouts) return AVERROR(ENOMEM); + ff_add_channel_layout(&s->channel_layouts, s->output_layout); ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts); ff_channel_layouts_ref(s->channel_layouts, &ctx->outputs[0]->in_channel_layouts);