diff --git a/src/modules/audio/openal/Source.cpp b/src/modules/audio/openal/Source.cpp index 65d9113f8..76dba16ca 100644 --- a/src/modules/audio/openal/Source.cpp +++ b/src/modules/audio/openal/Source.cpp @@ -265,11 +265,14 @@ namespace openal } if (type == TYPE_STREAM) { + bool waspaused = paused; // Because we still have old data // from before the seek in the buffers // let's empty them. stopAtomic(false); playAtomic(); + if (waspaused) + pauseAtomic(); } } } @@ -462,7 +465,15 @@ namespace openal } else if(valid && type == TYPE_STREAM) { + bool waspaused = paused; decoder->rewind(); + // Because we still have old data + // from before the seek in the buffers + // let's empty them. + stopAtomic(false); + playAtomic(); + if (waspaused) + pauseAtomic(); offsetSamples = 0; offsetSeconds = 0; }