lavfi/setpts: add FRAME_RATE constant
Useful for dealing with constant frame-rate video.
This commit is contained in:
parent
e14725cecc
commit
722762f7e1
@ -4194,6 +4194,9 @@ Accept in input an expression evaluated through the eval API, which
|
|||||||
can contain the following constants:
|
can contain the following constants:
|
||||||
|
|
||||||
@table @option
|
@table @option
|
||||||
|
@item FRAME_RATE
|
||||||
|
frame rate, only defined for constant frame-rate video
|
||||||
|
|
||||||
@item PTS
|
@item PTS
|
||||||
the presentation timestamp in input
|
the presentation timestamp in input
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include "video.h"
|
#include "video.h"
|
||||||
|
|
||||||
static const char *const var_names[] = {
|
static const char *const var_names[] = {
|
||||||
|
"FRAME_RATE", ///< defined only for constant frame-rate video
|
||||||
"INTERLACED", ///< tell if the current frame is interlaced
|
"INTERLACED", ///< tell if the current frame is interlaced
|
||||||
"N", ///< frame number (starting at zero)
|
"N", ///< frame number (starting at zero)
|
||||||
"NB_CONSUMED_SAMPLES", ///< number of samples consumed by the filter (only audio)
|
"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 {
|
enum var_name {
|
||||||
|
VAR_FRAME_RATE,
|
||||||
VAR_INTERLACED,
|
VAR_INTERLACED,
|
||||||
VAR_N,
|
VAR_N,
|
||||||
VAR_NB_CONSUMED_SAMPLES,
|
VAR_NB_CONSUMED_SAMPLES,
|
||||||
@ -107,8 +109,13 @@ static int config_input(AVFilterLink *inlink)
|
|||||||
if (setpts->type == AVMEDIA_TYPE_AUDIO)
|
if (setpts->type == AVMEDIA_TYPE_AUDIO)
|
||||||
setpts->var_values[VAR_SAMPLE_RATE] = inlink->sample_rate;
|
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_FRAME_RATE] = inlink->frame_rate.num && inlink->frame_rate.den ?
|
||||||
setpts->var_values[VAR_TB], setpts->var_values[VAR_SAMPLE_RATE]);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#define LIBAVFILTER_VERSION_MAJOR 3
|
#define LIBAVFILTER_VERSION_MAJOR 3
|
||||||
#define LIBAVFILTER_VERSION_MINOR 16
|
#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, \
|
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||||
LIBAVFILTER_VERSION_MINOR, \
|
LIBAVFILTER_VERSION_MINOR, \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user