summaryrefslogtreecommitdiff
path: root/libavcodec/timecode.c
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2011-12-26 11:06:00 +0100
committerClément Bœsch <ubitux@gmail.com>2011-12-26 11:13:25 +0100
commit831f6cd6059222aaa68eeab52fd63b4555dc38b8 (patch)
treed79925ff98c492b84a27be907509d186c4ef6d8b /libavcodec/timecode.c
parent357cb53306a7bc7fcb0d3fa870cabd1d63abbe75 (diff)
timecode: fix drop frame in avpriv_timecode_to_string().
Diffstat (limited to 'libavcodec/timecode.c')
-rw-r--r--libavcodec/timecode.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/timecode.c b/libavcodec/timecode.c
index fd996edfad..2f7bd64e39 100644
--- a/libavcodec/timecode.c
+++ b/libavcodec/timecode.c
@@ -83,13 +83,14 @@ char *avpriv_timecode_to_string(char *buf, const struct ff_timecode *tc, unsigne
{
int frame_num = tc->start + frame;
int fps = (tc->rate.num + tc->rate.den/2) / tc->rate.den;
- int ff = frame_num % fps;
- int ss = frame_num / fps % 60;
- int mm = frame_num / (fps*60) % 60;
- int hh = frame_num / (fps*3600) % 24;
+ int hh, mm, ss, ff;
if (tc->drop)
frame_num = avpriv_framenum_to_drop_timecode(frame_num);
+ ff = frame_num % fps;
+ ss = frame_num / fps % 60;
+ mm = frame_num / (fps*60) % 60;
+ hh = frame_num / (fps*3600) % 24;
snprintf(buf, sizeof("hh:mm:ss.ff"), "%02d:%02d:%02d%c%02d",
hh, mm, ss, tc->drop ? ';' : ':', ff);
return buf;