---
libavfilter/vf_fps.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c
index 7f51752..4cccf08 100644
--- a/libavfilter/vf_fps.c
+++ b/libavfilter/vf_fps.c
@@ -44,8 +44,6 @@ typedef struct FPSContext {
char *fps; ///< a string describing target framerate
/* statistics */
- int frames_in; ///< number of frames on input
- int frames_out; ///< number of frames on output
int dup; ///< number of frames duplicated
int drop; ///< number of framed dropped
} FPSContext;
@@ -101,8 +99,8 @@ static av_cold void uninit(AVFilterContext *ctx)
av_fifo_free(s->fifo);
}
- av_log(ctx, AV_LOG_VERBOSE, "%d frames in, %d frames out; %d frames
dropped, "
- "%d frames duplicated.\n", s->frames_in, s->frames_out, s->drop,
s->dup);
+ av_log(ctx, AV_LOG_VERBOSE, "%d frames dropped, %d frames duplicated.\n",
+ s->drop, s->dup);
}
static int config_props(AVFilterLink* link)
@@ -120,10 +118,10 @@ static int request_frame(AVFilterLink *outlink)
{
AVFilterContext *ctx = outlink->src;
FPSContext *s = ctx->priv;
- int frames_out = s->frames_out;
+ int frames_out = ctx->nb_frames_out[0];
int ret = 0;
- while (ret >= 0 && s->frames_out == frames_out)
+ while (ret >= 0 && ctx->nb_frames_out[0] == frames_out)
ret = ff_request_frame(ctx->inputs[0]);
/* flush the fifo */
@@ -134,12 +132,10 @@ static int request_frame(AVFilterLink *outlink)
av_fifo_generic_read(s->fifo, &buf, sizeof(buf), NULL);
buf->pts = av_rescale_q(s->first_pts, ctx->inputs[0]->time_base,
- outlink->time_base) + s->frames_out;
+ outlink->time_base) +
ctx->nb_frames_out[0];
if ((ret = ff_filter_frame(outlink, buf)) < 0)
return ret;
-
- s->frames_out++;
}
return 0;
}
@@ -169,7 +165,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
int64_t delta;
int i, ret;
- s->frames_in++;
/* discard frames until we get the first timestamp */
if (s->pts == AV_NOPTS_VALUE) {
if (buf->pts != AV_NOPTS_VALUE) {
@@ -237,19 +232,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame
*buf)
}
buf_out->pts = av_rescale_q(s->first_pts, inlink->time_base,
- outlink->time_base) + s->frames_out;
+ outlink->time_base) +
ctx->nb_frames_out[0];
if ((ret = ff_filter_frame(outlink, buf_out)) < 0) {
av_frame_free(&buf);
return ret;
}
-
- s->frames_out++;
}
flush_fifo(s->fifo);
ret = write_to_fifo(s->fifo, buf);
- s->pts = s->first_pts + av_rescale_q(s->frames_out, outlink->time_base,
inlink->time_base);
+ s->pts = s->first_pts + av_rescale_q(ctx->nb_frames_out[0],
+ outlink->time_base,
inlink->time_base);
return ret;
}
--
1.7.10.4
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel