Release queued OpenAL buffers on stream shutdown
This commit is contained in:
committed by
Brandon McGinty
parent
4914182812
commit
27e8fc7232
@@ -487,8 +487,16 @@ func (s *Stream) OnAudioStream(e *gumble.AudioStreamEvent) {
|
||||
}
|
||||
reclaim()
|
||||
s.render(func() {
|
||||
emptyBufs.Delete()
|
||||
// OpenAL does not delete buffers when a source is deleted. Reclaim
|
||||
// queued buffers after stopping so every generated buffer is freed.
|
||||
source.Stop()
|
||||
if n := source.BuffersQueued(); n > 0 {
|
||||
queuedBufs := make(openal.Buffers, n)
|
||||
source.UnqueueBuffers(queuedBufs)
|
||||
emptyBufs = append(emptyBufs, queuedBufs...)
|
||||
}
|
||||
source.Delete()
|
||||
emptyBufs.Delete()
|
||||
e.User.SetAudioSource(nil)
|
||||
})
|
||||
log.Debug("audio stream ended for user %s", e.User.Name)
|
||||
|
||||
Reference in New Issue
Block a user