History

avfilter/af_dynaudnorm: improve EOF timestamp precision

Paul B Mahol committed 5 years ago

Commit f78d0f61 parent 19802d11 file · +6 −3Browse files

Showing the changes to libavfilter (1 of 1 file). Show all

Unified · Split

libavfilter/af_dynaudnorm.c+6−3
@@ -706,7 +706,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) · 705 unmodified lines
706706 cqueue_dequeue(s->is_enabled, &is_enabled);
707707
708708 amplify_frame(s, out, is_enabled > 0.);
709− s->pts = out->pts + out->nb_samples;
709+ s->pts = out->pts + av_rescale_q(out->nb_samples, av_make_q(1, outlink->sample_rate),
710+ outlink->time_base);
710711 ret = ff_filter_frame(outlink, out);
711712 }
712713
@@ -749,15 +750,17 @@ static int flush_buffer(DynamicAudioNormalizerContext *s, AVFilterLink *inlink, · 36 unmodified lines
749750 static int flush(AVFilterLink *outlink)
750751 {
751752 AVFilterContext *ctx = outlink->src;
753+ AVFilterLink *inlink = ctx->inputs[0];
752754 DynamicAudioNormalizerContext *s = ctx->priv;
753755 int ret = 0;
754756
755757 if (!cqueue_empty(s->gain_history_smoothed[0])) {
756− ret = flush_buffer(s, ctx->inputs[0], outlink);
758+ ret = flush_buffer(s, inlink, outlink);
757759 } else if (s->queue.available) {
758760 AVFrame *out = ff_bufqueue_get(&s->queue);
759761
760− s->pts = out->pts + out->nb_samples;
762+ s->pts = out->pts + av_rescale_q(out->nb_samples, av_make_q(1, outlink->sample_rate),
763+ outlink->time_base);
761764 ret = ff_filter_frame(outlink, out);
762765 }
763766

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t