History

avfilter/vf_drawtext: cosmetics

yethie committed 3 years ago

Commit ba00ed31 parent 17499f41 file · +44 −45Browse files

Unified · Split

libavfilter/vf_drawtext.c+44−45
@@ -78,8 +78,8 @@ static const char *const var_names[] = { · 77 unmodified lines
7878 "line_h", "lh", ///< line height, same as max_glyph_h
7979 "main_h", "h", "H", ///< height of the input video
8080 "main_w", "w", "W", ///< width of the input video
81− "max_glyph_a", "ascent", ///< max glyph ascent
82− "max_glyph_d", "descent", ///< min glyph descent
81+ "max_glyph_a", "ascent", ///< max glyph ascender
82+ "max_glyph_d", "descent", ///< min glyph descender
8383 "max_glyph_h", ///< max glyph height
8484 "max_glyph_w", ///< max glyph width
8585 "n", ///< number of frame
@@ -161,7 +161,7 @@ typedef struct DrawTextContext { · 75 unmodified lines
161161 int exp_mode; ///< expansion mode to use for the text
162162 int reinit; ///< tells if the filter is being reinited
163163 #if CONFIG_LIBFONTCONFIG
164− uint8_t *font; ///< font to be used
164+ uint8_t *font; ///< font to be used
165165 #endif
166166 uint8_t *fontfile; ///< font to be used
167167 uint8_t *text; ///< text to be drawn
@@ -227,25 +227,25 @@ typedef struct DrawTextContext { · 59 unmodified lines
227227 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
228228
229229 static const AVOption drawtext_options[]= {
230− {"fontfile", "set font file", OFFSET(fontfile), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
231− {"text", "set text", OFFSET(text), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
232− {"textfile", "set text file", OFFSET(textfile), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
233− {"fontcolor", "set foreground color", OFFSET(fontcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
230+ {"fontfile", "set font file", OFFSET(fontfile), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
231+ {"text", "set text", OFFSET(text), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
232+ {"textfile", "set text file", OFFSET(textfile), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
233+ {"fontcolor", "set foreground color", OFFSET(fontcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
234234 {"fontcolor_expr", "set foreground color expression", OFFSET(fontcolor_expr), AV_OPT_TYPE_STRING, {.str=""}, 0, 0, FLAGS},
235− {"boxcolor", "set box color", OFFSET(boxcolor.rgba), AV_OPT_TYPE_COLOR, {.str="white"}, 0, 0, FLAGS},
236− {"bordercolor", "set border color", OFFSET(bordercolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
237− {"shadowcolor", "set shadow color", OFFSET(shadowcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
238− {"box", "set box", OFFSET(draw_box), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 , FLAGS},
239− {"boxborderw", "set box border width", OFFSET(boxborderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
240− {"line_spacing", "set line spacing in pixels", OFFSET(line_spacing), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX,FLAGS},
241− {"fontsize", "set font size", OFFSET(fontsize_expr), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0 , FLAGS},
242− {"x", "set x expression", OFFSET(x_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
243− {"y", "set y expression", OFFSET(y_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
244− {"shadowx", "set shadow x offset", OFFSET(shadowx), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
245− {"shadowy", "set shadow y offset", OFFSET(shadowy), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
246− {"borderw", "set border width", OFFSET(borderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
247− {"tabsize", "set tab size", OFFSET(tabsize), AV_OPT_TYPE_INT, {.i64=4}, 0, INT_MAX , FLAGS},
248− {"basetime", "set base time", OFFSET(basetime), AV_OPT_TYPE_INT64, {.i64=AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX , FLAGS},
235+ {"boxcolor", "set box color", OFFSET(boxcolor.rgba), AV_OPT_TYPE_COLOR, {.str="white"}, 0, 0, FLAGS},
236+ {"bordercolor", "set border color", OFFSET(bordercolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
237+ {"shadowcolor", "set shadow color", OFFSET(shadowcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
238+ {"box", "set box", OFFSET(draw_box), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
239+ {"boxborderw", "set box borders width", OFFSET(boxborderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
240+ {"line_spacing", "set line spacing in pixels", OFFSET(line_spacing), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
241+ {"fontsize", "set font size", OFFSET(fontsize_expr), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
242+ {"x", "set x expression", OFFSET(x_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
243+ {"y", "set y expression", OFFSET(y_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
244+ {"shadowx", "set shadow x offset", OFFSET(shadowx), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
245+ {"shadowy", "set shadow y offset", OFFSET(shadowy), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
246+ {"borderw", "set border width", OFFSET(borderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
247+ {"tabsize", "set tab size", OFFSET(tabsize), AV_OPT_TYPE_INT, {.i64=4}, 0, INT_MAX, FLAGS},
248+ {"basetime", "set base time", OFFSET(basetime), AV_OPT_TYPE_INT64, {.i64=AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX, FLAGS},
249249 #if CONFIG_LIBFONTCONFIG
250250 { "font", "Font name", OFFSET(font), AV_OPT_TYPE_STRING, { .str = "Sans" }, .flags = FLAGS },
251251 #endif
@@ -256,15 +256,15 @@ static const AVOption drawtext_options[]= { · 4 unmodified lines
256256 {"strftime", "set strftime expansion (deprecated)", OFFSET(exp_mode), AV_OPT_TYPE_CONST, {.i64=EXP_STRFTIME}, 0, 0, FLAGS, "expansion"},
257257
258258 {"timecode", "set initial timecode", OFFSET(tc_opt_string), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
259− {"tc24hmax", "set 24 hours max (timecode only)", OFFSET(tc24hmax), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
260− {"timecode_rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
261− {"r", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
262− {"rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
263− {"reload", "reload text file at specified frame interval", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
264− { "alpha", "apply alpha while rendering", OFFSET(a_expr), AV_OPT_TYPE_STRING, { .str = "1" }, .flags = FLAGS },
265− {"fix_bounds", "check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
266− {"start_number", "start frame number for n/frame_num variable", OFFSET(start_number), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
267− {"text_source", "the source of text", OFFSET(text_source_string), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS },
259+ {"tc24hmax", "set 24 hours max (timecode only)", OFFSET(tc24hmax), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
260+ {"timecode_rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
261+ {"r", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
262+ {"rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
263+ {"reload", "reload text file at specified frame interval", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
264+ {"alpha", "apply alpha while rendering", OFFSET(a_expr), AV_OPT_TYPE_STRING, {.str = "1"}, .flags = FLAGS},
265+ {"fix_bounds", "check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
266+ {"start_number", "start frame number for n/frame_num variable", OFFSET(start_number), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
267+ {"text_source", "the source of text", OFFSET(text_source_string), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS },
268268
269269 #if CONFIG_LIBFRIBIDI
270270 {"text_shaping", "attempt to shape text before drawing", OFFSET(text_shaping), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, FLAGS},
@@ -324,9 +324,9 @@ static int glyph_cmp(const void *key, const void *b) · 53 unmodified lines
324324 int64_t diff = (int64_t)a->code - (int64_t)bb->code;
325325
326326 if (diff != 0)
327− return diff > 0 ? 1 : -1;
327+ return diff > 0 ? 1 : -1;
328328 else
329− return FFDIFFSIGN((int64_t)a->fontsize, (int64_t)bb->fontsize);
329+ return FFDIFFSIGN((int64_t)a->fontsize, (int64_t)bb->fontsize);
330330 }
331331
332332 /**
@@ -447,7 +447,6 @@ static av_cold int update_fontsize(AVFilterContext *ctx) · 114 unmodified lines
447447 return err;
448448
449449 size = av_expr_eval(s->fontsize_pexpr, s->var_values, &s->prng);
450−
451450 if (!isnan(size)) {
452451 roundedsize = round(size);
453452 // test for overflow before cast
@@ -455,7 +454,6 @@ static av_cold int update_fontsize(AVFilterContext *ctx) · 1 unmodified line
455454 av_log(ctx, AV_LOG_ERROR, "fontsize overflow\n");
456455 return AVERROR(EINVAL);
457456 }
458−
459457 fontsize = roundedsize;
460458 }
461459 }
@@ -556,7 +554,7 @@ static int load_font_fontconfig(AVFilterContext *ctx) · 94 unmodified lines
556554 goto fail;
557555 }
558556
559− av_log(ctx, AV_LOG_INFO, "Using \"%s\"\n", filename);
557+ av_log(ctx, AV_LOG_VERBOSE, "Using \"%s\"\n", filename);
560558 if (parse_err)
561559 s->default_fontsize = size + 0.5;
562560
@@ -698,6 +696,7 @@ static int shape_text(AVFilterContext *ctx) · 135 unmodified lines
698696 s->text = tmp;
699697 len = fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8,
700698 unicodestr, len, s->text);
699+
701700 ret = 0;
702701
703702 out:
@@ -888,15 +887,15 @@ static int config_input(AVFilterLink *inlink) · 184 unmodified lines
888887 ff_draw_color(&s->dc, &s->bordercolor, s->bordercolor.rgba);
889888 ff_draw_color(&s->dc, &s->boxcolor, s->boxcolor.rgba);
890889
891− s->var_values[VAR_w] = s->var_values[VAR_W] = s->var_values[VAR_MAIN_W] = inlink->w;
892− s->var_values[VAR_h] = s->var_values[VAR_H] = s->var_values[VAR_MAIN_H] = inlink->h;
893− s->var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? av_q2d(inlink->sample_aspect_ratio) : 1;
894− s->var_values[VAR_DAR] = (double)inlink->w / inlink->h * s->var_values[VAR_SAR];
895− s->var_values[VAR_HSUB] = 1 << s->dc.hsub_max;
896− s->var_values[VAR_VSUB] = 1 << s->dc.vsub_max;
897− s->var_values[VAR_X] = NAN;
898− s->var_values[VAR_Y] = NAN;
899− s->var_values[VAR_T] = NAN;
890+ s->var_values[VAR_w] = s->var_values[VAR_W] = s->var_values[VAR_MAIN_W] = inlink->w;
891+ s->var_values[VAR_h] = s->var_values[VAR_H] = s->var_values[VAR_MAIN_H] = inlink->h;
892+ s->var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? av_q2d(inlink->sample_aspect_ratio) : 1;
893+ s->var_values[VAR_DAR] = (double)inlink->w / inlink->h * s->var_values[VAR_SAR];
894+ s->var_values[VAR_HSUB] = 1 << s->dc.hsub_max;
895+ s->var_values[VAR_VSUB] = 1 << s->dc.vsub_max;
896+ s->var_values[VAR_X] = NAN;
897+ s->var_values[VAR_Y] = NAN;
898+ s->var_values[VAR_T] = NAN;
900899
901900 av_lfg_init(&s->prng, av_get_random_seed());
902901
@@ -1423,7 +1422,7 @@ static int draw_text(AVFilterContext *ctx, AVFrame *frame, · 520 unmodified lines
14231422
14241423 av_bprint_clear(bp);
14251424
1426− if(s->basetime != AV_NOPTS_VALUE)
1425+ if (s->basetime != AV_NOPTS_VALUE)
14271426 now= frame->pts*av_q2d(ctx->inputs[0]->time_base) + s->basetime/1000000;
14281427
14291428 switch (s->exp_mode) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t