Wierd Access Violation


#1

I have an AudioEngine class that inherits from AudioIODeviceCallback. I am using VS2015 for this build and this class has worked on previous project and works on OSX build. Any time my code tries to access the outputChannelData I get an access violation. I have setup a breakpoint and sure enough 0x0000000… (???) mem address so clearly null. Stack trace below as it digs into parts of juce that I don’t know.
I have debugged audioDeviceAboutToStart and sure enough it detects sound card e.t.c. Speakers (Sound Blaster Recon3Di) 448 Samples. So I’m a little stumped on this one.

> Blackbox II.exe!AudioEngine::audioDeviceIOCallback(const float * * inputChannelData, int numInputChannels, float * * outputChannelData, int numOutputChannels, int numSamples) Line 46 C++
Blackbox II.exe!juce::AudioDeviceManager::audioDeviceIOCallbackInt(const float * * inputChannelData, int numInputChannels, float * * outputChannelData, int numOutputChannels, int numSamples) Line 704 C++
Blackbox II.exe!juce::AudioDeviceManager::CallbackHandler::audioDeviceIOCallback(const float * * ins, int numIns, float * * outs, int numOuts, int numSamples) Line 63 C++
Blackbox II.exe!juce::WasapiClasses::WASAPIAudioIODevice::run() Line 1277 C++
Blackbox II.exe!juce::Thread::threadEntryPoint() Line 96 C++
Blackbox II.exe!juce::juce_threadEntryPoint(void * userData) Line 119 C++
Blackbox II.exe!juce::threadEntryProc(void * userData) Line 76 C++

Also if I comment out the inner code of the audio callback function the program runs - obviously without sound.

JUCE 5.3.2


#2

OK so looking back at previous project it was JUCE 4 and with JUCE 5 there seems to be some premature execution of the audioCallback on Windows. My fix is just check if outputChannelData is nullptr int the loop but this still feels a little wrong.

Has anyone else experienced this change in behaviour.