From 4269bccfebbd6b03206e8e8e225d59527589524c Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 18 Nov 2012 09:53:11 +0000 Subject: fix drop-frame TC subframe rounding git-svn-id: svn://localhost/ardour2/branches/3.0@13523 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/timecode/src/time.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libs/timecode') 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; -- cgit v1.2.3