ext/sdl/: Only de-init the subsystem we previously initialised. Avoids borkage when both sdlvideosink and sdlaudiosin...

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.
This commit is contained in:
Andrew Andkjar 2006-08-29 12:07:38 +00:00 committed by Tim-Philipp Müller
parent d83b0ef58d
commit ef178aabf9
3 changed files with 14 additions and 3 deletions

View file

@ -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> 2006-08-28 Wim Taymans <wim@fluendo.com>
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment), * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),

View file

@ -284,7 +284,7 @@ gst_sdlaudio_sink_close (GstAudioSink * asink)
sdlaudio->eos = TRUE; sdlaudio->eos = TRUE;
SEMAPHORE_UP (sdlaudio->semA); SEMAPHORE_UP (sdlaudio->semA);
SEMAPHORE_UP (sdlaudio->semB); SEMAPHORE_UP (sdlaudio->semB);
SDL_Quit (); SDL_QuitSubSystem (SDL_INIT_AUDIO);
return TRUE; return TRUE;
} }

View file

@ -338,7 +338,7 @@ gst_sdlvideosink_supported (GstImplementsInterface * interface,
/* True if the video driver is X11 */ /* True if the video driver is X11 */
result = (strcmp ("x11", SDL_VideoDriverName (tmp, 4)) == 0); result = (strcmp ("x11", SDL_VideoDriverName (tmp, 4)) == 0);
SDL_Quit (); SDL_QuitSubSystem (SDL_INIT_VIDEO);
g_mutex_unlock (sdlvideosink->lock); g_mutex_unlock (sdlvideosink->lock);
} else } else
result = sdlvideosink->is_xwindows; result = sdlvideosink->is_xwindows;
@ -484,7 +484,7 @@ gst_sdlvideosink_deinitsdl (GstSDLVideoSink * sdlvideosink)
sdlvideosink->event_thread = NULL; sdlvideosink->event_thread = NULL;
} }
SDL_Quit (); SDL_QuitSubSystem (SDL_INIT_VIDEO);
sdlvideosink->init = FALSE; sdlvideosink->init = FALSE;
} }