VLC_API int input_Control( input_thread_t *, int i_query, ... );
VLC_API void input_Close( input_thread_t * );
+void input_Join( input_thread_t * );
+void input_Release( input_thread_t * );
/**
* Get the input item for an input thread
input_ControlPush( p_input, INPUT_CONTROL_SET_DIE, NULL );
}
+void input_Join( input_thread_t *p_input )
+{
+ if( p_input->p->is_running )
+ vlc_join( p_input->p->thread, NULL );
+}
+
+void input_Release( input_thread_t *p_input )
+{
+ vlc_object_release( p_input );
+}
+
/**
* Close an input
*
*/
void input_Close( input_thread_t *p_input )
{
- if( p_input->p->is_running )
- vlc_join( p_input->p->thread, NULL );
- vlc_object_release( p_input );
+ input_Join( p_input );
+ input_Release( p_input );
}
/**
if( p_input )
{
input_Stop( p_input, true );
+ input_Join( p_input );
var_DelCallback( p_instance->p_input, "intf-event", InputEvent, p_media );
- input_Close( p_input );
+ input_Release( p_input );
vlm_SendEventMediaInstanceStopped( p_vlm, id, p_media->cfg.psz_name );
}
input_Stop( p_input, true );
+ input_Join( p_input );
var_DelCallback( p_instance->p_input, "intf-event", InputEvent, p_media );
- input_Close( p_input );
+ input_Release( p_input );
if( !p_instance->b_sout_keep )
input_resource_TerminateSout( p_instance->p_input_resource );