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

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

Unified · Split

libavfilter/asrc_flite.c+13−11
@@ -29,6 +29,7 @@ · 28 unmodified lines
29#include "libavutil/opt.h"29#include "libavutil/opt.h"
30#include "libavutil/thread.h"30#include "libavutil/thread.h"
31#include "avfilter.h"31#include "avfilter.h"
32#include "filters.h"
32#include "audio.h"33#include "audio.h"
33#include "formats.h"34#include "formats.h"
34#include "internal.h"35#include "internal.h"
@@ -256,14 +257,20 @@ static int config_props(AVFilterLink *outlink) · 221 unmodified lines
256 return 0;257 return 0;
257}258}
258 259
259static int request_frame(AVFilterLink *outlink)260static int activate(AVFilterContext *ctx)
260{261{
261 AVFrame *samplesref;262 AVFilterLink *outlink = ctx->outputs[0];
262 FliteContext *flite = outlink->src->priv;263 FliteContext *flite = ctx->priv;
263 int nb_samples = FFMIN(flite->wave_nb_samples, flite->frame_nb_samples);264 int nb_samples = FFMIN(flite->wave_nb_samples, flite->frame_nb_samples);
265 AVFrame *samplesref;
264 266
265 if (!nb_samples)267 if (!ff_outlink_frame_wanted(outlink))
266 return AVERROR_EOF;268 return FFERROR_NOT_READY;
269
270 if (!nb_samples) {
271 ff_outlink_set_status(outlink, AVERROR_EOF, flite->pts);
272 return 0;
273 }
267 274
268 samplesref = ff_get_audio_buffer(outlink, nb_samples);275 samplesref = ff_get_audio_buffer(outlink, nb_samples);
269 if (!samplesref)276 if (!samplesref)
@@ -272,11 +279,6 @@ static int request_frame(AVFilterLink *outlink) · 2 unmodified lines
272 memcpy(samplesref->data[0], flite->wave_samples,279 memcpy(samplesref->data[0], flite->wave_samples,
273 nb_samples * flite->wave->num_channels * 2);280 nb_samples * flite->wave->num_channels * 2);
274 samplesref->pts = flite->pts;281 samplesref->pts = flite->pts;
275#if FF_API_FRAME_PKT
276FF_DISABLE_DEPRECATION_WARNINGS
277 samplesref->pkt_pos = -1;
278FF_ENABLE_DEPRECATION_WARNINGS
279#endif
280 samplesref->sample_rate = flite->wave->sample_rate;282 samplesref->sample_rate = flite->wave->sample_rate;
281 flite->pts += nb_samples;283 flite->pts += nb_samples;
282 flite->wave_samples += nb_samples * flite->wave->num_channels;284 flite->wave_samples += nb_samples * flite->wave->num_channels;
@@ -290,7 +292,6 @@ static const AVFilterPad flite_outputs[] = { · 7 unmodified lines
290 .name = "default",292 .name = "default",
291 .type = AVMEDIA_TYPE_AUDIO,293 .type = AVMEDIA_TYPE_AUDIO,
292 .config_props = config_props,294 .config_props = config_props,
293 .request_frame = request_frame,
294 },295 },
295};296};
296 297
@@ -300,6 +301,7 @@ const AVFilter ff_asrc_flite = { · 3 unmodified lines
300 .init = init,301 .init = init,
301 .uninit = uninit,302 .uninit = uninit,
302 .priv_size = sizeof(FliteContext),303 .priv_size = sizeof(FliteContext),
304 .activate = activate,
303 .inputs = NULL,305 .inputs = NULL,
304 FILTER_OUTPUTS(flite_outputs),306 FILTER_OUTPUTS(flite_outputs),
305 FILTER_QUERY_FUNC(query_formats),307 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