This is an automated email from the git hooks/post-receive script. ecsv-guest pushed a commit to branch master in repository mupen64plus.
commit cd4eb1cdd18b52c224954a24097eb74215a0cc3f Author: Sven Eckelmann <[email protected]> Date: Tue Sep 22 00:38:42 2009 +0200 Stop audio processing thread before freeing buffers SDL_PauseAudio is called to stop the audio, but that doesn't stop the audio processing right away. This means if it still is in SDL_MixAudio to change the volume and we start right away to free all buffers, it will segfault. We can call SDL_CloseAudio before freeing all buffers to be sure that my_audio_callback is stopped and doesn't process any data from the buffers anymore when we clean everything up in RomClosed. --- debian/changelog | 2 ++ debian/patches/jttl_fix_romclosed.patch | 37 +++++++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 40 insertions(+) diff --git a/debian/changelog b/debian/changelog index 3fc174f..79a5b5b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,8 @@ mupen64plus (1.5+dfsg1-5) UNRELEASED; urgency=low (Closes: #547644) - Add fix_readpng.patch, Fix crash when loading png due to reordering optimizer + - Add jttl_fix_romclosed.patch, Stop audio processing thread before freeing + buffers to fix segfault during stop of emulation -- Sven Eckelmann <[email protected]> Fri, 11 Sep 2009 00:37:19 +0200 diff --git a/debian/patches/jttl_fix_romclosed.patch b/debian/patches/jttl_fix_romclosed.patch new file mode 100644 index 0000000..f01ea66 --- /dev/null +++ b/debian/patches/jttl_fix_romclosed.patch @@ -0,0 +1,37 @@ +Description: Stop audio processing thread before freeing buffers + SDL_PauseAudio is called to stop the audio, but that doesn't stop the audio + processing right away. This means if it still is in SDL_MixAudio to change the + volume and we start right away to free all buffers, it will segfault. + We can call SDL_CloseAudio before freeing all buffers to be sure that + my_audio_callback is stopped and doesn't process any data from the buffers + anymore when we clean everything up in RomClosed. +Bug: http://code.google.com/p/mupen64plus/issues/detail?id=269 +Author: Sven Eckelmann <[email protected]> + +--- +diff --git a/jttl_audio/main.c b/jttl_audio/main.c +index d671cb9fc2f8ebae18e01ef7a86d22cd1e79f857..b8e3a9c248ebb30ed7811a7426fe97e3120626fc 100644 +--- a/jttl_audio/main.c ++++ b/jttl_audio/main.c +@@ -715,7 +715,10 @@ EXPORT void CALL RomClosed( void ) + + // Pause SDL Audio (Should be done before clean up) + SDL_PauseAudio(1); +- ++ ++ // Actually close the audio device ++ SDL_CloseAudio(); ++ + // Delete the buffer, as we are done producing sound + if (buffer != NULL) + { +@@ -733,9 +736,6 @@ EXPORT void CALL RomClosed( void ) + hardware_spec = NULL; + buffer = NULL; + +- // Actually close the audio device +- SDL_CloseAudio(); +- + // Shutdown the respective subsystems + if(SDL_WasInit(SDL_INIT_AUDIO) != 0) SDL_QuitSubSystem(SDL_INIT_AUDIO); + if(SDL_WasInit(SDL_INIT_TIMER) != 0) SDL_QuitSubSystem(SDL_INIT_TIMER); diff --git a/debian/patches/series b/debian/patches/series index 51573fd..c62b0ec 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -24,3 +24,4 @@ default-optimisations.patch gtk-open-filter.patch noexecstack.patch fix_readpng.patch +jttl_fix_romclosed.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

