From 940d3cc0b0762f8beb8a12542e7553c17032ed3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Wed, 28 Dec 2011 10:09:45 +0100 Subject: [PATCH] drawtext: fix hard dependency to lavc (timecode). --- doc/filters.texi | 4 +++- libavfilter/vf_drawtext.c | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/filters.texi b/doc/filters.texi index 3ab72ad4aa..a6021ec9b3 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1226,7 +1226,9 @@ timestamp expressed in seconds, NAN if the input timestamp is unknown @item timecode initial timecode representation in "hh:mm:ss[:;.]ff" format. It can be used -with or without text parameter. @var{rate} option must be specified +with or without text parameter. @var{rate} option must be specified. +Note that timecode options are @emph{not} effective if FFmpeg is build with +@code{--disable-avcodec}. @item r, rate frame rate (timecode only) diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index 9f8558657e..0de5b9f820 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -29,6 +29,7 @@ #include #include +#include "config.h" #include "libavcodec/timecode.h" #include "libavutil/avstring.h" #include "libavutil/colorspace.h" @@ -341,10 +342,16 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) } if (dtext->tc.str) { +#if CONFIG_AVCODEC if (avpriv_init_smpte_timecode(ctx, &dtext->tc) < 0) return AVERROR(EINVAL); if (!dtext->text) dtext->text = av_strdup(""); +#else + av_log(ctx, AV_LOG_ERROR, + "Timecode options are only available if libavfilter is built with libavcodec enabled.\n"); + return AVERROR(EINVAL); +#endif } if (!dtext->text) { @@ -722,11 +729,13 @@ static int draw_text(AVFilterContext *ctx, AVFilterBufferRef *picref, buf_size *= 2; } while ((buf = av_realloc(buf, buf_size))); +#if CONFIG_AVCODEC if (dtext->tc.str) { char tcbuf[sizeof("hh:mm:ss.ff")]; avpriv_timecode_to_string(tcbuf, &dtext->tc, dtext->frame_id++); buf = av_asprintf("%s%s", dtext->text, tcbuf); } +#endif if (!buf) return AVERROR(ENOMEM);