History

avfilter/asrc_hilbert: switch to activate

Allow to set the EOF timestamp.

Paul B Mahol committed 5 years ago

Commit 6854cc21 parent 5e2e9d51 file · +11 −5Browse files

Unified · Split

libavfilter/asrc_hilbert.c+11−5
@@ -23,6 +23,7 @@ · 22 unmodified lines
2323 #include "audio.h"
2424 #include "avfilter.h"
2525 #include "internal.h"
26+#include "filters.h"
2627 #include "window_func.h"
2728
2829 typedef struct HilbertContext {
@@ -143,16 +144,21 @@ static av_cold int config_props(AVFilterLink *outlink) · 114 unmodified lines
143144 return 0;
144145 }
145146
146−static int request_frame(AVFilterLink *outlink)
147+static int activate(AVFilterContext *ctx)
147148 {
148− AVFilterContext *ctx = outlink->src;
149+ AVFilterLink *outlink = ctx->outputs[0];
149150 HilbertContext *s = ctx->priv;
150151 AVFrame *frame;
151152 int nb_samples;
152153
154+ if (!ff_outlink_frame_wanted(outlink))
155+ return FFERROR_NOT_READY;
156+
153157 nb_samples = FFMIN(s->nb_samples, s->nb_taps - s->pts);
154− if (!nb_samples)
155− return AVERROR_EOF;
158+ if (nb_samples <= 0) {
159+ ff_outlink_set_status(outlink, AVERROR_EOF, s->pts);
160+ return 0;
161+ }
156162
157163 if (!(frame = ff_get_audio_buffer(outlink, nb_samples)))
158164 return AVERROR(ENOMEM);
@@ -168,7 +174,6 @@ static const AVFilterPad hilbert_outputs[] = { · 9 unmodified lines
168174 {
169175 .name = "default",
170176 .type = AVMEDIA_TYPE_AUDIO,
171− .request_frame = request_frame,
172177 .config_props = config_props,
173178 },
174179 };
@@ -179,6 +184,7 @@ const AVFilter ff_asrc_hilbert = { · 4 unmodified lines
179184 .query_formats = query_formats,
180185 .init = init,
181186 .uninit = uninit,
187+ .activate = activate,
182188 .priv_size = sizeof(HilbertContext),
183189 .inputs = NULL,
184190 FILTER_OUTPUTS(hilbert_outputs),

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