Commit abaf4245 authored by Clément Bœsch's avatar Clément Bœsch Committed by Clément Bœsch

avfilter: add w/h parameters in timeline

Fixes Ticket #4008.
parent 158b3fb5
...@@ -282,6 +282,10 @@ sequential number of the input frame, starting from 0 ...@@ -282,6 +282,10 @@ sequential number of the input frame, starting from 0
@item pos @item pos
the position in the file of the input frame, NAN if unknown the position in the file of the input frame, NAN if unknown
@item w
@item h
width and height of the input frame if video
@end table @end table
Additionally, these filters support an @option{enable} command that can be used Additionally, these filters support an @option{enable} command that can be used
......
...@@ -381,8 +381,23 @@ int ff_poll_frame(AVFilterLink *link) ...@@ -381,8 +381,23 @@ int ff_poll_frame(AVFilterLink *link)
return min; return min;
} }
static const char *const var_names[] = { "t", "n", "pos", NULL }; static const char *const var_names[] = {
enum { VAR_T, VAR_N, VAR_POS, VAR_VARS_NB }; "t",
"n",
"pos",
"w",
"h",
NULL
};
enum {
VAR_T,
VAR_N,
VAR_POS,
VAR_W,
VAR_H,
VAR_VARS_NB
};
static int set_enable_expr(AVFilterContext *ctx, const char *expr) static int set_enable_expr(AVFilterContext *ctx, const char *expr)
{ {
...@@ -1071,6 +1086,8 @@ static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame) ...@@ -1071,6 +1086,8 @@ static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame)
int64_t pos = av_frame_get_pkt_pos(out); int64_t pos = av_frame_get_pkt_pos(out);
dstctx->var_values[VAR_N] = link->frame_count; dstctx->var_values[VAR_N] = link->frame_count;
dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base); dstctx->var_values[VAR_T] = pts == AV_NOPTS_VALUE ? NAN : pts * av_q2d(link->time_base);
dstctx->var_values[VAR_W] = link->w;
dstctx->var_values[VAR_H] = link->h;
dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos; dstctx->var_values[VAR_POS] = pos == -1 ? NAN : pos;
dstctx->is_disabled = fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) < 0.5; dstctx->is_disabled = fabs(av_expr_eval(dstctx->enable, dstctx->var_values, NULL)) < 0.5;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#define LIBAVFILTER_VERSION_MAJOR 5 #define LIBAVFILTER_VERSION_MAJOR 5
#define LIBAVFILTER_VERSION_MINOR 1 #define LIBAVFILTER_VERSION_MINOR 1
#define LIBAVFILTER_VERSION_MICRO 102 #define LIBAVFILTER_VERSION_MICRO 103
#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, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment