#1391: Audio queue overloaded (with fix)
----------------------------------------+-----------------------------------
Reporter: jovie1...@… | Type: bug
Status: new | Priority: major
Milestone: unspecified | Component: Engine: Sound
Version: 2.3 beta 6 | Keywords: audio queue overload
Operating_system: All/Non-Specific | Blockedby:
Blocking: |
----------------------------------------+-----------------------------------
In lib/sound/audio.c, in the task audio_Update() is a loop that gets rid
of audio samples that are finished playing. However, due to the order of
the call to audio_RemoveSample() and finding psSampleTemp, only the
*first* finished audio sample will be removed. This is because
audio_RemoveSample() always sets the sample's next and prev to NULL, so
psSampleTemp will always become NULL and the loop will exit. If these
lines are switched, then all finished audio samples will be released at
the correct time instead of once-per-update. This applies to all code,
including 2.2.4, up to the current 2.3 betas. I have not checked the
trunk. This fix should cut down memory usage a bit and helped alleviate
the necessity of bringing up the escape menu to clear the sound queues.
--
Ticket URL: <http://developer.wz2100.net/ticket/1391>
Warzone 2100 Trac <http://developer.wz2100.net/>
The Warzone 2100 Project
_______________________________________________
Warzone-dev mailing list
[email protected]
https://mail.gna.org/listinfo/warzone-dev