diff options
author | Filippos Karapetis | 2007-10-31 20:26:57 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-10-31 20:26:57 +0000 |
commit | 5add473048289ed235d69825cfc44a84a24118af (patch) | |
tree | 9c87fe3e9796186d9d7276c7a5787a41c5675b26 /engines/saga | |
parent | 47a2c28b6ed314a8099f1b9eabf63fd4c3fcafea (diff) | |
download | scummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.tar.gz scummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.tar.bz2 scummvm-rg350-5add473048289ed235d69825cfc44a84a24118af.zip |
Fix for bug #1800147 - "ITE: Scummvm exits with Audio warnings"
svn-id: r29345
Diffstat (limited to 'engines/saga')
-rw-r--r-- | engines/saga/music.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp index 171da1cc8c..ae834d8e3a 100644 --- a/engines/saga/music.cpp +++ b/engines/saga/music.cpp @@ -105,13 +105,19 @@ DigitalMusicInputStream::DigitalMusicInputStream(SagaEngine *vm, ResourceContext soundType = kSoundFLAC; } + _file->seek((long)resourceData->offset + 9, SEEK_SET); createCompressedStream(); - resourceData->offset += 9; // Skip compressed header } // Determine the end position _filePos = resourceData->offset; _endPos = _filePos + resourceData->size; + + if (_compressedStream != NULL) { + _filePos += 9; // skip compressed header + _endPos -= 9; // decrease size by the size of the compressed header + } + _startPos = _filePos + loopStart; if (_startPos >= _endPos) _startPos = _filePos; @@ -126,7 +132,7 @@ DigitalMusicInputStream::~DigitalMusicInputStream() { void DigitalMusicInputStream::createCompressedStream() { uint numLoops = _looping ? 0 : 1; - _memoryStream = _file->readStream(resourceData->size); + _memoryStream = _file->readStream(resourceData->size - 9); switch (soundType) { #ifdef USE_MAD |