0
0

hello I am currently evaluating your library (FMOD_EX), to adopt to a game we are currently on service.

while we were testing FMOD_EX, after integrating it to our game, I found something odd happening.

we are loading sounds with the FMOD_NONBLOCKING flag on (sample sound), it works fine at first (when we don’t have very much sound to load..), but later on with lots of sounds rushing in fast, it just wouldn’t get to the callback.

after that, no new sounds are created. (they all just don’t get to the callback)

first I thought it might have been some sort of maxed out situation, but
it was fine. (I checked the master sound group to see how many sounds there were).

Is this some sort of known issue??
or Is there some other parameters i should look at (to make sure)??

  • You must to post comments
0
0

[quote="slave79":2129zmcd]hello I am currently evaluating your library (FMOD_EX), to adopt to a game we are currently on service.

while we were testing FMOD_EX, after integrating it to our game, I found something odd happening.

we are loading sounds with the FMOD_NONBLOCKING flag on (sample sound), it works fine at first (when we don’t have very much sound to load..), but later on with lots of sounds rushing in fast, it just wouldn’t get to the callback.

after that, no new sounds are created. (they all just don’t get to the callback)

first I thought it might have been some sort of maxed out situation, but
it was fine. (I checked the master sound group to see how many sounds there were).

Is this some sort of known issue??
or Is there some other parameters i should look at (to make sure)??[/quote:2129zmcd]

Are you sure you dont want to load the sounds streamed instead?

I’m pretty sure non blocking creates threads. Personally I only use nonblocking for web resources…

  • You must to post comments
0
0

hmm… I am looking for a better method to deal with it, and I am aware that it isn’t a very smart method ^^;;

but since the sounds aren’t very long and they have a high chance of being played again, I didn’t thought streaming would be the answer.

in this case, wouldn’t the wouldn’t the streaming cause disk access every time it being played?

thanks for the idea though. looking for any kind of work through.

  • You must to post comments
0
0

You can reduce the number of times FMOD accesses the disk by grouping the sounds together into an FSB file (using our FSBank tool). You can make a single call to createSound to load the FSB and use getSubSound to get the individual sounds.

Hope this helps,

-Pete

  • You must to post comments
0
0

[quote="slave79":qoxoywnv]we are loading sounds with the FMOD_NONBLOCKING flag on (sample sound), it works fine at first (when we don’t have very much sound to load..), but later on with lots of sounds rushing in fast, it just wouldn’t get to the callback.

after that, no new sounds are created. (they all just don’t get to the callback)[/quote:qoxoywnv]
What callback are you referring to here? Could we see a code example?

Are you checking the return value of all FMOD function calls? A call may be returning an error that would help to diagnose the problem.

  • You must to post comments
0
0

[code:17ijdo8g]it goes something like this

FMOD_CREATESOUNDEXINFO exinfo;
memset( &exinfo, 0, sizeof(FMOD_CREATESOUNDEXINFO));
exinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO);
exinfo.userdata = (void*)this;
exinfo.nonblockcallback = Nonblock_callback;

FMOD_RESULT result = g_FMOD_System->createSound( pFileName, fmf, &exinfo, &pSound);
if (FMOD_OK != result)
{
assert(0);// we don’t get to this part..
return false;
}

FMOD_RESULT F_CALLBACK Nonblock_callback( FMOD_* sound, FMOD_RESULT loadResult)
{
//call back routine.. <- the line I put a debug point on when sound stops to load
}

[/code:17ijdo8g]

this is how I am using it.
[quote:17ijdo8g]after that, no new sounds are created. (they all just don’t get to the callback) [/quote:17ijdo8g]
this part might not have been clear. the "no new sounds are created "means that the createSound() function returns FMOD_OK but it wouldn’t finish the loading process and would stay in the FMOD_OPENSTATE_LOADING state (forever). Wouldn’t get to the call back either.

and I did try to check all the return values when I first wroted.

  • You must to post comments
0
0

[quote="PeterStirling":15apq382]You can reduce the number of times FMOD accesses the disk by grouping the sounds together into an FSB file (using our FSBank tool). You can make a single call to createSound to load the FSB and use getSubSound to get the individual sounds.

Hope this helps,

-Pete[/quote:15apq382]

Thanks for the advice, I will look through it.
I might have to bother some other ppl though ๐Ÿ˜•

  • You must to post comments
0
0

sorry guys… false alert…

I tried to do some main thread only stuff inside the nonblock callback..

I think the Issue is taken care.. ๐Ÿ˜›

  • You must to post comments
Showing 7 results
Your Answer

Please first to submit.