This filter uses ff_set_common_all_samplerates(). Also don't overwrite outlink->sample_rate in config_output; it is harmless, because it is overwritten with the value it already had, but it is an API violation.
Unified · Split
| @@ -323,15 +323,6 @@ static int config_output(AVFilterLink *outlink) · 322 unmodified lines | |||
| 323 | AVFilterContext *ctx = outlink->src; | 323 | AVFilterContext *ctx = outlink->src; |
| 324 | SidechainCompressContext *s = ctx->priv; | 324 | SidechainCompressContext *s = ctx->priv; |
| 325 | 325 | ||
| 326 | if (ctx->inputs[0]->sample_rate != ctx->inputs[1]->sample_rate) { | ||
| 327 | av_log(ctx, AV_LOG_ERROR, | ||
| 328 | "Inputs must have the same sample rate " | ||
| 329 | "%d for in0 vs %d for in1\n", | ||
| 330 | ctx->inputs[0]->sample_rate, ctx->inputs[1]->sample_rate); | ||
| 331 | return AVERROR(EINVAL); | ||
| 332 | } | ||
| 333 | |||
| 334 | outlink->sample_rate = ctx->inputs[0]->sample_rate; | ||
| 335 | outlink->time_base = ctx->inputs[0]->time_base; | 326 | outlink->time_base = ctx->inputs[0]->time_base; |
| 336 | 327 | ||
| 337 | s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); | 328 | s->fifo[0] = av_audio_fifo_alloc(ctx->inputs[0]->format, ctx->inputs[0]->channels, 1024); |