if( !strcmp( p_parent->ppsz_options[i], "meta-file" ) )
continue;
- input_item_AddOpt( p_child,
- p_parent->ppsz_options[i],
- p_parent->optflagv[i] );
+ input_item_AddOption( p_child,
+ p_parent->ppsz_options[i],
+ p_parent->optflagv[i] );
}
vlc_mutex_unlock( &p_parent->lock );
vlc_event_send( &p_parent->event_manager, &event );
}
-int input_item_AddOption( input_item_t *p_item, const char *psz_option )
-{
- return input_item_AddOpt( p_item, psz_option, VLC_INPUT_OPTION_TRUSTED );
-}
-
bool input_item_HasErrorWhenReading( input_item_t *p_item )
{
vlc_mutex_lock( &p_item->lock );
vlc_mutex_unlock( &p_i->lock );
return psz_s;
}
-void input_item_SetURI( input_item_t *p_i, char *psz_uri )
+void input_item_SetURI( input_item_t *p_i, const char *psz_uri )
{
vlc_mutex_lock( &p_i->lock );
free( p_i->psz_uri );
p_i->psz_uri = strdup( psz_uri );
+
GuessType( p_i );
+ if( !p_i->psz_name && p_i->i_type == ITEM_TYPE_FILE )
+ {
+ const char *psz_filename = strrchr( p_i->psz_uri, DIR_SEP_CHAR );
+ if( psz_filename && *psz_filename == DIR_SEP_CHAR )
+ psz_filename++;
+ if( psz_filename && *psz_filename )
+ p_i->psz_name = strdup( psz_filename );
+ }
+
+ if( !p_i->psz_name )
+ p_i->psz_name = strdup( p_i->psz_uri );
+
vlc_mutex_unlock( &p_i->lock );
}
free( p_item );
}
-int input_item_AddOpt( input_item_t *p_input, const char *psz_option,
- unsigned flags )
+int input_item_AddOption( input_item_t *p_input, const char *psz_option,
+ unsigned flags )
{
int err = VLC_SUCCESS;
const char *psz_name,
int i_options,
const char *const *ppsz_options,
+ unsigned i_option_flags,
mtime_t i_duration )
{
return input_item_NewWithType( p_obj, psz_uri, psz_name,
- i_options, ppsz_options,
+ i_options, ppsz_options, i_option_flags,
i_duration, ITEM_TYPE_UNKNOWN );
}
const char *psz_name,
int i_options,
const char *const *ppsz_options,
+ unsigned i_option_flags,
mtime_t i_duration,
int i_type )
{
p_input->b_fixed_name = false;
- if( psz_uri )
- p_input->psz_uri = strdup( psz_uri );
- else
- p_input->psz_uri = NULL;
-
p_input->i_type = i_type;
p_input->b_prefers_tree = false;
- if( p_input->i_type == ITEM_TYPE_UNKNOWN )
- GuessType( p_input );
+ if( psz_uri )
+ input_item_SetURI( p_input, psz_uri );
- if( psz_name != NULL )
- p_input->psz_name = strdup( psz_name );
- else if( p_input->i_type == ITEM_TYPE_FILE && p_input->psz_uri )
- {
- const char *psz_filename = strrchr( p_input->psz_uri, DIR_SEP_CHAR );
- if( psz_filename && *psz_filename == DIR_SEP_CHAR )
- psz_filename++;
- p_input->psz_name = strdup( psz_filename && *psz_filename
- ? psz_filename : p_input->psz_uri );
- }
- else
- p_input->psz_name = p_input->psz_uri ? strdup( p_input->psz_uri ) : NULL;
+ if( i_type != ITEM_TYPE_UNKNOWN )
+ p_input->i_type = i_type;
+
+ if( psz_name )
+ input_item_SetName( p_input, psz_name );
p_input->i_duration = i_duration;
for( int i = 0; i < i_options; i++ )
- input_item_AddOption( p_input, ppsz_options[i] );
+ input_item_AddOption( p_input, ppsz_options[i], i_option_flags );
return p_input;
}