[SDL] SDL application crash when using Mix_CloseAudio
Jacek Dylak
dylak at gazeta.pl
Thu Nov 16 05:45:48 PST 2006
Hi all,
I'm using the SDL to produce some visual and audio stimulation in our
experiments. For audio I am using SDL_Mixer. And I've got quite strange
problem with it. When using the Mix_CloseAudio in my code to cleanup at the
end of the SDL related part, the application crash when returning from the run
method which actually perform the experiment. But when the Mix_CloseAudio is
commented out the application works smoothly without any problems.
I can't let it be as it because the SDL part is executed on the top of the
normal setup window - the idea is to allow the user to run experiment several
times without exiting the application. And without Mix_CloseAudio, when the
experiment is executed for the second time there is no audio at all.
The experiment executing method is provided below with all SDL related code.
The SDL_Mixer has been added to the working correctly code, so I am quite sure
that the problem is somehow related to the SDL_Mixer.
Does anyone has any idea of how to solve it or maybe has similar problems?
Best regards
Jacek
void run()
{
::SetEnvironmentVariableA( "SDL_VIDEODRIVER" , "directx" );
SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO|SDL_INIT_AUDIO);
const SDL_VideoInfo* vi = SDL_GetVideoInfo();
SDL_Surface* pScreen = SDL_SetVideoMode( pm.in_nScreenWidthPix ,
pm.in_nScreenHeightPix , vi->vfmt->BitsPerPixel , SDL_FULLSCREEN |
SDL_HWSURFACE | SDL_DOUBLEBUF );
TTF_Init();
Mix_OpenAudio( MIX_DEFAULT_FREQUENCY , MIX_DEFAULT_FORMAT , 2 , 512 );
Mix_AllocateChannels( 16 );
//running experiment here - the code here does not call any
//SDL_Mixer related methods
Mix_CloseAudio(); //commenting this line prevents app from crashing
TTF_Quit();
SDL_Quit();
//actually the application crash occurs here, when returning from this method
}
More information about the SDL
mailing list