AudiokineticのコミュニティQ&AはWwiseやStrataのコミュニティ内でユーザ同士が質問・回答をし合うことができるフォーラムです。Audiokineticテクニカルサポートチームからの回答をご希望の場合は、必ず サポートチケットページ をご利用ください。

AkSpeakerPan generating Assertion at runtime

+1 支持
Hi,

We're currently working with a developer on a project using WWise 2017.2.2.6553, they're encountering an issue with the Audio which generations the following assertion in debug:

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1252: first > 0 || second > 0

Assertion Failed! D:/Jenkins/ws/wwise_v2017.2/Wwise/SDK/source/SoundEngine/AkAudiolib/Common/AkSpeakerPan.cpp:1251: uArc < in_uNumArcs

This manifests itself in game as corrupt audio, it seems that the rapid switching of L/R audio channels is triggering the issue.

 

Has anyone encountered this, is there a work around or a fix in later versions of WWise?

 

Thanks,

David Smethurst
David S. (110 ポイント) 2018 5/9 質問 General Discussion

回答 2

0 支持
Hey David,

Yeah we're getting the same assert in Wwise 2017.2.4.

The assert is being triggered in AddPowerVbap2d, and it's happening right after a while loop that uses floating-point termination.

We haven't managed to fix the problem - but it seems to be related to modifying listener positions. We managed to reduce the number of occurrences by only having one active listener at any given time, and setting that listener using AK::SoundEngine::SetDefaultListeners instead of AK::SoundEngine::AddDefaultListener / AK::SoundEngine::RemoveDefaultListener.

Let me know if you find a fix!
Oliver S. (310 ポイント) 2018 6/7 回答
+1 支持
Hey David,

A colleague of mine managed to track down the issue.

In our case it's caused by one of our pools running out of memory.

When a new listener gets added a call to Ak3DListener::GetListenerMatrix from CAkPath::InitRotationMatrixForListener returns a null pointer, but that data is eventually used by AkSpeakerPan::AddPowerVbap2d.

Hope that helps.
Oliver S. (310 ポイント) 2018 6/13 回答
Thanks for the info. I don't have the source-code, so I can't say if our behavior is the same. We only have one listener though, that is added on initialization.

Your tip about the memory pools was interesting. I tried increasing the size of every pool I found, but couldn't not get the issue to go away. Do you remember specifically which pool were the problem?
...