Audiokinetic Wwise Knowledge Base

Since I upgraded to Wwise 2010.1, I get the following assert: !"IO error" in AkBankReader.cpp.

This may be due to the fact that you did not upgrade your in-game version of the low-level I/O hook. You need to get the new sample
(AkDefaultIOHookBlocking or AkDefaultIOHookDeferred) from $WWISESDK/samples/SoundEngine/$PLATFORM/ and replace or merge the changes in your own low-level I/O hook.

Before Wwise 2010.1, AkTransferInfo::uRequestedSize was actually representing the buffer size into which the low-level I/O hook was allowed to write. Now, it represents the exact number of bytes that has to be transferred, and the buffer size into which the low-level I/O hook is allowed to write is represented by AkTransferInfo::uBufferSize. Now, some file systems do not support reading sizes that are not multiple of a certain value. For example, on Windows, files opened with the FILE_FLAG_NO_BUFFERING flag need to be read in multiples of the sector size, even for the last bytes of the file. In such cases, you should try to read AkTransferInfo::uBufferSize instead of AkTransferInfo::uRequestedSize from the platform I/O API.

Typically, you specify read size constraints by returning the proper value from IAkLowLevelIOHook::GetBlockSize(). For example, the "deferred I/O hook" on Windows opens files with the FILE_FLAG_NO_BUFFERING flag, and returns 2048 (bytes) from IAkLowLevelIOHook::GetBlockSize(). AkTransferInfo::uBufferSize is always a multiple of this value.




Article Details

Last Updated
28th o April, 2010

Would you like to...

Print this page Print this page

Email this page Email this page

Post a comment Post a comment

Subscribe me

Add to favorites Add to favorites

Remove Highlighting Remove Highlighting

Edit this Article

Quick Edit

Export to PDF

User Opinions (0 votes)

No users have voted.

How would you rate this answer?



Thank you for rating this answer.

Related Articles

No related articles were found.

Attachments

No attachments were found.

Continue