summaryrefslogtreecommitdiff
path: root/libavfilter/af_channelmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/af_channelmap.c')
-rw-r--r--libavfilter/af_channelmap.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c
index 06931456fb..dae79c14b6 100644
--- a/libavfilter/af_channelmap.c
+++ b/libavfilter/af_channelmap.c
@@ -57,7 +57,6 @@ enum MappingMode {
#define MAX_CH 64
typedef struct ChannelMapContext {
const AVClass *class;
- AVFilterChannelLayouts *channel_layouts;
char *mapping_str;
char *channel_layout_str;
uint64_t output_layout;
@@ -289,6 +288,9 @@ static int channelmap_query_formats(AVFilterContext *ctx)
{
ChannelMapContext *s = ctx->priv;
AVFilterChannelLayouts *layouts;
+ AVFilterChannelLayouts *channel_layouts = NULL;
+
+ ff_add_channel_layout(&channel_layouts, s->output_layout);
ff_set_common_formats(ctx, ff_planar_sample_fmts());
ff_set_common_samplerates(ctx, ff_all_samplerates());
@@ -297,9 +299,8 @@ 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);
+ ff_channel_layouts_ref(channel_layouts, &ctx->outputs[0]->in_channel_layouts);
return 0;
}