int pure_gains;
/* channel mapping specific */
- int channel_map[SWR_CH_MAX];
+ int channel_map[MAX_CHANNELS];
struct SwrContext *swr;
} PanContext;
// sanity check; can't be done in query_formats since the inlink
// channel layout is unknown at that time
- if (link->channels > SWR_CH_MAX ||
- pan->nb_output_channels > SWR_CH_MAX) {
+ if (link->channels > MAX_CHANNELS ||
+ pan->nb_output_channels > MAX_CHANNELS) {
av_log(ctx, AV_LOG_ERROR,
- "libswresample support a maximum of %d channels. "
- "Feel free to ask for a higher limit.\n", SWR_CH_MAX);
+ "af_pan support a maximum of %d channels. "
+ "Feel free to ask for a higher limit.\n", MAX_CHANNELS);
return AVERROR_PATCHWELCOME;
}
0, ctx);
if (!pan->swr)
return AVERROR(ENOMEM);
- if (!link->channel_layout)
- av_opt_set_int(pan->swr, "ich", link->channels, 0);
- if (!pan->out_channel_layout)
- av_opt_set_int(pan->swr, "och", pan->nb_output_channels, 0);
+ if (!link->channel_layout) {
+ if (av_opt_set_int(pan->swr, "ich", link->channels, 0) < 0)
+ return AVERROR(EINVAL);
+ }
+ if (!pan->out_channel_layout) {
+ if (av_opt_set_int(pan->swr, "och", pan->nb_output_channels, 0) < 0)
+ return AVERROR(EINVAL);
+ }
// gains are pure, init the channel mapping
if (pan->pure_gains) {