Error (51) FMOD_ERR_OUTPUT_INIT, no default playback device?

Some of our customers are reporting the error FMOD_ERR_OUTPUT_INIT, which doesn’t give a lot of help. I have received a DxDiag report from one of them and it appears that there was no default playback device. I’m not sure how that’s possible. What can I do to figure out what’s going wrong? These are the parameters I’m passing:

mFModStudio->initialize(512, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL | FMOD_INIT_VOL0_BECOMES_VIRTUAL, 0);

FMOD_ADVANCEDSETTINGS has also had setSoftwareChannels, maxVorbisCodecs and maxMPEGCodecs set to 512, and vol0virtualvol set to 0.001f.

Thanks in advance,
Tim

Hi,
When there is no audio device, FMOD falls back to nosound.
There is a log entry at runtime when this happens. ie

[WRN] SystemI::init : No output sound devices found - switching output mode to FMOD_OUTPUTTYPE_NOSOUND

FMOD_ERR_OUTPUT_INIT is more like a device failed to init. We are seeing this a bit more lately and is most likely USB headset device related. When they send you the dxdiag the headset is not plugged in, and it looks like there are no sound devices.

If they can provide their headset ad OS version, i’d love to hear more about it, but its probably related to bad drivers at this point. We have one headset which we found refuses to initialize in a certain speaker mode, and only under directsound mode (which is WinXP only usually).

The way to avoid just bailing out, is to go into nosound mode again. You’d have to destroy the system object and recreate it, otherwise you’ll get FMOD_ERR_INVAILD_HANDLE by the look of it. This is something we’re looking to fix.

result = mFModStudio->initialize(512, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL | 
FMOD_INIT_VOL0_BECOMES_VIRTUAL, 0);
if (result == FMOD_ERR_OUTPUT_INIT)
{
    mFModStudio->release();

    FMOD::Studio::System::create(&mFModStudio);
    mFModStudio->getLowLevelSystem(&lowlevel);
    lowlevel->setOutput(FMOD_OUTPUTTYPE_NOSOUND);
    result = mFModStudio->initialize(512, FMOD_STUDIO_INIT_NORMAL, FMOD_INIT_NORMAL | FMOD_INIT_VOL0_BECOMES_VIRTUAL, 0);
}

(I just typed that out here sorry if it doesnt compile straight away)

More info about the OS and device that fails would be good, and if FMOD logging mode is used, that would be even better. We could then get the WASAPI error code most likely.

Thanks Brett,

For now I have disabled our sound if it fails to initialise.

Indeed some of the DxDiag reports I have been receiving appear to have USB headsets in them and set as default devices. I’ve been asking users if they are unplugged and will report back.

Here are two examples:

Operating System: Windows 10 Professionnel 64-bit (10.0, Build 14393) (14393.rs1_release_sec.170327-1835)
Description: Casque (2- Razer Kraken USB)

Operating System: Windows 7 Professionnel N 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_ldr.170307-1800)
Description: Casque pour téléphone (3- Razer Kraken 7.1 Chroma)

I’ll let you know if any more come in and see about adding FMOD logging.

Thanks, i’ll order a few of those for testing here and report back.

So far, my only clue is - if the user has ‘allow applications to take exclusive control of this device’ and they have some media player or something that is doing this - then fmod could fail. I’d be interested if any of your users have that ticked on, and if unticking it solves it.

just playing through a razer 7.1 chroma doesnt fail normally, so it has to be a combination of issues.

OK, that sounds possible. Media players don’t usually take exclusive control, though?

I got a report back from the 3- Razer Kraken 7.1 Chroma owner:

“I plugged iphone’s headphone and working without bug! Still have error with usb razer headset using razer synapse.”

Could it be an old driver issue? Also we are not quite up-to-date with Fmod. Planning to update in our next build.

Who knows what else they’re using. You’re right though, media players are generally friendly, in fact most programs are. Only a DAW or something hardcore like that would consider using exclusive mode in windows.

iPhone’s headphone is using i’m guessing the built in audio , not the razer? Its possible that the other program is not playing through that app or disallows exclusive mode? (that’s in the settings as I said). I’d like to know if the exclusive mode tickbox was on in that case.

If its not, then yes, it could be a driver, but if that was the case I should be able to download that driver and reproduce the problem. Currently with the latest driver it works no problem.

Either way, we can’t fix the driver , and we can’t stop the user having the exclusive mode tickbox on, so we can only fail and reinit in nosound in this case, either way.

With a bad driver, sometimes we can alter some init code to work around it, this is like what we had to do in the old old days , ie some sound cards we had to do a strncmp against the device name, and avoid setting 7.1 for example , otherwise the OS bluescreened.

So he said that the box was checked (Allow applications to take exclusive control of this device). He unchecked it and it is still failing.

He also updated the driver - also no difference.

Do you want me send you his DxDiag report? Not sure what else to try.

i’d love to open a dialogue with him, if he’d like, he could contact support@fmod.com and we could see if our own examples fail like that, or if it is just in the game only.

I just got an error 51 report from someone with no USB headset. Is there a way to gather debug logging from the release DLLs?

we generally exclude all the logging strings from the release lib, you’d have to use fmodL to get logging. Also I just found this https://obsproject.com/forum/threads/error-88890008-problem-with-razer-kraken-headset-solved.6723/ which says solved but isnt really.

Here is a video that seems to help, the razer kraken has known problems. https://www.youtube.com/watch?v=Ny1FzeCYWdI so its not just fmod.