Message ID | 93845222-e997-4977-b57b-6964b29ca6dd@YW-A2526-D.local |
---|---|
State | New |
Headers | show |
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 --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);
Signed-off-by: efren yang <efren_yang@163.com> --- libavfilter/vf_drawtext.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)