From f5c52f500aae257eb979cdc13b66f1203230b525 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 4 Aug 2013 16:22:00 +0200 Subject: [PATCH] Timecode: fix subframe rounding if sub-frames are used, frames are rounded up for the later half of a sub-frame. e.g. @48KSPS, 25fps, 100 subframes per frame audio-samples >=1910 already yield 00:00:00:01 --- libs/timecode/src/time.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/timecode/src/time.cc b/libs/timecode/src/time.cc index a0d56c7264..6f954a8d51 100644 --- a/libs/timecode/src/time.cc +++ b/libs/timecode/src/time.cc @@ -806,7 +806,7 @@ sample_to_timecode ( double timecode_frames_fraction; int64_t timecode_frames_left; const double frames_per_timecode_frame = sample_frame_rate / timecode_frames_per_second; - const int64_t frames_per_hour = (int32_t)(3600 * rint(timecode_frames_per_second) * frames_per_timecode_frame); + const int64_t frames_per_hour = (int64_t)(3600 * rint(timecode_frames_per_second) * frames_per_timecode_frame); timecode.hours = offset_sample / frames_per_hour; @@ -818,7 +818,7 @@ sample_to_timecode ( timecode.subframes = (int32_t) rint(timecode_frames_fraction * subframes_per_frame); timecode_frames_left = (int64_t) floor (timecode_frames_left_exact); - if (timecode.subframes == subframes_per_frame) { + if (use_subframes && timecode.subframes == subframes_per_frame) { timecode_frames_left++; timecode.subframes = 0; }