lavfi/af_volumedetect: print stats in uninit().

If the stats are printed when request_frame on the input
returns EOF, then they are never printed if the filter is
not flushed, in particular when using the -t ffmpeg option.

Fix trac ticket #1727.
This commit is contained in:
Nicolas George 2012-10-17 19:42:20 +02:00
parent ce028ab9a7
commit 48ec8b25a7

View File

@ -126,13 +126,9 @@ static void print_stats(AVFilterContext *ctx)
}
}
static int request_frame(AVFilterLink *outlink)
static void uninit(AVFilterContext *ctx)
{
AVFilterContext *ctx = outlink->src;
int ret = ff_request_frame(ctx->inputs[0]);
if (ret == AVERROR_EOF)
print_stats(ctx);
return ret;
print_stats(ctx);
}
AVFilter avfilter_af_volumedetect = {
@ -141,6 +137,7 @@ AVFilter avfilter_af_volumedetect = {
.priv_size = sizeof(VolDetectContext),
.query_formats = query_formats,
.uninit = uninit,
.inputs = (const AVFilterPad[]) {
{ .name = "default",
@ -152,8 +149,7 @@ AVFilter avfilter_af_volumedetect = {
},
.outputs = (const AVFilterPad[]) {
{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.request_frame = request_frame, },
.type = AVMEDIA_TYPE_AUDIO, },
{ .name = NULL }
},
};