[Openal] alcCreateContext crashes with OpenAL-Soft and portaudio backend on linux Ubuntu 9.10

Chris Robinson chris.kcat at gmail.com
Fri Jan 22 17:02:33 PST 2010


On Friday 22 January 2010 9:52:55 am Manolache Adrian wrote:
> I'm on linux Ubuntu 9.10 and trying to get OpenAL-Soft working with
>  portaudio, as a backend. Compilation works just fine, the output
>  device(only one) returned by enumerating devices is 'PortAudio Software'
>  but the program crashes when calling alcCreateContext. Anyone has any idea
>  why does this happen?

There might be other problems if all you're seeing is PortAudio's device. The 
crash itself seems to be happening as a result of a normal call.. it could be 
a compatibility issue with PortAudio and PulseAudio, or something else on your 
system.

Are you purposely only compiling OpenAL Soft with PortAudio, or is that all 
that's being enabled? It's recommended to also build with ALSA and PulseAudio 
support, which you may need to install the dev packages for (ALSA = asound, 
btw).

> Here's the stack trace:
> #0 0xb7fe2430    __kernel_vsyscall() (??:??)
> #1 0xb7a63f75    sem_wait@@GLIBC_2.1()
>  (/lib/tls/i686/cmov/libpthread.so.0:??)
> #2 0x816fa35 StartStream(s=0x829b3d0) (src/hostapi/oss/pa_unix_oss.c:1746)
> #3 0xb7d1ffd8    pa_reset_playback(device=0xb63bd008)
>  (/home/adrian/OpenAL/trunk/OpenAL-Soft/Alc/portaudio.c:236)
> #4 0xb7d086a3    alcCreateContext(device=0xb63bd008, attrList=0x0)
>  (/home/adrian/OpenAL/trunk/OpenAL-Soft/Alc/ALc.c:1259)
> #5 0x80c6767    Endeavour::Sound::OpenALSoundSystem::init() () (??:??)
> #6 0x80c6b1a    Endeavour::Sound::OpenALSoundSystem::Instance() () (??:??)
> #7 0x80da645    CGameEngine::Init(char*, int, int, unsigned char, bool) ()
>  (??:??)
> #8 0x80ee0d2    GameStart() () (??:??)
> #9 0x80ee115    main() (??:??)

This backtrace also may be tracing the main thread, vs the thread actually 
causing the crash, since this just seems to be waiting in sem_wait. Running 
'thread apply all bt full' in GDB may give a better idea of where the crash 
actually is.

> Also, why don't i get any HW Acceleration here?

OpenAL Soft doesn't support hardware audio, due to the APIs not exposing 
enough control over the sub-devices to properly take advantage of hardware 
mixing. They also don't expose the controls to handle EAX, which would make it 
impossible to support EFX under those conditions.


More information about the Openal mailing list