From 9009c963e3e321c5910af7b73e7da8f2c3eb8f25 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Tue, 9 Oct 2012 20:39:43 -0700
Subject: [PATCH] Fix rounding errors that resulted in karaoke syllables
 drifting

---
 aegisub/src/ass_karaoke.cpp          | 2 +-
 aegisub/src/audio_timing_karaoke.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/aegisub/src/ass_karaoke.cpp b/aegisub/src/ass_karaoke.cpp
index 4bf6c4447..cd9c9375e 100644
--- a/aegisub/src/ass_karaoke.cpp
+++ b/aegisub/src/ass_karaoke.cpp
@@ -40,7 +40,7 @@ wxString AssKaraoke::Syllable::GetText(bool k_tag) const {
 	wxString ret;
 
 	if (k_tag)
-		ret = wxString::Format("{%s%d}", tag_type, duration / 10);
+		ret = wxString::Format("{%s%d}", tag_type, (duration + 5) / 10);
 
 	size_t idx = 0;
 	for (std::map<size_t, wxString>::const_iterator ovr = ovr_tags.begin(); ovr != ovr_tags.end(); ++ovr) {
diff --git a/aegisub/src/audio_timing_karaoke.cpp b/aegisub/src/audio_timing_karaoke.cpp
index 07cd16e17..9a91590f3 100644
--- a/aegisub/src/audio_timing_karaoke.cpp
+++ b/aegisub/src/audio_timing_karaoke.cpp
@@ -375,7 +375,7 @@ int AudioTimingControllerKaraoke::MoveMarker(KaraokeMarker *marker, int new_posi
 	marker->Move(new_position);
 
 	size_t syl = marker - &markers.front() + 1;
-	kara->SetStartTime(syl, new_position);
+	kara->SetStartTime(syl, (new_position + 5) / 10 * 10);
 
 	labels[syl - 1].range = TimeRange(labels[syl - 1].range.begin(), new_position);
 	labels[syl].range = TimeRange(new_position, labels[syl].range.end());
-- 
GitLab