History

avfilter/asrc_flite: switch to activate

Allows to set EOF timestamp.

Paul B Mahol committed 2 years ago

Commit d793af91 parent 99d2fa31 file · +13 −11Browse files

Unified · Split

libavfilter/asrc_flite.c+13−11
@@ -29,6 +29,7 @@ · 28 unmodified lines
2929 #include "libavutil/opt.h"
3030 #include "libavutil/thread.h"
3131 #include "avfilter.h"
32+#include "filters.h"
3233 #include "audio.h"
3334 #include "formats.h"
3435 #include "internal.h"
@@ -256,14 +257,20 @@ static int config_props(AVFilterLink *outlink) · 221 unmodified lines
256257 return 0;
257258 }
258259
259−static int request_frame(AVFilterLink *outlink)
260+static int activate(AVFilterContext *ctx)
260261 {
261− AVFrame *samplesref;
262− FliteContext *flite = outlink->src->priv;
262+ AVFilterLink *outlink = ctx->outputs[0];
263+ FliteContext *flite = ctx->priv;
263264 int nb_samples = FFMIN(flite->wave_nb_samples, flite->frame_nb_samples);
265+ AVFrame *samplesref;
264266
265− if (!nb_samples)
266− return AVERROR_EOF;
267+ if (!ff_outlink_frame_wanted(outlink))
268+ return FFERROR_NOT_READY;
269+
270+ if (!nb_samples) {
271+ ff_outlink_set_status(outlink, AVERROR_EOF, flite->pts);
272+ return 0;
273+ }
267274
268275 samplesref = ff_get_audio_buffer(outlink, nb_samples);
269276 if (!samplesref)
@@ -272,11 +279,6 @@ static int request_frame(AVFilterLink *outlink) · 2 unmodified lines
272279 memcpy(samplesref->data[0], flite->wave_samples,
273280 nb_samples * flite->wave->num_channels * 2);
274281 samplesref->pts = flite->pts;
275−#if FF_API_FRAME_PKT
276−FF_DISABLE_DEPRECATION_WARNINGS
277− samplesref->pkt_pos = -1;
278−FF_ENABLE_DEPRECATION_WARNINGS
279−#endif
280282 samplesref->sample_rate = flite->wave->sample_rate;
281283 flite->pts += nb_samples;
282284 flite->wave_samples += nb_samples * flite->wave->num_channels;
@@ -290,7 +292,6 @@ static const AVFilterPad flite_outputs[] = { · 7 unmodified lines
290292 .name = "default",
291293 .type = AVMEDIA_TYPE_AUDIO,
292294 .config_props = config_props,
293− .request_frame = request_frame,
294295 },
295296 };
296297
@@ -300,6 +301,7 @@ const AVFilter ff_asrc_flite = { · 3 unmodified lines
300301 .init = init,
301302 .uninit = uninit,
302303 .priv_size = sizeof(FliteContext),
304+ .activate = activate,
303305 .inputs = NULL,
304306 FILTER_OUTPUTS(flite_outputs),
305307 FILTER_QUERY_FUNC(query_formats),

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