#include "audio_output/aout_internal.h"
#include <vlc_charset.h>
+#include <vlc_fs.h>
#include <vlc_cpu.h>
#include <vlc_url.h>
}
/* Allocate a libvlc instance object */
- p_libvlc = __vlc_custom_create( NULL, sizeof (*priv),
+ p_libvlc = vlc_custom_create( (vlc_object_t *)NULL, sizeof (*priv),
VLC_OBJECT_GENERIC, "libvlc" );
if( p_libvlc != NULL )
i_instances++;
priv->p_vlm = NULL;
/* Initialize message queue */
- msg_Create( p_libvlc );
+ priv->msg_bank = msg_Create ();
+ if (unlikely(priv->msg_bank == NULL))
+ goto error;
/* Find verbosity from VLC_VERBOSE environment variable */
psz_env = getenv( "VLC_VERBOSE" );
vlc_mutex_init( &priv->timer_lock );
return p_libvlc;
+error:
+ vlc_object_release (p_libvlc);
+ return NULL;
}
/**
pid_t i_pid = getpid ();
msg_Dbg( p_libvlc, "PID is %d, writing it to %s",
i_pid, psz_pidfile );
- pidfile = utf8_fopen( psz_pidfile,"w" );
+ pidfile = vlc_fopen( psz_pidfile,"w" );
if( pidfile != NULL )
{
utf8_fprintf( pidfile, "%d", (int)i_pid );
if( psz_modules )
{
char *p = psz_modules, *m;
- playlist_t *p_playlist = pl_Hold( p_libvlc );
while( ( m = strsep( &p, " :," ) ) != NULL )
playlist_ServicesDiscoveryAdd( p_playlist, m );
free( psz_modules );
- pl_Release (p_libvlc);
}
#ifdef ENABLE_VLM
psz_val = var_InheritString( p_libvlc, "open" );
if ( psz_val != NULL )
{
- playlist_t *p_playlist = pl_Hold( p_libvlc );
playlist_AddExt( p_playlist, psz_val, NULL, PLAYLIST_INSERT, 0,
-1, 0, NULL, 0, true, pl_Unlocked );
- pl_Release( p_libvlc );
free( psz_val );
}
}
#endif
- /* Free playlist now */
- msg_Dbg( p_libvlc, "removing playlist" );
- vlc_object_release( p_playlist );
+ /* Free playlist now, all threads are gone */
+ playlist_Destroy( p_playlist );
stats_TimersDumpAll( p_libvlc );
stats_TimersCleanAll( p_libvlc );
}
vlc_mutex_unlock( &global_lock );
- msg_Destroy( p_libvlc );
+ msg_Destroy (priv->msg_bank);
/* Destroy mutexes */
vlc_mutex_destroy( &priv->timer_lock );
if( !mrl )
continue;
- playlist_t *p_playlist = pl_Hold( p_vlc );
- playlist_AddExt( p_playlist, mrl, NULL, PLAYLIST_INSERT,
+ playlist_AddExt( pl_Get( p_vlc ), mrl, NULL, PLAYLIST_INSERT,
0, -1, i_options, ( i_options ? &ppsz_argv[i_opt + 1] : NULL ),
VLC_INPUT_OPTION_TRUSTED, true, pl_Unlocked );
- pl_Release( p_vlc );
free( mrl );
}