assert( p_input_thread->b_dead );
- /* Store the input resource for future use. */
- assert( p_mi->input.p_resource == NULL );
- p_mi->input.p_resource = input_DetachResource( p_input_thread );
-
p_mi->input.p_thread = NULL;
vlc_object_release( p_input_thread );
}
if( !p_mi->p_md )
{
unlock(p_mi);
+ unlock_input( p_mi );
libvlc_printerr( "No associated media descriptor" );
return -1;
}
+ if( !p_mi->input.p_resource )
+ p_mi->input.p_resource = input_resource_New( VLC_OBJECT( p_mi ) );
p_input_thread = input_Create( p_mi, p_mi->p_md->p_input_item, NULL,
p_mi->input.p_resource );
unlock(p_mi);
return -1;
}
- p_mi->input.p_resource = NULL;
-
var_AddCallback( p_input_thread, "can-seek", input_seekable_changed, p_mi );
var_AddCallback( p_input_thread, "can-pause", input_pausable_changed, p_mi );
var_AddCallback( p_input_thread, "intf-event", input_event_changed, p_mi );