aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sword25/fmv/theora_decoder.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/engines/sword25/fmv/theora_decoder.cpp b/engines/sword25/fmv/theora_decoder.cpp
index 02e18b8fba..d211136614 100644
--- a/engines/sword25/fmv/theora_decoder.cpp
+++ b/engines/sword25/fmv/theora_decoder.cpp
@@ -412,10 +412,11 @@ Graphics::Surface *TheoraDecoder::decodeNextFrame() {
// If playback has begun, top audio buffer off immediately.
if (_stateFlag && _audiobufReady) {
-/* FIXME: This is currently crashing
_audStream->queueBuffer((byte *)_audiobuf, AUDIOFD_FRAGSIZE, DisposeAfterUse::NO, Audio::FLAG_16BITS | Audio::FLAG_LITTLE_ENDIAN | Audio::FLAG_STEREO);
-*/
+ // The audio mixer is now responsible for the old audio buffer.
+ // We need to create a new one.
+ _audiobuf = (ogg_int16_t *)calloc(AUDIOFD_FRAGSIZE, sizeof(ogg_int16_t));
_audiobufFill = 0;
_audiobufReady = false;
}