[Openal-devel] Questionable "invalid value" from alSourceUnqueueBuffers

Jan Wassenberg jan.wassenberg at gmail.com
Mon Aug 10 23:37:46 PDT 2009


Greetings,

I'm working on sound for the 0 A.D. project (www.wildfiregames.com/0ad)  
and have encountered an error on OpenALsoft implementations of OpenAL. The  
first time alSourceUnqueueBuffers is called upon to unqueue a single  
buffer, it raises an "invalid value" error, but not subsequently.

My understanding of the OpenAL Programmer's Guide (revision 1.2) is that  
alSourceUnqueueBuffers fails with "invalid value" iff a buffer can't be  
unqueued because it had yet to be processed. However, we are first  
checking alGetSourcei AL_BUFFERS_PROCESSED and receiving a nonzero count  
for that source.

The same code works without error on my Windows system with a Creative  
X-Fi and drivers ctaud2k.sys (5.12.01.1201-2.10.0760), OpenAL32.dll  
(6.14.0357.19), wrap_oal.dll (2.1.4.0), ct_oal.dll  
(5.12.01.1187-2.09.3060).

Due to the once-only mode of failure and because it works on Creative's  
OpenAL, I'm thinking the cause might lie in OpenALsoft. Both users that  
reported the error were using version 1.7.411. Was this an known error and  
would be fixed by upgrading to the most recent version?

A ltrace of the OpenAL calls is available at  
http://trac.wildfiregames.com/attachment/ticket/297/openal.trace . After  
init, the engine starts playing stereo buffers (music) and the error comes  
up at the end after having finished playing a short mono buffer (sound  
effects).

If it helps, our interface to OpenAL can be viewed at  
http://trac.wildfiregames.com/browser/ps/trunk/source/lib/res/sound/snd_mgr.cpp

Any help in diagnosing and solving the error would be appreciated.
Thanks in advance + cheers
Jan


More information about the Openal-devel mailing list