avfilter/af_channelmap: add support for unknown input channel layouts

Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2016-12-03 20:02:47 +01:00
parent bffc2bcd75
commit 01a19f77ca

View 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,