diff options
author | Robin Gareus <robin@gareus.org> | 2012-11-18 09:53:11 +0000 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2012-11-18 09:53:11 +0000 |
commit | 4269bccfebbd6b03206e8e8e225d59527589524c (patch) | |
tree | 14d8c9ab7963d4a419493b040314ac7445f865d7 /libs/timecode | |
parent | b47619c458a9b64157a53083b813fdaff52b3e45 (diff) |
fix drop-frame TC subframe rounding
git-svn-id: svn://localhost/ardour2/branches/3.0@13523 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/timecode')
-rw-r--r-- | libs/timecode/src/time.cc | 7 |
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; |