From 200b05246c3e90e61fe6d2e21507b0b936d0ff2b Mon Sep 17 00:00:00 2001 From: Bastien Bouclet Date: Sun, 14 Sep 2014 15:07:50 +0200 Subject: AUDIO: Wrap around in the Timestamp constructor The "making of" video in the Xbox version of Myst III is unusually long. VideoDecoder::FixedRateVideoTrack::getFrameTime would trigger an overflow. --- audio/timestamp.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'audio/timestamp.cpp') diff --git a/audio/timestamp.cpp b/audio/timestamp.cpp index 1ce971631c..63752812e1 100644 --- a/audio/timestamp.cpp +++ b/audio/timestamp.cpp @@ -39,12 +39,10 @@ Timestamp::Timestamp(uint ms, uint fr) { Timestamp::Timestamp(uint s, uint frames, uint fr) { assert(fr > 0); - _secs = s; + _secs = s + (frames / fr); _framerateFactor = 1000 / Common::gcd(1000, fr); _framerate = fr * _framerateFactor; - _numFrames = frames * _framerateFactor; - - normalize(); + _numFrames = (frames % fr) * _framerateFactor; } Timestamp Timestamp::convertToFramerate(uint newFramerate) const { -- cgit v1.2.3