mirror of https://git.ffmpeg.org/ffmpeg.git
drawtext: fix hard dependency to lavc (timecode).
This commit is contained in:
parent
e2c1d3ec41
commit
940d3cc0b0
|
@ -1226,7 +1226,9 @@ timestamp expressed in seconds, NAN if the input timestamp is unknown
|
||||||
|
|
||||||
@item timecode
|
@item timecode
|
||||||
initial timecode representation in "hh:mm:ss[:;.]ff" format. It can be used
|
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
|
@item r, rate
|
||||||
frame rate (timecode only)
|
frame rate (timecode only)
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
#include "libavcodec/timecode.h"
|
#include "libavcodec/timecode.h"
|
||||||
#include "libavutil/avstring.h"
|
#include "libavutil/avstring.h"
|
||||||
#include "libavutil/colorspace.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 (dtext->tc.str) {
|
||||||
|
#if CONFIG_AVCODEC
|
||||||
if (avpriv_init_smpte_timecode(ctx, &dtext->tc) < 0)
|
if (avpriv_init_smpte_timecode(ctx, &dtext->tc) < 0)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
if (!dtext->text)
|
if (!dtext->text)
|
||||||
dtext->text = av_strdup("");
|
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) {
|
if (!dtext->text) {
|
||||||
|
@ -722,11 +729,13 @@ static int draw_text(AVFilterContext *ctx, AVFilterBufferRef *picref,
|
||||||
buf_size *= 2;
|
buf_size *= 2;
|
||||||
} while ((buf = av_realloc(buf, buf_size)));
|
} while ((buf = av_realloc(buf, buf_size)));
|
||||||
|
|
||||||
|
#if CONFIG_AVCODEC
|
||||||
if (dtext->tc.str) {
|
if (dtext->tc.str) {
|
||||||
char tcbuf[sizeof("hh:mm:ss.ff")];
|
char tcbuf[sizeof("hh:mm:ss.ff")];
|
||||||
avpriv_timecode_to_string(tcbuf, &dtext->tc, dtext->frame_id++);
|
avpriv_timecode_to_string(tcbuf, &dtext->tc, dtext->frame_id++);
|
||||||
buf = av_asprintf("%s%s", dtext->text, tcbuf);
|
buf = av_asprintf("%s%s", dtext->text, tcbuf);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
Loading…
Reference in New Issue