added start_number parameter to drawtext to permit an offset to n/frame_num var

This commit is contained in:
Mark Visser 2013-05-21 16:14:46 -04:00
parent 7fff3df6b2
commit 0defc77e9d
2 changed files with 7 additions and 1 deletions

View File

@ -3068,6 +3068,10 @@ The x and y offsets for the text shadow position with respect to the
position of the text. They can be either positive or negative position of the text. They can be either positive or negative
values. Default value for both is "0". values. Default value for both is "0".
@item start_number
The starting frame number for the n/frame_num variable. The default value
is "0".
@item tabsize @item tabsize
The size in number of spaces to use for rendering the tab. The size in number of spaces to use for rendering the tab.
Default value is 4. Default value is 4.

View File

@ -164,6 +164,7 @@ typedef struct {
AVTimecode tc; ///< timecode context AVTimecode tc; ///< timecode context
int tc24hmax; ///< 1 if timecode is wrapped to 24 hours, 0 otherwise int tc24hmax; ///< 1 if timecode is wrapped to 24 hours, 0 otherwise
int reload; ///< reload text file for each frame int reload; ///< reload text file for each frame
int start_number; ///< starting frame number for n/frame_num var
} DrawTextContext; } DrawTextContext;
#define OFFSET(x) offsetof(DrawTextContext, x) #define OFFSET(x) offsetof(DrawTextContext, x)
@ -198,6 +199,7 @@ static const AVOption drawtext_options[]= {
{"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 for each frame", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, FLAGS}, {"reload", "reload text file for each frame", OFFSET(reload), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, FLAGS},
{"fix_bounds", "if true, check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, FLAGS}, {"fix_bounds", "if true, check and fix text coords to avoid clipping", OFFSET(fix_bounds), AV_OPT_TYPE_INT, {.i64=1}, 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},
/* FT_LOAD_* flags */ /* FT_LOAD_* flags */
{ "ft_load_flags", "set font loading flags for libfreetype", OFFSET(ft_load_flags), AV_OPT_TYPE_FLAGS, { .i64 = FT_LOAD_DEFAULT | FT_LOAD_RENDER}, 0, INT_MAX, FLAGS, "ft_load_flags" }, { "ft_load_flags", "set font loading flags for libfreetype", OFFSET(ft_load_flags), AV_OPT_TYPE_FLAGS, { .i64 = FT_LOAD_DEFAULT | FT_LOAD_RENDER}, 0, INT_MAX, FLAGS, "ft_load_flags" },
@ -614,7 +616,7 @@ static int func_frame_num(AVFilterContext *ctx, AVBPrint *bp,
{ {
DrawTextContext *s = ctx->priv; DrawTextContext *s = ctx->priv;
av_bprintf(bp, "%d", (int)s->var_values[VAR_N]); av_bprintf(bp, "%d", (int)s->var_values[VAR_N]+s->start_number);
return 0; return 0;
} }