|
|
|
@ -38,6 +38,8 @@ typedef struct QPContext { |
|
|
|
|
int evaluate_per_mb; |
|
|
|
|
} QPContext; |
|
|
|
|
|
|
|
|
|
static const char *const var_names[] = { "known", "qp", "x", "y", "w", "h", NULL }; |
|
|
|
|
|
|
|
|
|
#define OFFSET(x) offsetof(QPContext, x) |
|
|
|
|
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
|
|
|
|
|
|
|
|
@ -55,7 +57,6 @@ static int config_input(AVFilterLink *inlink) |
|
|
|
|
int i; |
|
|
|
|
int ret; |
|
|
|
|
AVExpr *e = NULL; |
|
|
|
|
static const char *const var_names[] = { "known", "qp", "x", "y", "w", "h", NULL }; |
|
|
|
|
|
|
|
|
|
if (!s->qp_expr_str) |
|
|
|
|
return 0; |
|
|
|
@ -144,7 +145,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
|
|
|
|
AVVideoBlockParams *b = av_video_enc_params_block(par_out, block_idx); |
|
|
|
|
int qp = sd_in ? in_qp_global + BLOCK_QP_DELTA(block_idx) : NAN; |
|
|
|
|
double var_values[] = { !!sd_in, qp, x, y, s->qstride, s->h, 0}; |
|
|
|
|
static const char *const var_names[] = { "known", "qp", "x", "y", "w", "h", NULL }; |
|
|
|
|
double temp_val; |
|
|
|
|
|
|
|
|
|
ret = av_expr_parse_and_eval(&temp_val, s->qp_expr_str, |
|
|
|
|