Multiple FMOD core issues found while building a codec plugin

Gday FMOD team,

Senior dev at SoundSpectrum here. We’ve been selling music visualizers to AV fans for 25+ years, and our new Unity-based audio player (built on FMOD Core) is nearing beta. Years ago, Mathew pointed me to the codec plugin API for AAC streams. We built on it and it works, HTTP streams included, so thank you and looking forward to shipping the numbers to graduate to a FMOD customer.

Along the way I isolated 5 issues that are worth raising to the FMOD team (using FMOD 2.03.14, macOS 14 on Apple Silicon; 1–4 also on 2.02.25):

  1. System::release or System::close crashes (SIGSEGV) while a non-blocking HTTP open is BUFFERING; while it’s CONNECTING, neither does
  2. Passing 5 as nonblockthreadid (correctly) returns FMOD_ERR_INVALID_PARAM, but passing −1 returns FMOD_OK and then crashes.
  3. Channel::setPosition on an HTTP stream without Range support returns FMOD_OK; the stream then fails (FMOD_ERR_FILE_COULDNOTSEEK), but the channel stays “playing”, silent permanently.
  4. An HTTP body cut short of its Content-Length raises no error or starving flag (playback loops the receive buffer to the declared length)
  5. The macOS SDK’s API dylibs are signed but not notarized (though its tools are), so Gatekeeper blocks it.

My investigation and write-ups were AI-assisted and I’ve worked hard to set y’all up for success (logs, evidence, repros). How would you like them: one topic per issue or please lmk what you prefer.

It’d be great for our player to show FMOD at its best.

Best,
Andy

Hi,

Thank you for bringing this to our attention and putting all the evidence together. It can all be zipped and uploaded to your profile.

I will attempt to reproduce the issue and get back to you if I need anymore info.

Hopefully we can get these sorted for your release!

Great, all set: uploaded fmod-core-issues-2.03.14.zip

Thank you for uploading that. We greatly appreciate the effort you have put into putting this bug report together. So far I have been able to reproduce the first issue! I have created a task to investigate it further. I will continue working on the other issues as well.