summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--ext/sdl/sdlaudiosink.c2
-rw-r--r--ext/sdl/sdlvideosink.c4
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 724bda57..5bcdcb8a 100644
--- 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),
diff --git a/ext/sdl/sdlaudiosink.c b/ext/sdl/sdlaudiosink.c
index fb97c435..85bcd4d2 100644
--- a/ext/sdl/sdlaudiosink.c
+++ b/ext/sdl/sdlaudiosink.c
@@ -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;
}
diff --git a/ext/sdl/sdlvideosink.c b/ext/sdl/sdlvideosink.c
index 9b3df778..de796ea3 100644
--- a/ext/sdl/sdlvideosink.c
+++ b/ext/sdl/sdlvideosink.c
@@ -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;
}