Crash at FMOD_Sound_GetOpenState process

my program used “FMOD_NONBLOCKING” flag to create Sounds,Attach my program to gflags(WinDug) check memory error , But always detect failed at FMOD_Sound_GetOpenState Crash the program.My FMOD version : 31/01/18 1.10.03 - Studio API minor release (build 93157)


Are you able to reproduce this crash by modifying one of our examples?

Thank your reply
I unable to reproduce this crash by your examples, But I Encounter other Crash at Release Sound. My code as follows, it changes form the examples.( Core API Version 20013)
SoundReleaseCrash.txt (5.6 KB)

Thanks for providing your code, the key issue is when you perform a non-blocking createSound using a memory pointer, that memory needs to remain available to FMOD until the asynchronous operation is complete.

thank your reply
I reproduce FMOD_Sound_GetOpenstate crash by your examples today, My code as follows, The must use gfalgs.exe attache the program
code:
load_from_memory.txt (3.8 KB)
log:
log.txt (41.9 KB)

Thanks for the example code, I can see the crash here too. Unfortunately there is no workaround for C, for C++, calling Sound::getOpenState without the percentbuffered / starving / diskbusy arguments should avoid it. We’ll aim to patch this for our release in ~1 month.

Another possible workaround that just occurred to me that would be compatible with C is to use the FMOD_CREATESOUNDEXINFO::nonblockcallback, when that callback fires it should be safe to call FMOD_Sound_GetOpenState.

my program will release in a late month, so I hope early to get your release lib, thank you so much.

If you have time pressure I strongly recommend using the nonblockcallback workaround in case there are delays in getting the fix out.

I am now trying to use nonblockcallback workaround, I want to know if the crash has a big impact on the mobile platform?

I’m not sure I follow what you are asking?

thanks for your reply, I use nonblockcallback no reproduce this crash after. now I profile my program in mobile platform, discover FMOD Threads often steal CPU core because it has high priority. How make FMOD Threads to Normal priority?

FMOD thread priorities are set relative to each other to ensure all threads cooperate well together. If you are using FMOD 2.01 you can override this with Thread_SetAttributes however care should be taken to ensure FMOD works well with your changes. Previous versions of FMOD cannot override priority without modification to our source code.