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, <ime);
>
> @@ -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