From f1db99166b2eb0f8b005ec43587a02c03a6d0506 Mon Sep 17 00:00:00 2001 From: Clément Bœsch Date: Wed, 4 Jan 2012 17:06:39 +0100 Subject: timecode: string representation can be negative. Timecode can be specified with a negative value in MOV... --- libavcodec/timecode.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'libavcodec/timecode.c') diff --git a/libavcodec/timecode.c b/libavcodec/timecode.c index 95aed96d9e..8e2e599c21 100644 --- a/libavcodec/timecode.c +++ b/libavcodec/timecode.c @@ -83,15 +83,20 @@ 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 hh, mm, ss, ff; + int hh, mm, ss, ff, neg = 0; if (tc->drop) frame_num = avpriv_framenum_to_drop_timecode(frame_num); + if (frame_num < 0) { + frame_num = -frame_num; + neg = 1; + } ff = frame_num % fps; ss = frame_num / fps % 60; mm = frame_num / (fps*60) % 60; hh = frame_num / (fps*3600) % 24; - snprintf(buf, 16, "%02d:%02d:%02d%c%02d", + snprintf(buf, 16, "%s%02d:%02d:%02d%c%02d", + neg ? "-" : "", hh, mm, ss, tc->drop ? ';' : ':', ff); return buf; } -- cgit v1.2.3