diff --git a/doc/filters.texi b/doc/filters.texi index 685a3e2fc400b8440c491efea68bcb336ff44003..53c993239dfaf2e2e753d3c1204e0ca29dc1d607 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -4194,6 +4194,9 @@ Accept in input an expression evaluated through the eval API, which 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/f_setpts.c b/libavfilter/f_setpts.c index 177d29b383fe2529d0d6f5d7a8c37955d1be998e..6227fe02a40102454a001ccc20f4cef7d378cebd 100644 --- a/libavfilter/f_setpts.c +++ b/libavfilter/f_setpts.c @@ -35,6 +35,7 @@ #include "video.h" static const char *const var_names[] = { + "FRAME_RATE", ///< defined only for constant frame-rate video "INTERLACED", ///< tell if the current frame is interlaced "N", ///< frame number (starting at zero) "NB_CONSUMED_SAMPLES", ///< number of samples consumed by the filter (only audio) @@ -54,6 +55,7 @@ static const char *const var_names[] = { }; enum var_name { + VAR_FRAME_RATE, VAR_INTERLACED, VAR_N, VAR_NB_CONSUMED_SAMPLES, @@ -107,8 +109,13 @@ static int config_input(AVFilterLink *inlink) if (setpts->type == AVMEDIA_TYPE_AUDIO) setpts->var_values[VAR_SAMPLE_RATE] = inlink->sample_rate; - av_log(inlink->src, AV_LOG_VERBOSE, "TB:%f SAMPLE_RATE:%f\n", - setpts->var_values[VAR_TB], setpts->var_values[VAR_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 FRAME_RATE:%f SAMPLE_RATE:%f\n", + setpts->var_values[VAR_TB], + setpts->var_values[VAR_FRAME_RATE], + setpts->var_values[VAR_SAMPLE_RATE]); return 0; } diff --git a/libavfilter/version.h b/libavfilter/version.h index 607948d7f0fd2bd7be5e181422de3e594ed0efdc..9d96d77cb18d9d7a9b949b78f482cf202a08c905 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -30,7 +30,7 @@ #define LIBAVFILTER_VERSION_MAJOR 3 #define LIBAVFILTER_VERSION_MINOR 16 -#define LIBAVFILTER_VERSION_MICRO 101 +#define LIBAVFILTER_VERSION_MICRO 102 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \