[FFmpeg-cvslog] drawtext: fix hard dependency to lavc (timecode).

Clément Bœsch git at videolan.org
Mon Jan 2 15:35:02 CET 2012


ffmpeg | branch: master | Clément Bœsch <clement.boesch at smartjog.com> | Wed Dec 28 10:09:45 2011 +0100| [940d3cc0b0762f8beb8a12542e7553c17032ed3d] | committer: Clément Bœsch

drawtext: fix hard dependency to lavc (timecode).

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=940d3cc0b0762f8beb8a12542e7553c17032ed3d
---

 doc/filters.texi          |    4 +++-
 libavfilter/vf_drawtext.c |    9 +++++++++
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 3ab72ad..a6021ec 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
+ at code{--disable-avcodec}.
 
 @item r, rate
 frame rate (timecode only)
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 9f85586..0de5b9f 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -29,6 +29,7 @@
 #include <sys/time.h>
 #include <time.h>
 
+#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);



More information about the ffmpeg-cvslog mailing list