summaryrefslogtreecommitdiff
path: root/libs/timecode
diff options
context:
space:
mode:
Diffstat (limited to 'libs/timecode')
-rw-r--r--libs/timecode/src/time.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/timecode/src/time.cc b/libs/timecode/src/time.cc
index 9a67e177b7..a0d56c7264 100644
--- a/libs/timecode/src/time.cc
+++ b/libs/timecode/src/time.cc
@@ -786,9 +786,14 @@ sample_to_timecode (
const int64_t D = frameNumber / 17982;
const int64_t M = frameNumber % 17982;
- timecode.subframes = floor(subframes_per_frame
+ timecode.subframes = rint(subframes_per_frame
* ((double)offset_sample * timecode_frames_per_second / sample_frame_rate - (double)frameNumber));
+ if (timecode.subframes == subframes_per_frame) {
+ timecode.subframes = 0;
+ frameNumber++;
+ }
+
frameNumber += 18*D + 2*((M - 2) / 1798);
timecode.frames = frameNumber % 30;