]> git.sesse.net Git - vlc/blobdiff - src/playlist/thread.c
luasd: use a configuration chain to pass parameters to SD
[vlc] / src / playlist / thread.c
index 3e7bf06ed0e06cfdb0ab55d019f7c658cdbd85d6..9d42c3fedb774bc6a6612f8f94e765d2efba1071 100644 (file)
@@ -25,6 +25,8 @@
 # include "config.h"
 #endif
 
+#include <assert.h>
+
 #include <vlc_common.h>
 #include <vlc_es.h>
 #include <vlc_input.h>
@@ -81,8 +83,8 @@ void playlist_Deactivate( playlist_t *p_playlist )
 
     msg_Dbg( p_playlist, "Deactivate" );
 
-    vlc_object_kill( p_playlist );
     PL_LOCK;
+    vlc_object_kill( p_playlist );
     vlc_cond_signal( &p_sys->signal );
     PL_UNLOCK;
 
@@ -107,8 +109,8 @@ void playlist_Deactivate( playlist_t *p_playlist )
         input_resource_Delete( p_sys->p_input_resource );
     p_sys->p_input_resource = NULL;
 
-    /* */
-    playlist_MLDump( p_playlist );
+    if( var_InheritBool( p_playlist, "media-library" ) )
+        playlist_MLDump( p_playlist );
 
     PL_LOCK;
 
@@ -257,6 +259,8 @@ static int PlayItem( playlist_t *p_playlist, playlist_item_t *p_item )
         p_sys->p_input = p_input_thread;
         var_AddCallback( p_input_thread, "intf-event", InputEvent, p_playlist );
 
+        var_SetAddress( p_playlist, "input-current", p_input_thread );
+
         if( input_Start( p_sys->p_input ) )
         {
             vlc_object_release( p_input_thread );
@@ -295,7 +299,7 @@ static int PlayItem( playlist_t *p_playlist, playlist_item_t *p_item )
         free( psz_arturl );
         free( psz_name );
     }
-
+    /* FIXME: this is not safe !!*/
     PL_UNLOCK;
     var_SetAddress( p_playlist, "item-current", p_input );
     PL_LOCK;