diff options
author | Clément Bœsch <clement.boesch@smartjog.com> | 2012-01-04 17:06:39 +0100 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2012-01-11 18:14:09 +0100 |
commit | f1db99166b2eb0f8b005ec43587a02c03a6d0506 (patch) | |
tree | 85bdfec089023f38fb8c0de7c9cacd2d05e025dc /libavcodec/timecode.c | |
parent | 98aafc5bbfa94cee889399d80177bca10ca202aa (diff) | |
download | ffmpeg-f1db99166b2eb0f8b005ec43587a02c03a6d0506.tar.gz |
timecode: string representation can be negative.
Timecode can be specified with a negative value in MOV...
Diffstat (limited to 'libavcodec/timecode.c')
-rw-r--r-- | libavcodec/timecode.c | 9 |
1 files changed, 7 insertions, 2 deletions
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; } |