Gyan Doshi (12020-12-01): > Isn't it better to use is_newline() Good idea, thanks.
Regards, -- Nicolas George
From f88d5c977b52da54678e9c752e53cb538bc65cab Mon Sep 17 00:00:00 2001 From: Nicolas George <geo...@nsup.org> Date: Mon, 30 Nov 2020 19:28:36 +0100 Subject: [PATCH] lavfi/drawtext: ignore final LF of textfile. A standard text file ends with a final LF. Without this change, it is interpreted as an empty final line, and visible with the box option. The current behavior can be achieved by actually having an empty line at the end of the file. Fix trac ticket #7948. Signed-off-by: Nicolas George <geo...@nsup.org> --- libavfilter/vf_drawtext.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index abe1ca6c35..7b1000e5bd 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -568,6 +568,11 @@ static int load_font(AVFilterContext *ctx) return err; } +static inline int is_newline(uint32_t c) +{ + return c == '\n' || c == '\r' || c == '\f' || c == '\v'; +} + static int load_textfile(AVFilterContext *ctx) { DrawTextContext *s = ctx->priv; @@ -583,6 +588,8 @@ static int load_textfile(AVFilterContext *ctx) return err; } + if (textbuf_size > 0 && is_newline(textbuf[textbuf_size - 1])) + textbuf_size--; if (textbuf_size > SIZE_MAX - 1 || !(tmp = av_realloc(s->text, textbuf_size + 1))) { av_file_unmap(textbuf, textbuf_size); return AVERROR(ENOMEM); @@ -595,11 +602,6 @@ static int load_textfile(AVFilterContext *ctx) return 0; } -static inline int is_newline(uint32_t c) -{ - return c == '\n' || c == '\r' || c == '\f' || c == '\v'; -} - #if CONFIG_LIBFRIBIDI static int shape_text(AVFilterContext *ctx) { -- 2.29.2
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".