From 722762f7e1212b4d02142778fabfdd73375722e0 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini <stefasab@gmail.com> Date: Mon, 10 Sep 2012 11:58:53 +0200 Subject: [PATCH] lavfi/setpts: add FRAME_RATE constant Useful for dealing with constant frame-rate video. --- doc/filters.texi | 3 +++ libavfilter/f_setpts.c | 11 +++++++++-- libavfilter/version.h | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index 685a3e2fc40..53c993239df 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 177d29b383f..6227fe02a40 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 607948d7f0f..9d96d77cb18 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, \ -- GitLab