diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-04-23 03:27:42 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-23 03:35:28 +0200 |
commit | a9a537b154aaa48bc8154b2c4472f01eb9750784 (patch) | |
tree | f9f73d22570945d0bca6a0682e9798d5faf6f183 /libavfilter/vf_drawtext.c | |
parent | 15d2f26998909ffd7d2779946df9d8e0c07efbcf (diff) | |
download | ffmpeg-a9a537b154aaa48bc8154b2c4472f01eb9750784.tar.gz |
avfilter/drawtext: add pict_type support
Fixes Ticket2470
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_drawtext.c')
-rw-r--r-- | libavfilter/vf_drawtext.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index c404fa53c5..ef5bb03be4 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -72,6 +72,7 @@ static const char *const var_names[] = { "text_w", "tw", ///< width of the rendered text "x", "y", + "pict_type", NULL }; @@ -108,6 +109,7 @@ enum var_name { VAR_TEXT_W, VAR_TW, VAR_X, VAR_Y, + VAR_PICT_TYPE, VAR_VARS_NB }; @@ -608,6 +610,15 @@ static int command(AVFilterContext *ctx, const char *cmd, const char *arg, char return AVERROR(ENOSYS); } +static int func_pict_type(AVFilterContext *ctx, AVBPrint *bp, + char *fct, unsigned argc, char **argv, int tag) +{ + DrawTextContext *dtext = ctx->priv; + + av_bprintf(bp, "%c", av_get_picture_type_char(dtext->var_values[VAR_PICT_TYPE])); + return 0; +} + static int func_pts(AVFilterContext *ctx, AVBPrint *bp, char *fct, unsigned argc, char **argv, int tag) { @@ -677,6 +688,7 @@ static const struct drawtext_function { } functions[] = { { "expr", 1, 1, 0, func_eval_expr }, { "e", 1, 1, 0, func_eval_expr }, + { "pict_type", 0, 0, 0, func_pict_type }, { "pts", 0, 0, 0, func_pts }, { "gmtime", 0, 1, 'G', func_strftime }, { "localtime", 0, 1, 'L', func_strftime }, @@ -987,6 +999,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) dtext->var_values[VAR_T] = frame->pts == AV_NOPTS_VALUE ? NAN : frame->pts * av_q2d(inlink->time_base); + dtext->var_values[VAR_PICT_TYPE] = frame->pict_type; + draw_text(ctx, frame, frame->width, frame->height); av_log(ctx, AV_LOG_DEBUG, "n:%d t:%f text_w:%d text_h:%d x:%d y:%d\n", |