/* flush the lavr delay buffer */
if (ret == AVERROR_EOF && s->avr) {
AVFrame *frame;
- int nb_samples = av_rescale_rnd(avresample_get_delay(s->avr),
- outlink->sample_rate,
- ctx->inputs[0]->sample_rate,
- AV_ROUND_UP);
+ int nb_samples = avresample_get_out_samples(s->avr, 0);
if (!nb_samples)
return ret;
/* maximum possible samples lavr can output */
delay = avresample_get_delay(s->avr);
- nb_samples = av_rescale_rnd(in->nb_samples + delay,
- outlink->sample_rate, inlink->sample_rate,
- AV_ROUND_UP);
+ nb_samples = avresample_get_out_samples(s->avr, in->nb_samples);
out = ff_get_audio_buffer(outlink, nb_samples);
if (!out) {
if (ret > 0) {
out->nb_samples = ret;
+
+ ret = av_frame_copy_props(out, in);
+ if (ret < 0) {
+ av_frame_free(&out);
+ goto fail;
+ }
+
+ out->sample_rate = outlink->sample_rate;
if (in->pts != AV_NOPTS_VALUE) {
out->pts = av_rescale_q(in->pts, inlink->time_base,
outlink->time_base) -
{ NULL }
};
-AVFilter avfilter_af_resample = {
+AVFilter ff_af_resample = {
.name = "resample",
.description = NULL_IF_CONFIG_SMALL("Audio resampling and conversion."),
.priv_size = sizeof(ResampleContext),