#include <assert.h>
#include <vlc_vlm.h>
+#include <vlc_modules.h>
#ifndef WIN32
# include <sys/time.h> /* gettimeofday() */
if( p_vlm->p_vod )
{
module_unneed( p_vlm->p_vod, p_vlm->p_vod->p_module );
- vlc_object_detach( p_vlm->p_vod );
vlc_object_release( p_vlm->p_vod );
}
input_thread_t *p_input = p_instance->p_input;
if( p_input )
{
- input_resource_t *p_resource;
-
input_Stop( p_input, true );
vlc_thread_join( p_input );
- p_resource = input_DetachResource( p_input );
- input_resource_Delete( p_resource );
-
var_DelCallback( p_instance->p_input, "intf-event", InputEvent, p_media );
vlc_object_release( p_input );
vlm_SendEventMediaInstanceStopped( p_vlm, id, p_media->cfg.psz_name );
}
if( p_instance->p_input_resource )
- input_resource_Delete( p_instance->p_input_resource );
+ {
+ input_resource_Terminate( p_instance->p_input_resource );
+ input_resource_Release( p_instance->p_input_resource );
+ }
TAB_REMOVE( p_media->i_instance, p_media->instance, p_instance );
vlc_gc_decref( p_instance->p_item );
input_Stop( p_input, true );
vlc_thread_join( p_input );
- p_instance->p_input_resource = input_DetachResource( p_input );
-
var_DelCallback( p_instance->p_input, "intf-event", InputEvent, p_media );
vlc_object_release( p_input );
vlc_object_t *p_parent = p_media->cfg.b_vod ?
VLC_OBJECT(p_vlm->p_vod) :
VLC_OBJECT(p_vlm->p_libvlc);
+ if( !p_instance->p_input_resource )
+ p_instance->p_input_resource = input_resource_New( VLC_OBJECT( p_vlm ) );
p_instance->p_input = input_Create( p_parent, p_instance->p_item,
psz_log, p_instance->p_input_resource );
if( p_instance->p_input )
p_instance->p_input = NULL;
}
}
- p_instance->p_input_resource = NULL;
if( !p_instance->p_input )
{