X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.c;h=96cab09ca9e549e27557ba79813b564a82963304;hb=ceeb39b70df4c73041b76de2c8430521ff9d7f91;hp=22d1183918bb2f47ffebb467dc10ce5a8ad03af2;hpb=494ace96d068ee8e4b6b689da0ae469c0c0e4fe3;p=vlc diff --git a/src/libvlc.c b/src/libvlc.c index 22d1183918..96cab09ca9 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -103,7 +103,9 @@ static libvlc_int_t * p_static_vlc = NULL; static unsigned i_instances = 0; +#ifndef WIN32 static bool b_daemon = false; +#endif /***************************************************************************** * vlc_gc_*. @@ -193,8 +195,7 @@ libvlc_int_t * libvlc_InternalCreate( void ) } /* Allocate a libvlc instance object */ - p_libvlc = vlc_custom_create( VLC_OBJECT(p_libvlc_global), - sizeof (*p_libvlc) + sizeof (libvlc_priv_t), + p_libvlc = vlc_custom_create( VLC_OBJECT(p_libvlc_global), sizeof (*priv), VLC_OBJECT_LIBVLC, "libvlc" ); if( p_libvlc != NULL ) i_instances++; @@ -225,17 +226,13 @@ libvlc_int_t * libvlc_InternalCreate( void ) #endif /* Announce who we are - Do it only for first instance ? */ - msg_Dbg( p_libvlc, COPYRIGHT_MESSAGE ); + msg_Dbg( p_libvlc, "%s", COPYRIGHT_MESSAGE ); msg_Dbg( p_libvlc, "libvlc was configured with %s", CONFIGURE_LINE ); /* Initialize mutexes */ vlc_mutex_init( &priv->timer_lock ); vlc_mutex_init( &priv->config_lock ); - priv->threads_count = 0; - vlc_mutex_init (&priv->threads_lock); - vlc_cond_init (NULL, &priv->threads_wait); - /* Store data for the non-reentrant API */ p_static_vlc = p_libvlc; @@ -306,12 +303,6 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, return VLC_EGENERIC; } -#ifdef __APPLE__ - /* vlc_thread_set_priority needs to query the config, - * so this is the earliest moment where we can set this */ - vlc_thread_set_priority( p_libvlc, VLC_THREAD_PRIORITY_LOW ); -#endif - /* Check for short help option */ if( config_GetInt( p_libvlc, "help" ) > 0 ) { @@ -913,8 +904,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, if( psz_codecs ) { char *psz_morecodecs; - asprintf(&psz_morecodecs, "%s,dmo,quicktime", psz_codecs); - if( psz_morecodecs ) + if( asprintf(&psz_morecodecs, "%s,dmo,quicktime", psz_codecs) != -1 ) { config_PutPsz( p_libvlc, "codec", psz_morecodecs); free( psz_morecodecs ); @@ -1038,17 +1028,6 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) } #endif - /* Make sure all threads are completed before we start looking for - * reference leaks and deinitializing core LibVLC subsytems. */ - vlc_mutex_lock (&priv->threads_lock); - while (priv->threads_count) - { - msg_Dbg (p_libvlc, "waiting for %u remaining threads", - priv->threads_count); - vlc_cond_wait (&priv->threads_wait, &priv->threads_lock); - } - vlc_mutex_unlock (&priv->threads_lock); - bool b_clean = true; FOREACH_ARRAY( input_item_t *p_del, priv->input_items ) msg_Err( p_libvlc, "input item %p has not been deleted properly: refcount %d, name %s", @@ -1128,8 +1107,6 @@ int libvlc_InternalDestroy( libvlc_int_t *p_libvlc ) /* Destroy mutexes */ vlc_mutex_destroy( &priv->config_lock ); vlc_mutex_destroy( &priv->timer_lock ); - vlc_cond_destroy (&priv->threads_wait); - vlc_mutex_destroy (&priv->threads_lock); vlc_object_release( p_libvlc ); p_libvlc = NULL; @@ -1232,8 +1209,8 @@ static inline int LoadMessages (void) static const char psz_path[] = LOCALEDIR; #else char psz_path[1024]; - if (snprintf (psz_path, sizeof (psz_path), "%s/%s", - vlc_global()->psz_vlcpath, "locale") + if (snprintf (psz_path, sizeof (psz_path), "%s" DIR_SEP "%s", + config_GetDataDir(), "locale") >= (int)sizeof (psz_path)) return -1;