diff options
Diffstat (limited to 'graphics/video/smk_decoder.cpp')
-rw-r--r-- | graphics/video/smk_decoder.cpp | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/graphics/video/smk_decoder.cpp b/graphics/video/smk_decoder.cpp index 8952f553b7..551b75b828 100644 --- a/graphics/video/smk_decoder.cpp +++ b/graphics/video/smk_decoder.cpp @@ -465,15 +465,7 @@ bool SmackerDecoder::loadFile(const char *fileName) { _header.audioInfo[i].sampleRate = audioInfo & 0xFFFFFF; if (_header.audioInfo[i].hasAudio && i == 0) { - byte flags = 0; - - if (_header.audioInfo[i].is16Bits) - flags = flags | Audio::Mixer::FLAG_16BITS; - - if (_header.audioInfo[i].isStereo) - flags = flags | Audio::Mixer::FLAG_STEREO; - - _audioStream = Audio::makeAppendableAudioStream(_header.audioInfo[i].sampleRate, flags); + _audioStream = Audio::makeQueuedAudioStream(_header.audioInfo[0].sampleRate, _header.audioInfo[0].isStereo); } } @@ -578,8 +570,14 @@ bool SmackerDecoder::decodeNextFrame() { delete[] soundBuffer; } else { // Uncompressed audio (PCM) - _audioStream->queueBuffer(soundBuffer, chunkSize); - // The sound buffer will be deleted by AppendableAudioStream + byte flags = 0; + if (_header.audioInfo[0].is16Bits) + flags = flags | Audio::Mixer::FLAG_16BITS; + if (_header.audioInfo[0].isStereo) + flags = flags | Audio::Mixer::FLAG_STEREO; + + _audioStream->queueBuffer(soundBuffer, chunkSize, flags); + // The sound buffer will be deleted by QueuedAudioStream } if (!_audioStarted) { @@ -827,8 +825,13 @@ void SmackerDecoder::queueCompressedBuffer(byte *buffer, uint32 bufferSize, for (int k = 0; k < numBytes; k++) delete audioTrees[k]; - _audioStream->queueBuffer(unpackedBuffer, unpackedSize); - // unpackedBuffer will be deleted by AppendableAudioStream + byte flags = 0; + if (_header.audioInfo[0].is16Bits) + flags = flags | Audio::Mixer::FLAG_16BITS; + if (_header.audioInfo[0].isStereo) + flags = flags | Audio::Mixer::FLAG_STEREO; + _audioStream->queueBuffer(unpackedBuffer, unpackedSize, flags); + // unpackedBuffer will be deleted by QueuedAudioStream } void SmackerDecoder::unpackPalette() { |