Browse Source

drawtext: fix hard dependency to lavc (timecode).

tags/n0.10
Clément Bœsch Clément Bœsch 14 years ago
parent
commit
940d3cc0b0
2 changed files with 12 additions and 1 deletions
  1. +3
    -1
      doc/filters.texi
  2. +9
    -0
      libavfilter/vf_drawtext.c

+ 3
- 1
doc/filters.texi View File

@@ -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)


+ 9
- 0
libavfilter/vf_drawtext.c View File

@@ -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);


Loading…
Cancel
Save