0
0

FMOD Ex 4.26.6 has a problem involving FMOD_IGNORETAGS. Specifically, if FMOD_IGNORETAGS is used, createSound/createStream fails to open MP3 files where the ID3 tag precedes the audio blocks, failing with (I believe it was) FMOD_ERR_FORMAT (I haven’t tried it with any other formats that could have analogous problems).

While I suppose it’s not entirely impossible that this is intended behavior, this seems extremely likely to be a bug – that the intended behavior would be to simply skip over the tags and keep going.

  • You must to post comments
0
0

In this case you have to make use of FMOD_MPEGSEARCH.
Unfortunately this flag should be used precautionary to prevent the FMOD-Error: (25) Unsupported file or audio format.

If I remember correctly, the version 3.75 worked correctly on this behave.

  • You must to post comments
0
0

Its not a bug – if it ignores tags it ignores tags. You’re saying it should actually now take note of them :) The main reason for ignoring tags is the seek to the end of file it has to do for i3dv2 tags, which is bad in games on slow media.

The codec searches for about 4kb into the file, your mp3 will have more than 4kb of tags at the start so it gives up. It is not going to search all the way to the end that’s what FMOD_MPEGSEARCH is for.

An alternative is to retry the createSound a few times with FMOD_CREATESOUNDEXINFO::fileoffset = off; where off increments by 4096 at a time each time it fails with err_format. This will stop it searching all the way through massive files and you can stop it yourself after 16kb or 32kb or something like this.

  • You must to post comments
0
0

[quote="brett":1hedhy6u]Its not a bug – if it ignores tags it ignores tags. You’re saying it should actually now take note of them :) The main reason for ignoring tags is the seek to the end of file it has to do for i3dv2 tags, which is bad in games on slow media.

The codec searches for about 4kb into the file, your mp3 will have more than 4kb of tags at the start so it gives up. It is not going to search all the way to the end that’s what FMOD_MPEGSEARCH is for.[/quote:1hedhy6u]
Then I’d suggest putting a note in the documentation about this situation. Everything seems to indicate that the meaning of FMOD_IGNORETAGS is "ignore the metadata, but play the audio". If FMOD_IGNORETAGS results in not playing the audio from a valid audio file, that seems extremely counter-intuitive.

If it weren’t for the fact that I’m a reverse-engineer and the hex editor is the first thing I turn to when I run into a problem, this would have driven me crazy trying to figure out why it wasn’t playing those files.

  • You must to post comments
Showing 3 results
Your Answer

Please first to submit.