avfilter/af_channelmap: add support for unknown input channel layouts
[ffmpeg.git] / libavfilter / af_channelmap.c
index dcae2a2..cdd8a58 100644 (file)
@@ -291,7 +291,7 @@ static int channelmap_query_formats(AVFilterContext *ctx)
     AVFilterChannelLayouts *channel_layouts = NULL;
     int ret;
 
-    layouts = ff_all_channel_layouts();
+    layouts = ff_all_channel_counts();
     if (!layouts) {
         ret = AVERROR(ENOMEM);
         goto fail;
@@ -316,7 +316,7 @@ static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf)
     AVFilterContext  *ctx = inlink->dst;
     AVFilterLink *outlink = ctx->outputs[0];
     const ChannelMapContext *s = ctx->priv;
-    const int nch_in = av_get_channel_layout_nb_channels(inlink->channel_layout);
+    const int nch_in = inlink->channels;
     const int nch_out = s->nch;
     int ch;
     uint8_t *source_planes[MAX_CH];
@@ -363,7 +363,7 @@ static int channelmap_config_input(AVFilterLink *inlink)
 {
     AVFilterContext *ctx = inlink->dst;
     ChannelMapContext *s = ctx->priv;
-    int nb_channels = av_get_channel_layout_nb_channels(inlink->channel_layout);
+    int nb_channels = inlink->channels;
     int i, err = 0;
     const char *channel_name;
     char layout_name[256];
@@ -378,7 +378,7 @@ static int channelmap_config_input(AVFilterLink *inlink)
 
         if (m->in_channel_idx < 0 || m->in_channel_idx >= nb_channels) {
             av_get_channel_layout_string(layout_name, sizeof(layout_name),
-                                         0, inlink->channel_layout);
+                                         nb_channels, inlink->channel_layout);
             if (m->in_channel) {
                 channel_name = av_get_channel_name(m->in_channel);
                 av_log(ctx, AV_LOG_ERROR,