avfilter/vf_drawtext: cosmetics
This commit is contained in:
parent
17499f43b1
commit
ba00ed33e5
@ -78,8 +78,8 @@ static const char *const var_names[] = {
|
|||||||
"line_h", "lh", ///< line height, same as max_glyph_h
|
"line_h", "lh", ///< line height, same as max_glyph_h
|
||||||
"main_h", "h", "H", ///< height of the input video
|
"main_h", "h", "H", ///< height of the input video
|
||||||
"main_w", "w", "W", ///< width of the input video
|
"main_w", "w", "W", ///< width of the input video
|
||||||
"max_glyph_a", "ascent", ///< max glyph ascent
|
"max_glyph_a", "ascent", ///< max glyph ascender
|
||||||
"max_glyph_d", "descent", ///< min glyph descent
|
"max_glyph_d", "descent", ///< min glyph descender
|
||||||
"max_glyph_h", ///< max glyph height
|
"max_glyph_h", ///< max glyph height
|
||||||
"max_glyph_w", ///< max glyph width
|
"max_glyph_w", ///< max glyph width
|
||||||
"n", ///< number of frame
|
"n", ///< number of frame
|
||||||
@ -235,17 +235,17 @@ static const AVOption drawtext_options[]= {
|
|||||||
{"boxcolor", "set box color", OFFSET(boxcolor.rgba), AV_OPT_TYPE_COLOR, {.str="white"}, 0, 0, FLAGS},
|
{"boxcolor", "set box color", OFFSET(boxcolor.rgba), AV_OPT_TYPE_COLOR, {.str="white"}, 0, 0, FLAGS},
|
||||||
{"bordercolor", "set border color", OFFSET(bordercolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
|
{"bordercolor", "set border color", OFFSET(bordercolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
|
||||||
{"shadowcolor", "set shadow color", OFFSET(shadowcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
|
{"shadowcolor", "set shadow color", OFFSET(shadowcolor.rgba), AV_OPT_TYPE_COLOR, {.str="black"}, 0, 0, FLAGS},
|
||||||
{"box", "set box", OFFSET(draw_box), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1 , FLAGS},
|
{"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},
|
{"boxborderw", "set box borders 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},
|
{"line_spacing", "set line spacing in pixels", OFFSET(line_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}, 0, 0 , FLAGS},
|
{"fontsize", "set font size", OFFSET(fontsize_expr), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 0, FLAGS},
|
||||||
{"x", "set x expression", OFFSET(x_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
|
{"x", "set x expression", OFFSET(x_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
|
||||||
{"y", "set y expression", OFFSET(y_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
|
{"y", "set y expression", OFFSET(y_expr), AV_OPT_TYPE_STRING, {.str="0"}, 0, 0, FLAGS},
|
||||||
{"shadowx", "set shadow x offset", OFFSET(shadowx), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
|
{"shadowx", "set shadow x offset", OFFSET(shadowx), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
|
||||||
{"shadowy", "set shadow y offset", OFFSET(shadowy), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
|
{"shadowy", "set shadow y offset", OFFSET(shadowy), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
|
||||||
{"borderw", "set border width", OFFSET(borderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX , FLAGS},
|
{"borderw", "set border width", OFFSET(borderw), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS},
|
||||||
{"tabsize", "set tab size", OFFSET(tabsize), AV_OPT_TYPE_INT, {.i64=4}, 0, INT_MAX , FLAGS},
|
{"tabsize", "set tab size", OFFSET(tabsize), AV_OPT_TYPE_INT, {.i64=4}, 0, INT_MAX, FLAGS},
|
||||||
{"basetime", "set base time", OFFSET(basetime), AV_OPT_TYPE_INT64, {.i64=AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX , FLAGS},
|
{"basetime", "set base time", OFFSET(basetime), AV_OPT_TYPE_INT64, {.i64=AV_NOPTS_VALUE}, INT64_MIN, INT64_MAX, FLAGS},
|
||||||
#if CONFIG_LIBFONTCONFIG
|
#if CONFIG_LIBFONTCONFIG
|
||||||
{ "font", "Font name", OFFSET(font), AV_OPT_TYPE_STRING, { .str = "Sans" }, .flags = FLAGS },
|
{ "font", "Font name", OFFSET(font), AV_OPT_TYPE_STRING, { .str = "Sans" }, .flags = FLAGS },
|
||||||
#endif
|
#endif
|
||||||
@ -261,7 +261,7 @@ static const AVOption drawtext_options[]= {
|
|||||||
{"r", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
|
{"r", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
|
||||||
{"rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
|
{"rate", "set rate (timecode only)", OFFSET(tc_rate), AV_OPT_TYPE_RATIONAL, {.dbl=0}, 0, INT_MAX, FLAGS},
|
||||||
{"reload", "reload text file at specified frame interval", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
|
{"reload", "reload text file at specified frame interval", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
|
||||||
{ "alpha", "apply alpha while rendering", OFFSET(a_expr), AV_OPT_TYPE_STRING, { .str = "1" }, .flags = FLAGS },
|
{"alpha", "apply alpha while rendering", OFFSET(a_expr), AV_OPT_TYPE_STRING, {.str = "1"}, .flags = FLAGS},
|
||||||
{"fix_bounds", "check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
|
{"fix_bounds", "check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
|
||||||
{"start_number", "start frame number for n/frame_num variable", OFFSET(start_number), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
|
{"start_number", "start frame number for n/frame_num variable", OFFSET(start_number), AV_OPT_TYPE_INT, {.i64=0}, 0, INT_MAX, FLAGS},
|
||||||
{"text_source", "the source of text", OFFSET(text_source_string), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS },
|
{"text_source", "the source of text", OFFSET(text_source_string), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS },
|
||||||
@ -447,7 +447,6 @@ static av_cold int update_fontsize(AVFilterContext *ctx)
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
size = av_expr_eval(s->fontsize_pexpr, s->var_values, &s->prng);
|
size = av_expr_eval(s->fontsize_pexpr, s->var_values, &s->prng);
|
||||||
|
|
||||||
if (!isnan(size)) {
|
if (!isnan(size)) {
|
||||||
roundedsize = round(size);
|
roundedsize = round(size);
|
||||||
// test for overflow before cast
|
// test for overflow before cast
|
||||||
@ -455,7 +454,6 @@ static av_cold int update_fontsize(AVFilterContext *ctx)
|
|||||||
av_log(ctx, AV_LOG_ERROR, "fontsize overflow\n");
|
av_log(ctx, AV_LOG_ERROR, "fontsize overflow\n");
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
fontsize = roundedsize;
|
fontsize = roundedsize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -556,7 +554,7 @@ static int load_font_fontconfig(AVFilterContext *ctx)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
av_log(ctx, AV_LOG_INFO, "Using \"%s\"\n", filename);
|
av_log(ctx, AV_LOG_VERBOSE, "Using \"%s\"\n", filename);
|
||||||
if (parse_err)
|
if (parse_err)
|
||||||
s->default_fontsize = size + 0.5;
|
s->default_fontsize = size + 0.5;
|
||||||
|
|
||||||
@ -698,6 +696,7 @@ static int shape_text(AVFilterContext *ctx)
|
|||||||
s->text = tmp;
|
s->text = tmp;
|
||||||
len = fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8,
|
len = fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8,
|
||||||
unicodestr, len, s->text);
|
unicodestr, len, s->text);
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
@ -1423,7 +1422,7 @@ static int draw_text(AVFilterContext *ctx, AVFrame *frame,
|
|||||||
|
|
||||||
av_bprint_clear(bp);
|
av_bprint_clear(bp);
|
||||||
|
|
||||||
if(s->basetime != AV_NOPTS_VALUE)
|
if (s->basetime != AV_NOPTS_VALUE)
|
||||||
now= frame->pts*av_q2d(ctx->inputs[0]->time_base) + s->basetime/1000000;
|
now= frame->pts*av_q2d(ctx->inputs[0]->time_base) + s->basetime/1000000;
|
||||||
|
|
||||||
switch (s->exp_mode) {
|
switch (s->exp_mode) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user