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;
input_ConfigVarInit( p_input );
/* Create Objects variables for public Get and Set */
- input_ControlVarInit( p_input );
+ if( !p_input->b_preparsing )
+ input_ControlVarInit( p_input );
+
p_input->p->input.i_cr_average = var_GetInteger( p_input, "cr-average" );
if( !p_input->b_preparsing )
/* 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;
input_ChangeState( p_input, END_S );
/* Clean control variables */
- input_ControlVarClean( p_input );
+ if( !p_input->b_preparsing )
+ input_ControlVarClean( p_input );
/* Clean up master */
InputSourceClean( p_input, &p_input->p->input );
if( in->p_access == NULL )
{
- msg_Err( p_input, "no suitable access module for `%s'", psz_mrl );
+ msg_Err( p_input, "open of `%s' failed: %s", psz_mrl,
+ msg_StackMsg() );
intf_UserFatal( VLC_OBJECT( p_input), VLC_FALSE,
_("Your input can't be opened"),
_("VLC is unable to open the MRL '%s'."