ext/sdl/: Only de-init the subsystem we previously initialised. Avoids borkage when...
authorAndrew Andkjar <enki@goodship.net>
Tue, 29 Aug 2006 12:07:38 +0000 (12:07 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Tue, 29 Aug 2006 12:07:38 +0000 (12:07 +0000)
Original commit message from CVS:
Patch by: Andrew Andkjar  <enki at goodship net>
* ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close):
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
(gst_sdlvideosink_deinitsdl):
Only de-init the subsystem we previously initialised. Avoids
borkage when both sdlvideosink and sdlaudiosink are used
at the same time and one is shut down.

ChangeLog
ext/sdl/sdlaudiosink.c
ext/sdl/sdlvideosink.c

index 724bda5..5bcdcb8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-08-29  Tim-Philipp Müller  <tim at centricular dot net>
+
+       Patch by: Andrew Andkjar  <enki at goodship net>
+
+       * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close):
+       * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported),
+       (gst_sdlvideosink_deinitsdl):
+         Only de-init the subsystem we previously initialised. Avoids
+         borkage when both sdlvideosink and sdlaudiosink are used
+         at the same time and one is shut down.
+
 2006-08-28  Wim Taymans  <wim@fluendo.com>
 
        * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
index fb97c43..85bcd4d 100644 (file)
@@ -284,7 +284,7 @@ gst_sdlaudio_sink_close (GstAudioSink * asink)
   sdlaudio->eos = TRUE;
   SEMAPHORE_UP (sdlaudio->semA);
   SEMAPHORE_UP (sdlaudio->semB);
-  SDL_Quit ();
+  SDL_QuitSubSystem (SDL_INIT_AUDIO);
   return TRUE;
 }
 
index 9b3df77..de796ea 100644 (file)
@@ -338,7 +338,7 @@ gst_sdlvideosink_supported (GstImplementsInterface * interface,
 
       /* True if the video driver is X11 */
       result = (strcmp ("x11", SDL_VideoDriverName (tmp, 4)) == 0);
-      SDL_Quit ();
+      SDL_QuitSubSystem (SDL_INIT_VIDEO);
       g_mutex_unlock (sdlvideosink->lock);
     } else
       result = sdlvideosink->is_xwindows;
@@ -484,7 +484,7 @@ gst_sdlvideosink_deinitsdl (GstSDLVideoSink * sdlvideosink)
       sdlvideosink->event_thread = NULL;
     }
 
-    SDL_Quit ();
+    SDL_QuitSubSystem (SDL_INIT_VIDEO);
     sdlvideosink->init = FALSE;
 
   }