static int Run ( input_thread_t *p_input );
static int RunAndClean ( input_thread_t *p_input );
-static input_thread_t * Create ( vlc_object_t *, input_item_t *, char *,
- vlc_bool_t );
+static input_thread_t * Create ( vlc_object_t *, input_item_t *,
+ const char *, vlc_bool_t );
static int Init ( input_thread_t *p_input );
static void Error ( input_thread_t *p_input );
static void End ( input_thread_t *p_input );
* TODO complete this list (?)
*****************************************************************************/
static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
- char *psz_header, vlc_bool_t b_quick )
+ const char *psz_header, vlc_bool_t b_quick )
{
input_thread_t *p_input = NULL; /* thread descriptor */
vlc_value_t val;
/* Gruik ! */
input_thread_t *__input_CreateThread2( vlc_object_t *p_parent,
input_item_t *p_item,
- char *psz_header )
+ const char *psz_header )
{
input_thread_t *p_input = NULL; /* thread descriptor */
input_ChangeState( p_input, ERROR_S );
msg_Err( p_input, "cannot create input thread" );
vlc_object_detach( p_input );
+ free( p_input->p );
vlc_object_destroy( p_input );
return NULL;
}
input_ChangeState( p_input, ERROR_S );
msg_Err( p_input, "cannot create input thread" );
vlc_object_detach( p_input );
+ free( p_input->p );
vlc_object_destroy( p_input );
return VLC_EGENERIC;
}
if( p_input->p->p_es_out ) input_EsOutDelete( p_input->p->p_es_out );
vlc_object_detach( p_input );
+ free( p_input->p );
vlc_object_destroy( p_input );
return VLC_SUCCESS;
/* Release memory */
vlc_object_detach( p_input );
+ free( p_input->p );
vlc_object_destroy( p_input );
return 0;
* Internal prototypes
***************************************************************************/
+/* input.c */
+#define input_CreateThread2(a,b,c) __input_CreateThread2(VLC_OBJECT(a),b,c)
+input_thread_t *__input_CreateThread2 ( vlc_object_t *, input_item_t *, const char * );
+
/* var.c */
void input_ControlVarInit ( input_thread_t * );
void input_ControlVarClean( input_thread_t * );