Quoting John Stebbins (2015-10-28 17:48:35) > From: Stefano Sabatini <[email protected]> > > Useful for dealing with constant frame-rate video. > > (cherry picked from ffmpeg commit 722762f7e1212b4d02142778fabfdd73375722e0) > --- > doc/filters.texi | 3 +++ > libavfilter/setpts.c | 6 ++++++ > 2 files changed, 9 insertions(+) > > diff --git a/doc/filters.texi b/doc/filters.texi > index d9874b6..9804c0e 100644 > --- a/doc/filters.texi > +++ b/doc/filters.texi > @@ -209,6 +209,9 @@ The expression is evaluated through the eval API and can > contain the following > constants: > > @table @option > +@item FRAME_RATE > +frame rate, only defined for constant frame-rate video > + > @item PTS > the presentation timestamp in input > > diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c > index 98bafc2..ab3674a 100644 > --- a/libavfilter/setpts.c > +++ b/libavfilter/setpts.c > @@ -41,6 +41,7 @@ > > static const char *const var_names[] = { > "E", ///< Euler number > + "FRAME_RATE", ///< defined only for constant frame-rate video > "INTERLACED", ///< tell if the current frame is interlaced > "N", ///< frame / sample number (starting at zero) > "PHI", ///< golden ratio > @@ -59,6 +60,7 @@ static const char *const var_names[] = { > > enum var_name { > VAR_E, > + VAR_FRAME_RATE, > VAR_INTERLACED, > VAR_N, > VAR_PHI, > @@ -115,6 +117,10 @@ static int config_input(AVFilterLink *inlink) > setpts->var_values[VAR_SR] = inlink->sample_rate; > } > > + setpts->var_values[VAR_FRAME_RATE] = inlink->frame_rate.num && > + inlink->frame_rate.den ? > + av_q2d(inlink->frame_rate) : NAN; > + > av_log(inlink->src, AV_LOG_VERBOSE, "TB:%f\n", > setpts->var_values[VAR_TB]); > return 0; > } > -- > 2.4.3
I think this filter should also set the output framerate to zero/undefined, since we have no idea if the output is still CFR. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
