|
@@ -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;
|
|
@@ -276,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(
|
|
@@ -291,11 +288,14 @@ static av_cold int channelmap_init(AVFilterContext *ctx)
|
|
|
static int channelmap_query_formats(AVFilterContext *ctx)
|
|
|
{
|
|
|
ChannelMapContext *s = ctx->priv;
|
|
|
+ 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());
|
|
|
ff_channel_layouts_ref(ff_all_channel_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;
|
|
|
}
|