History

avfilter/af_asdr: set output frame duration

Paul B Mahol committed 3 years ago

Commit a47bd6d1 parent a2f4adf1 file · +7 −5Browse files

Unified · Split

libavfilter/af_asdr.c+7−5
@@ -60,11 +60,12 @@ static void sdr(AVFilterContext *ctx, const AVFrame *u, const AVFrame *v) · 59 unmodified lines
6060 static int activate(AVFilterContext *ctx)
6161 {
6262 AudioSDRContext *s = ctx->priv;
63+ AVFilterLink *outlink = ctx->outputs[0];
6364 int ret, status;
6465 int available;
6566 int64_t pts;
6667
67− FF_FILTER_FORWARD_STATUS_BACK_ALL(ctx->outputs[0], ctx);
68+ FF_FILTER_FORWARD_STATUS_BACK_ALL(outlink, ctx);
6869
6970 available = FFMIN(ff_inlink_queued_samples(ctx->inputs[0]), ff_inlink_queued_samples(ctx->inputs[1]));
7071 if (available > 0) {
@@ -83,21 +84,22 @@ static int activate(AVFilterContext *ctx) · 12 unmodified lines
8384 av_frame_free(&s->cache[1]);
8485 out = s->cache[0];
8586 out->nb_samples = available;
86− out->pts = s->pts;
87+ out->pts = av_rescale_q(s->pts, av_make_q(1, outlink->sample_rate), outlink->time_base);
88+ out->duration = av_rescale_q(out->nb_samples, av_make_q(1, outlink->sample_rate), outlink->time_base);
8789 s->pts += available;
8890 s->cache[0] = NULL;
8991
90− return ff_filter_frame(ctx->outputs[0], out);
92+ return ff_filter_frame(outlink, out);
9193 }
9294
9395 for (int i = 0; i < 2; i++) {
9496 if (ff_inlink_acknowledge_status(ctx->inputs[i], &status, &pts)) {
95− ff_outlink_set_status(ctx->outputs[0], status, s->pts);
97+ ff_outlink_set_status(outlink, status, s->pts);
9698 return 0;
9799 }
98100 }
99101
100− if (ff_outlink_frame_wanted(ctx->outputs[0])) {
102+ if (ff_outlink_frame_wanted(outlink)) {
101103 for (int i = 0; i < 2; i++) {
102104 if (ff_inlink_queued_samples(ctx->inputs[i]) > 0)
103105 continue;

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