Page MenuHome

OpenAL Sound cant play Surround -> Crash
Closed, ResolvedPublic

Description

--- Operating System, Graphics card ---
Radeon HD 5770

--- Blender version with error, and version that worked ---
error: 2.65 r54257

--- Short description of error ---
Surroundsound-File (.wav) crashes Blender in Game Engine

--- Steps for others to reproduce the error (preferably based on attached .blend file) ---
Load a Surroundfile into Logic Bricks Sound-Actuator.
Choose a Sensor (no matter which one -> take "Always" for instant effect).
Start Game Engine and play the file.

In my case Blender get crashed, even if i switch the output-settings and play around with 7.1, 5.1 and 4 Channels under OpenAL.
SDL will play Sound only in Stereo (mixed all channels together), other settings dont play, but at least will not cause Blender to crash.

I attached a Soundfile with 4 Channels: L R Lb Rb
It caused my Blender to crash under OpenAL, SDL dont like it to play in Surround.



Details

Type
Bug

Event Timeline

Let's check if Joerg can redo this!

A test with an official build (release from blender.org, or daily build from builder.blender.org) is always recommended though.

Works perfectly here. What OS do you have?

Have tried it with 2.64 release, 2.65 release and 2.65 r54257,
i switched from Soundcard to Onboard-Sound and have deactivated other output devices, but all the same.

Turning 3D-Sound on in the Actuator prevents Blender from crashing, but thats not the purpose.

Media-Player, Sequencer and Synthesizers dont seem to have problems with Surroundfiles on my PC.

Can you get a backtrace, please.

Ok but may take a while.
Need to find instructions how to do so.

Please make a suggestion what tool i should use. Thank you.

It's not easy to get a backtrace on windows, it needs a debug build and we don't upload those anywhere, so best for a developer to look at this.

I could redo the crash and committed a fix for only the crash, the sound will not play yet. The crash happened in KX_SoundActuator.cpp, this lines returns NULL for m_handle which crashed later in the function, so I added a simple NULL check there.

m_handle = AUD_getDevice()->play(sound, 0);

The reason it returns NULL is because in AUD_OpenALDevice m_useMC is false. So this means the AL_EXT_MCFORMATS extension for multi channel audio is not available. Maybe we need to upgrade our OpenAL library?

I tried copying the soft_oal.dll from the latest soft-openal over the wrap_oal.dll we use and it makes playback of this file work.
http://kcat.strangesoft.net/openal.html

It seems that a year ago we reverted from soft-openal to the creative openal, because 3D sound support was missing? But as far as I can tell it works with this latest dll, though I can only test stereo.
http://projects.blender.org/scm/viewvc.php?diff_format=s&view=rev&root=bf-blender&revision=44197

I wish i could follow your steps by myself, but i am a total beginner.
Thank you for your efforts in this case.

I am still trying to get a backtrace, if its still necessary at all.

I deleted wrap-oal.dll and added soft_oal.dll to my Blender directory.
Unfortunately it doesnt helped.

@Karja. The DLL needs to be named the same (and expose the same symbols of course)

Windows guys: Could you please make sure this doesn't happen with openal soft anymore?

http://projects.blender.org/tracker/index.php?func=detail&aid=30232&group_id=9&atid=498

If not I have nothing against switching to openal soft.

Great!
Now it works, no errors anymore.
I forgot to rename it.

Thanks a lot.

Ok, I guess I can mark this as closed then?!

Joerg Mueller (nexyon) closed this task as Resolved.Mar 31 2013, 9:51 AM