0
0

Hi,

I have some strange behaviur,

I am creating 2 system objects with the same configuration and the same device:

System_Create(&m_AudioSystem);
m_AudioSystem->setDriver(Params.nDriver);
m_AudioSystem->init(20,FMOD_INIT_NORMAL,NULL);

Each of my objects have a different working thread.

then i create 2 sounds one for each object.

m_AudioSystem->createSound(“FileName.mp3”,(FMOD_MODE)FMOD_CREATESTREAM | FMOD_ACCURATETIME | FMOD_SOFTWARE),NULL,&m_Song);

then I start playing the first sound and after a few seconds the second sound.

m_AudioSystem->playSound(FMOD_CHANNEL_FREE, m_Song, 1, &m_Channel);

all results return ok.

I call the update method every 10 milliseconds.

when playing with no FMOD_SOFTWARE at the createsound all is good,
but with the software flag(which I use since i need the getwavdata) i get a crash(sometimes I also see the fmodex.dll in the stack).

[code:2vhd1o92]
02faffac()
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x7a bytes
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes
ntdll.dll!RtlConvertUlongToLargeInteger() + 0x46 bytes
ntdll.dll!KiUserExceptionDispatcher() + 0xe bytes

[/code:2vhd1o92][/quote]

  • You must to post comments
0
0

fmod is above it in the stack(you just cant see it here), it happens also if i do not call getwavedata, only the software flag change is causing it(I know it is probebly somthing in my code) but when I am not using the software flag all is working good.

  • You must to post comments
0
0

I have played a little with bounds checker on my code and no memory leaks etc…

I dont really know what the problem is. it only happens when I use FMOD_SOFTWARE flag.

when I should use FMOD_SOFTWArE and when FMOD_HARDWARE?

what are the diffrences (preformence,memory ,features etc..)

10x

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.