summaryrefslogtreecommitdiff
path: root/libavfilter/vf_crop.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2013-04-12 19:15:06 +0200
committerStefano Sabatini <stefasab@gmail.com>2013-04-12 19:15:06 +0200
commit1d86fe6970faad317ed1c337adfcf0c15ea16afe (patch)
tree778910c073fee7fca3d5e19d7ea9d54e17a3ae80 /libavfilter/vf_crop.c
parent9ae9ae10f9fe8fc35aa9d03449da69d516d906ed (diff)
downloadffmpeg-1d86fe6970faad317ed1c337adfcf0c15ea16afe.tar.gz
lavfi/crop: restore pos constant, and fix "t" variable misplacement in variable array
Fix evaluation of expressions containing the t variable.
Diffstat (limited to 'libavfilter/vf_crop.c')
-rw-r--r--libavfilter/vf_crop.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index 02f0831503..edfc98ffac 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -70,6 +70,7 @@ enum var_name {
VAR_X,
VAR_Y,
VAR_N,
+ VAR_POS,
VAR_T,
VAR_VARS_NB
};
@@ -169,6 +170,7 @@ static int config_input(AVFilterLink *link)
crop->var_values[VAR_OUT_H] = crop->var_values[VAR_OH] = NAN;
crop->var_values[VAR_N] = 0;
crop->var_values[VAR_T] = NAN;
+ crop->var_values[VAR_POS] = NAN;
av_image_fill_max_pixsteps(crop->max_step, NULL, pix_desc);
crop->hsub = pix_desc->log2_chroma_w;
@@ -259,6 +261,8 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
crop->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ?
NAN : frame->pts * av_q2d(link->time_base);
+ crop->var_values[VAR_POS] = av_frame_get_pkt_pos(frame) == -1 ?
+ NAN : av_frame_get_pkt_pos(frame);
crop->var_values[VAR_X] = av_expr_eval(crop->x_pexpr, crop->var_values, NULL);
crop->var_values[VAR_Y] = av_expr_eval(crop->y_pexpr, crop->var_values, NULL);
crop->var_values[VAR_X] = av_expr_eval(crop->x_pexpr, crop->var_values, NULL);