diff mbox

[FFmpeg-devel] vf_drawtext: support to set glyph spacing while drawing text. ./ffmpeg -i input -vf drawtext="glyph_spacing=10:textfile=1.txt:fontfile=demo.ttf" -f flv 1.flv could set glyph spacing 10 pixel.

Message ID 93845222-e997-4977-b57b-6964b29ca6dd@YW-A2526-D.local
State New
Headers show

Commit Message

efren yang July 20, 2017, 9:46 a.m. UTC
Signed-off-by: efren yang <efren_yang@163.com>
---
 libavfilter/vf_drawtext.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Moritz Barsnick July 20, 2017, 11:59 a.m. UTC | #1
On Thu, Jul 20, 2017 at 17:46:25 +0800, efren yang wrote:

> Subject: [FFmpeg-devel] [PATCH] vf_drawtext: support to set glyph spacing while drawing text. ./ffmpeg -i input -vf
>        drawtext="glyph_spacing=10:textfile=1.txt:fontfile=demo.ttf" -f flv 1.flv could set glyph spacing 10 pixel.

As Nicolas wrote, this needs to be fixed.

a) Please prefix "libavfilter/vf_drawtext" or "lavfi/vf_drawtext".
b) There needs to be an empty line in the commit message before the
following text, otherwise, everything gets compressed into one line as
above.
c) The example is probably too simple to be worth mentioning.

Please also add the requested documentation of the filter option to
doc/filters.texi.

Your patch is on top of your other patch. Don't do that, the other one
wasn't accepted. Always provide a patch against master HEAD. (You
should locally squash your two commits into one, e.g. on another new
branch, and submit that squashed commit.)

> -    int word_spacing;               ///< word spacing in pixels
> +    int glyph_spacing;               ///< glyph spacing in pixels
                                       ^
Your renaming shifted the whitespace/indentation.

>      {"line_spacing",  "set line spacing in pixels", OFFSET(line_spacing),   AV_OPT_TYPE_INT,    {.i64=0},     INT_MIN,  INT_MAX,FLAGS},
> -    {"word_spacing",  "set word spacing in pixels", OFFSET(word_spacing),   AV_OPT_TYPE_INT,{ .i64 = 0 },     INT_MIN,  INT_MAX,FLAGS },
> +    {"glyph_spacing",  "set glyph spacing in pixels", OFFSET(glyph_spacing),   AV_OPT_TYPE_INT,{ .i64 = 0 },     INT_MIN,  INT_MAX,FLAGS },
                                                                               ^                  ^
You lost alignment of the parameters, and your bracket alignment might
as well correspond to that of the line "line_spacing".

Moritz
diff mbox

Patch

diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 137ae5891e..ceeee96c5a 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -162,7 +162,7 @@  typedef struct DrawTextContext {
     unsigned int default_fontsize;  ///< default font size to use
 
     int line_spacing;               ///< lines spacing in pixels
-    int word_spacing;               ///< word spacing in pixels
+    int glyph_spacing;               ///< glyph spacing in pixels
     short int draw_box;             ///< draw box around text - true or false
     int boxborderw;                 ///< box border width
     int use_kerning;                ///< font kerning is used - true/false
@@ -215,7 +215,7 @@  static const AVOption drawtext_options[]= {
     {"box",         "set box",              OFFSET(draw_box),           AV_OPT_TYPE_BOOL,   {.i64=0},     0,        1       , FLAGS},
     {"boxborderw",  "set box border width", OFFSET(boxborderw),         AV_OPT_TYPE_INT,    {.i64=0},     INT_MIN,  INT_MAX , FLAGS},
     {"line_spacing",  "set line spacing in pixels", OFFSET(line_spacing),   AV_OPT_TYPE_INT,    {.i64=0},     INT_MIN,  INT_MAX,FLAGS},
-    {"word_spacing",  "set word spacing in pixels", OFFSET(word_spacing),   AV_OPT_TYPE_INT,{ .i64 = 0 },     INT_MIN,  INT_MAX,FLAGS },
+    {"glyph_spacing",  "set glyph spacing in pixels", OFFSET(glyph_spacing),   AV_OPT_TYPE_INT,{ .i64 = 0 },     INT_MIN,  INT_MAX,FLAGS },
     {"fontsize",    "set font size",        OFFSET(fontsize_expr),      AV_OPT_TYPE_STRING, {.str=NULL},  CHAR_MIN, CHAR_MAX , FLAGS},
     {"x",           "set x expression",     OFFSET(x_expr),             AV_OPT_TYPE_STRING, {.str="0"},   CHAR_MIN, CHAR_MAX, FLAGS},
     {"y",           "set y expression",     OFFSET(y_expr),             AV_OPT_TYPE_STRING, {.str="0"},   CHAR_MIN, CHAR_MAX, FLAGS},
@@ -1376,7 +1376,7 @@  static int draw_text(AVFilterContext *ctx, AVFrame *frame,
         s->positions[i].y = y - glyph->bitmap_top + y_max;
         if (code == '\t') x  = (x / s->tabsize + 1)*s->tabsize;
         else              x += glyph->advance;
-        x += s->word_spacing;
+        x += s->glyph_spacing;
     }
 
     max_text_line_w = FFMAX(x, max_text_line_w);