Browse Source

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.
tags/n1.1
Nicolas George 13 years ago
parent
commit
48ec8b25a7
1 changed files with 4 additions and 8 deletions
  1. +4
    -8
      libavfilter/af_volumedetect.c

+ 4
- 8
libavfilter/af_volumedetect.c 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 = { AVFilter avfilter_af_volumedetect = {
@@ -141,6 +137,7 @@ AVFilter avfilter_af_volumedetect = {


.priv_size = sizeof(VolDetectContext), .priv_size = sizeof(VolDetectContext),
.query_formats = query_formats, .query_formats = query_formats,
.uninit = uninit,


.inputs = (const AVFilterPad[]) { .inputs = (const AVFilterPad[]) {
{ .name = "default", { .name = "default",
@@ -152,8 +149,7 @@ AVFilter avfilter_af_volumedetect = {
}, },
.outputs = (const AVFilterPad[]) { .outputs = (const AVFilterPad[]) {
{ .name = "default", { .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.request_frame = request_frame, },
.type = AVMEDIA_TYPE_AUDIO, },
{ .name = NULL } { .name = NULL }
}, },
}; };

Loading…
Cancel
Save