- vlc_mutex_lock( &PL->object_lock );
- p_mi = libvlc_media_instance_new_from_input_thread(
- p_instance, PL->p_input );
- vlc_mutex_unlock( &PL->object_lock );
+ vlc_object_lock( PL );
+ if( PL->p_input )
+ {
+ p_mi = libvlc_media_player_new_from_input_thread(
+ p_instance, PL->p_input, p_e );
+ }
+ else
+ {
+ /* no active input */
+ p_mi = NULL;
+ libvlc_exception_raise( p_e, "No active input" );
+ }
+ vlc_object_unlock( PL );