]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/af_channelmap: add support for unknown input channel layouts
authorMarton Balint <cus@passwd.hu>
Sat, 3 Dec 2016 19:02:47 +0000 (20:02 +0100)
committerMarton Balint <cus@passwd.hu>
Sat, 10 Dec 2016 10:57:11 +0000 (11:57 +0100)
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
libavfilter/af_channelmap.c

index dcae2a21d9a81e0ba1780099b3e574c0b3e3f6fd..cdd8a5885c1f01cee433494fe1d462473e8c2680 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,