* aout_sdl.c : audio sdl functions library
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: aout_sdl.c,v 1.20 2001/12/07 18:33:08 sam Exp $
+ * $Id: aout_sdl.c,v 1.20.2.1 2001/12/18 00:51:19 sam Exp $
*
* Authors: Michel Kaempf <maxx@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
{
#if 0
SDL_AudioSpec desired, obtained;
+#endif
+ if( SDL_WasInit( SDL_INIT_AUDIO ) != 0 )
+ {
+ return( 0 );
+ }
+
+#if 0
/* Start AudioSDL */
if( SDL_Init(SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE) != 0 )
{
SDL_AudioSpec desired;
int i_channels = p_aout->b_stereo ? 2 : 1;
- /* Allocate structure */
+ /* Allocate structure */
p_aout->p_sys = malloc( sizeof( aout_sys_t ) );
if( p_aout->p_sys == NULL )
return( 1 );
}
+ /* Initialize library */
+ if( SDL_Init( SDL_INIT_AUDIO
+#ifndef WIN32
+ /* Win32 SDL implementation doesn't support SDL_INIT_EVENTTHREAD yet*/
+ | SDL_INIT_EVENTTHREAD
+#endif
+#ifdef DEBUG
+ /* In debug mode you may want vlc to dump a core instead of staying
+ * stuck */
+ | SDL_INIT_NOPARACHUTE
+#endif
+ ) < 0 )
+ {
+ intf_ErrMsg( "aout error: can't initialize SDL (%s)", SDL_GetError() );+ free( p_aout->p_sys );
+ return( 1 );
+ }
+
p_aout->p_sys->i_audio_end = 0;
p_aout->p_sys->audio_buf = malloc( OVERFLOWLIMIT );
if( SDL_OpenAudio( &desired, NULL ) < 0 )
{
p_aout->p_sys->b_active = 0;
+ SDL_QuitSubSystem( SDL_INIT_AUDIO );
+ free( p_aout->p_sys );
return( -1 );
}
SDL_CloseAudio();
+ SDL_QuitSubSystem( SDL_INIT_AUDIO );
+
free( p_aout->p_sys ); /* Close the Output. */
}
* vout_sdl.c: SDL video output display method
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: vout_sdl.c,v 1.67 2001/12/07 18:33:08 sam Exp $
+ * $Id: vout_sdl.c,v 1.67.2.1 2001/12/18 00:51:19 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Pierre Baillet <oct@zoy.org>
*****************************************************************************/
static int vout_Probe( probedata_t *p_data )
{
+ if( SDL_WasInit( SDL_INIT_VIDEO ) != 0 )
+ {
+ return( 0 );
+ }
+
if( TestMethod( VOUT_METHOD_VAR, "sdl" ) )
{
return( 999 );
if( SDLOpenDisplay(p_vout) )
{
intf_ErrMsg( "vout error: can't set up SDL (%s)", SDL_GetError() );
+ SDL_QuitSubSystem( SDL_INIT_VIDEO );
free( p_vout->p_sys );
return( 1 );
}
*****************************************************************************/
static void vout_End( vout_thread_t *p_vout )
{
- SDLCloseDisplay( p_vout );
- SDL_QuitSubSystem( SDL_INIT_VIDEO );
+ ;
}
/*****************************************************************************
*****************************************************************************/
static void vout_Destroy( vout_thread_t *p_vout )
{
+ SDLCloseDisplay( p_vout );
+
+ SDL_QuitSubSystem( SDL_INIT_VIDEO );
+
free( p_vout->p_sys );
}