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

Reply via email to