**************************************************************************/
static input_thread_t * get_input(libvlc_instance_t * p_instance)
{
- libvlc_exception_t p_e_unused; /* FIXME: error checking here */
- libvlc_input_t * p_libvlc_input = libvlc_playlist_get_input( p_instance, &p_e_unused );
+ libvlc_media_instance_t * p_mi;
input_thread_t * p_input;
- if( !p_libvlc_input )
+ p_mi = libvlc_playlist_get_media_instance( p_instance, NULL );
+
+ if( !p_mi )
return NULL;
-
- p_input = libvlc_get_input_thread( p_libvlc_input, &p_e_unused );
- libvlc_input_free(p_libvlc_input);
+ p_input = libvlc_get_input_thread( p_mi, NULL );
+
+ libvlc_media_instance_release( p_mi );
return p_input;
}
struct libvlc_callback_entry_list_t *p_listitem;
input_thread_t * p_input = get_input( p_instance );
+ if( !p_input )
+ return VLC_SUCCESS;
+
vlc_mutex_lock( &p_instance->instance_lock );
p_listitem = p_instance->p_callback_list;
{
playlist_t *p_playlist = p_instance->p_libvlc_int->p_playlist;
+ p_instance->p_callback_list = NULL;
+
if( !p_playlist )
RAISEVOID ("Can't listen to input event");