Quoting Luca Barbato (2015-08-01 11:22:11)
> ---
>  libavfilter/vf_drawtext.c | 49 
> +++++++++++++++++++++++++++++++----------------
>  1 file changed, 32 insertions(+), 17 deletions(-)
> 
> diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
> index a4d25c2..15c994f 100644
> --- a/libavfilter/vf_drawtext.c
> +++ b/libavfilter/vf_drawtext.c
> @@ -521,28 +521,15 @@ static inline int is_newline(uint32_t c)
>      return c == '\n' || c == '\r' || c == '\f' || c == '\v';
>  }
>  
> -static int dtext_prepare_text(AVFilterContext *ctx)
> +static int expand_strftime(DrawTextContext *s)
>  {
> -    DrawTextContext *s = ctx->priv;
> -    uint32_t code = 0, prev_code = 0;
> -    int x = 0, y = 0, i = 0, ret;
> -    int text_height, baseline;
> -    char *text = s->text;
> -    uint8_t *p;
> -    int str_w = 0, len;
> -    int y_min = 32000, y_max = -32000;
> -    FT_Vector delta;
> -    Glyph *glyph = NULL, *prev_glyph = NULL;
> -    Glyph dummy = { 0 };
> -    int width  = ctx->inputs[0]->w;
> -    int height = ctx->inputs[0]->h;
> -    time_t now = time(0);
>      struct tm ltime;
> +    time_t now   = time(0);
>      uint8_t *buf = s->expanded_text;
>      int buf_size = s->expanded_text_size;
>  
>      if (!buf)
> -        buf_size = 2*strlen(s->text)+1;
> +        buf_size = 2 * strlen(s->text) + 1;
>  
>      localtime_r(&now, &ltime);
>  
> @@ -555,9 +542,37 @@ static int dtext_prepare_text(AVFilterContext *ctx)
>  
>      if (!buf)
>          return AVERROR(ENOMEM);
> -    text = s->expanded_text = buf;
> +    s->expanded_text      = buf;
>      s->expanded_text_size = buf_size;
>  
> +    return 0;
> +}
> +
> +static int dtext_prepare_text(AVFilterContext *ctx)
> +{
> +    DrawTextContext *s = ctx->priv;
> +    uint32_t code = 0, prev_code = 0;
> +    int x = 0, y = 0, i = 0, ret;
> +    int text_height, baseline;
> +    char *text;
> +    uint8_t *p;
> +    int str_w = 0, len;
> +    int y_min = 32000, y_max = -32000;
> +    FT_Vector delta;
> +    Glyph *glyph = NULL, *prev_glyph = NULL;
> +    Glyph dummy = { 0 };
> +    int width  = ctx->inputs[0]->w;
> +    int height = ctx->inputs[0]->h;
> +
> +    ret = expand_strftime(s);
> +    if (ret < 0)
> +        return ret;
> +
> +    if (s->expanded_text)
> +        text = s->expanded_text;
> +    else
> +        text = s->text;

nit: I think this would look better as text = foo ? bar : baz;

Otherwise looks good.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to