vf_drawtext: do not reset "n" variable to 0 in case the filter is reinited

This commit is contained in:
Stefano Sabatini 2011-09-23 15:37:47 +02:00
parent 01fbcc6fd6
commit 80daa247d8

View File

@ -96,6 +96,7 @@ enum var_name {
typedef struct {
const AVClass *class;
int reinit; ///< tells if the filter is being reinited
uint8_t *fontfile; ///< font to be used
uint8_t *text; ///< text to be drawn
uint8_t *expanded_text; ///< used to contain the strftime()-expanded text
@ -469,7 +470,8 @@ static int config_input(AVFilterLink *inlink)
dtext->var_values[VAR_VSUB] = 1<<pix_desc->log2_chroma_h;
dtext->var_values[VAR_X] = NAN;
dtext->var_values[VAR_Y] = NAN;
dtext->var_values[VAR_N] = 0;
if (!dtext->reinit)
dtext->var_values[VAR_N] = 0;
dtext->var_values[VAR_T] = NAN;
if ((ret = av_expr_parse(&dtext->x_pexpr, dtext->x_expr, var_names,
@ -483,9 +485,12 @@ static int config_input(AVFilterLink *inlink)
static int command(AVFilterContext *ctx, const char *cmd, const char *arg, char *res, int res_len, int flags)
{
DrawTextContext *dtext = ctx->priv;
if(!strcmp(cmd, "reinit")){
int ret;
uninit(ctx);
dtext->reinit = 1;
if((ret=init(ctx, arg, NULL)) < 0)
return ret;
return config_input(ctx->inputs[0]);