avfilter/af_channelmap: Move ff_add_channel_layout() call to querry_format()

Avoids memleak if querry_formats is not called

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/140/head
Michael Niedermayer 9 years ago
parent f2d7409c72
commit 39867f3e09
  1. 3
      libavfilter/af_channelmap.c

@ -275,8 +275,6 @@ static av_cold int channelmap_init(AVFilterContext *ctx)
return AVERROR(EINVAL); return AVERROR(EINVAL);
} }
ff_add_channel_layout(&s->channel_layouts, s->output_layout);
if (mode == MAP_PAIR_INT_STR || mode == MAP_PAIR_STR_STR) { if (mode == MAP_PAIR_INT_STR || mode == MAP_PAIR_STR_STR) {
for (i = 0; i < s->nch; i++) { for (i = 0; i < s->nch; i++) {
s->map[i].out_channel_idx = av_get_channel_layout_channel_index( 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) if (!layouts)
return AVERROR(ENOMEM); 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(layouts, &ctx->inputs[0]->out_channel_layouts);
ff_channel_layouts_ref(s->channel_layouts, &ctx->outputs[0]->in_channel_layouts); ff_channel_layouts_ref(s->channel_layouts, &ctx->outputs[0]->in_channel_layouts);

Loading…
Cancel
Save