]> git.sesse.net Git - vlc/blobdiff - src/control/playlist.c
control/media_descriptor.c: Expose event_manager().
[vlc] / src / control / playlist.c
index 2e7e3dfe243f6d7aaf61665a481edb7996c162c8..4d453af250842b2a806ea74e85c73df829ac1d6a 100644 (file)
@@ -211,31 +211,25 @@ void libvlc_playlist_unlock( libvlc_instance_t *p_instance )
     vlc_mutex_unlock( &PL->object_lock );
 }
 
-
-
-libvlc_input_t * libvlc_playlist_get_input( libvlc_instance_t *p_instance,
-                                            libvlc_exception_t *p_e )
+libvlc_media_instance_t * libvlc_playlist_get_media_instance(
+                                libvlc_instance_t *p_instance,
+                                libvlc_exception_t *p_e )
 {
-    libvlc_input_t *p_input;
+    libvlc_media_instance_t *p_mi;
     assert( PL );
 
     vlc_mutex_lock( &PL->object_lock );
-    if( PL->p_input == NULL )
-    {
-        libvlc_exception_raise( p_e, "No active input" );
-        vlc_mutex_unlock( &PL->object_lock );
-        return NULL;
-    }
-    p_input = (libvlc_input_t *)malloc( sizeof( libvlc_input_t ) );
-    if( !p_input )
+    if( PL->p_input )
     {
-        libvlc_exception_raise( p_e, "out of memory" );
-        vlc_mutex_unlock( &PL->object_lock );
-        return NULL;
+        p_mi = libvlc_media_instance_new_from_input_thread(
+                            p_instance, PL->p_input, p_e );
     }
-    p_input->i_input_id = PL->p_input->i_object_id;
-    p_input->p_instance = p_instance;
+    else
+        /* no active input */
+        p_mi = NULL;
+
     vlc_mutex_unlock( &PL->object_lock );
 
-    return p_input;
+    return p_mi;
 }
+