aboutsummaryrefslogtreecommitdiffstats
path: root/al/source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'al/source.cpp')
-rw-r--r--al/source.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/al/source.cpp b/al/source.cpp
index 6daa3f4e..93f3285b 100644
--- a/al/source.cpp
+++ b/al/source.cpp
@@ -644,6 +644,7 @@ bool SetVoiceOffset(Voice *oldvoice, const VoicePos &vpos, ALsource *source, ALC
newvoice->mPosition.store(vpos.pos, std::memory_order_relaxed);
newvoice->mPositionFrac.store(vpos.frac, std::memory_order_relaxed);
newvoice->mCurrentBuffer.store(vpos.bufferitem, std::memory_order_relaxed);
+ newvoice->mStartTime = oldvoice->mStartTime;
newvoice->mFlags.reset();
if(vpos.pos > 0 || vpos.frac > 0 || vpos.bufferitem != &source->mQueue.front())
newvoice->mFlags.set(VoiceIsFading);
@@ -3198,6 +3199,7 @@ START_API_FUNC
voice->mPosition.store(0, std::memory_order_relaxed);
voice->mPositionFrac.store(0, std::memory_order_relaxed);
voice->mCurrentBuffer.store(&source->mQueue.front(), std::memory_order_relaxed);
+ voice->mStartTime = std::chrono::nanoseconds::min();
voice->mFlags.reset();
/* A source that's not playing or paused has any offset applied when it
* starts playing.