[FFmpeg-devel] [PATCH] lavu/timecode: clarify error msg for timecode_rate

Gyan Doshi gyandoshi at gmail.com
Sun Nov 5 18:10:41 EET 2017


Prompted by an issue reported at StackExchange, patch changes error 
message for timecode_rate values below 1.

The user-supplied value for timecode_rate in drawtext is rounded
to nearest integer. So, a supplied value of 0.49 or lower is rounded to 
0. This throws a misleading error message which says "Timecode frame 
rate must be specified". Changed message to account for values under one.

Also noted supported framerates for drop TC.

Regards,
Gyan
-------------- next part --------------
From ef152e77da4d1ea40d452b9cc86dcc51df1e20a7 Mon Sep 17 00:00:00 2001
From: Gyan Doshi <gyandoshi at gmail.com>
Date: Sun, 5 Nov 2017 21:29:22 +0530
Subject: [PATCH] lavu/timecode: clarify error msg for timecode_rate

The user-supplied value for timecode_rate in drawtext is rounded
to nearest integer. So, a supplied value of 0.49 or lower is rounded to 0.
This throws a misleading error message which says "Timecode frame rate must be
specified". Changed message to account for values under one.

Also noted supported framerates for drop TC.
---
 doc/filters.texi     | 4 +++-
 libavutil/timecode.c | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index 6f6dfcff48..61e27fea6f 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -7365,7 +7365,9 @@ format. It can be used with or without text parameter. @var{timecode_rate}
 option must be specified.
 
 @item timecode_rate, rate, r
-Set the timecode frame rate (timecode only).
+Set the timecode frame rate (timecode only). Value will be rounded to nearest
+integer. Minimum value is "1".
+Drop-frame timecode is supported for frame rates 30 & 60.
 
 @item tc24hmax
 If set to 1, the output of the timecode option will wrap around at 24 hours.
diff --git a/libavutil/timecode.c b/libavutil/timecode.c
index c0c67c8478..e9d8504ee7 100644
--- a/libavutil/timecode.c
+++ b/libavutil/timecode.c
@@ -155,7 +155,7 @@ static int check_fps(int fps)
 static int check_timecode(void *log_ctx, AVTimecode *tc)
 {
     if ((int)tc->fps <= 0) {
-        av_log(log_ctx, AV_LOG_ERROR, "Timecode frame rate must be specified\n");
+        av_log(log_ctx, AV_LOG_ERROR, "Valid timecode frame rate must be specified. Minimum value is 1\n");
         return AVERROR(EINVAL);
     }
     if ((tc->flags & AV_TIMECODE_FLAG_DROPFRAME) && tc->fps != 30 && tc->fps != 60) {
-- 
2.12.2.windows.2


More information about the ffmpeg-devel mailing list