diff options
author | Max Horn | 2007-02-22 18:33:01 +0000 |
---|---|---|
committer | Max Horn | 2007-02-22 18:33:01 +0000 |
commit | 82ae8daccfd3684f277e0ea2e22e8a4288694d47 (patch) | |
tree | ca1a5db3d13db5fb1345771e5eb344fcfa786595 | |
parent | 8ce7566c8d3ffb2e87624a34da971e4513fea103 (diff) | |
download | scummvm-rg350-82ae8daccfd3684f277e0ea2e22e8a4288694d47.tar.gz scummvm-rg350-82ae8daccfd3684f277e0ea2e22e8a4288694d47.tar.bz2 scummvm-rg350-82ae8daccfd3684f277e0ea2e22e8a4288694d47.zip |
Reduce chance for overflows in VorbisTrackInfo::play
svn-id: r25793
-rw-r--r-- | sound/vorbis.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/vorbis.cpp b/sound/vorbis.cpp index 283050fff2..898730909a 100644 --- a/sound/vorbis.cpp +++ b/sound/vorbis.cpp @@ -341,9 +341,10 @@ void VorbisTrackInfo::play(Audio::Mixer *mixer, Audio::SoundHandle *handle, int return; } - // Convert startFrame & duration from frames (1/75 s) to milliseconds (1/1000s) - uint start = startFrame * 1000 / 75; - uint end = duration ? ((startFrame + duration) * 1000 / 75) : 0; + // Convert startFrame & duration from frames (1/75 s) to milliseconds (1/1000s), + // i.e. multiple with a factor of 1000/75 = 40/3 + uint start = startFrame * 40 / 3; + uint end = duration ? ((startFrame + duration) * 40 / 3) : 0; // ... create an AudioStream ... VorbisInputStream *input = new VorbisInputStream(file, true, start, end); |