This is a read-only archive of the Mumble forums.

This website archives and makes accessible historical state. It receives no updates or corrections. It is provided only to keep the information accessible as-is, under their old address.

For up-to-date information please refer to the Mumble website and its linked documentation and other resources. For support please refer to one of our other community/support channels.

Jump to content

How i fixed bsod code 19 in mumble source


oldodin
 Share

Recommended Posts

On a notebook when running Mumble i have blue screen. bsod 19.

OS - windows xp, on windows 7 mumble work fine and on win xp on other computers too.

I download mumble source and started to debug the code. And i found the line at which the bsod.

in DXAudioOutput::run method

 

       ZeroMemory(&wfx, sizeof(wfx));
wfx.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
wfx.Format.nChannels = qMax(ns, 2);
wfx.Format.nSamplesPerSec = SAMPLE_RATE;
wfx.Format.nBlockAlign = sizeof(short) * wfx.Format.nChannels;
wfx.Format.nAvgBytesPerSec = wfx.Format.nSamplesPerSec * wfx.Format.nBlockAlign;
wfx.Format.wBitsPerSample = 16;
wfx.Format.cbSize = 32;
wfx.Samples.wValidBitsPerSample = wfx.Format.wBitsPerSample;
wfx.dwChannelMask = dwMask;
wfx.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;

ZeroMemory(&dsbdesc, sizeof(DSBUFFERDESC));
dsbdesc.dwSize          = sizeof(DSBUFFERDESC);
dsbdesc.dwFlags         = DSBCAPS_GLOBALFOCUS|DSBCAPS_GETCURRENTPOSITION2;
dsbdesc.dwFlags	 |= DSBCAPS_CTRLPOSITIONNOTIFY;
dsbdesc.dwBufferBytes = wfx.Format.nChannels * iFrameSize * sizeof(short) * NBLOCKS;
dsbdesc.lpwfxFormat     = reinterpret_cast<WAVEFORMATEX *>(&wfx);

if (FAILED(hr = pDS->CreateSoundBuffer(&dsbdesc, &pDSBOutput, NULL))) {
	qWarning("DXAudioOutputUser: CreateSoundBuffer (Secondary) failed: hr=0x%08lx", hr);
	goto cleanup;
}

 

BSOD in this line -

if (FAILED(hr = pDS->CreateSoundBuffer(&dsbdesc, &pDSBOutput, NULL))) 

 

I understand that this error is not on the side of Mumble, through experimentation, I found that crashed due

 wfx.dwChannelMask = dwMask;

Solution:

I fixed set dwChannelMask to default value - zero, or can pDS->SetSpeakerConfig for more channels than used dwChannelMask. And mumble work fine.


Please, help notify about this mumble developer.

Link to comment
Share on other sites

 Share

×
×
  • Create New...