Commit 36edd715 authored by Laurent Aimar's avatar Laurent Aimar

Renamed input_item_AddOpt to input_item_AddOption.

 This will force people to use VLC_INPUT_OPTION_TRUSTED flag when they
need it and ease security review.
 This commit has no functionnal/security changes.
parent de2fd332
...@@ -114,14 +114,21 @@ VLC_EXPORT( void, input_item_SetName, ( input_item_t *p_item, const char *psz_na ...@@ -114,14 +114,21 @@ VLC_EXPORT( void, input_item_SetName, ( input_item_t *p_item, const char *psz_na
VLC_EXPORT( void, input_item_AddSubItem, ( input_item_t *p_parent, input_item_t *p_child ) ); VLC_EXPORT( void, input_item_AddSubItem, ( input_item_t *p_parent, input_item_t *p_child ) );
/* Flags handled past input_item_AddOpt() */ /**
#define VLC_INPUT_OPTION_TRUSTED 0x2 * Option flags
*/
enum input_item_option_e
{
VLC_INPUT_OPTION_TRUSTED = 0x2,
VLC_INPUT_OPTION_UNIQUE = 0x100,
};
/* Flags handled within input_item_AddOpt() */ /**
#define VLC_INPUT_OPTION_UNIQUE 0x100 * This function allows to add an option to an existing input_item_t.
*/
VLC_EXPORT( int, input_item_AddOption, (input_item_t *, const char *, unsigned i_flags ) );
VLC_EXPORT( int, input_item_AddOpt, ( input_item_t *, const char *str, unsigned flags ) ); /* */
VLC_EXPORT( int, input_item_AddOption, (input_item_t *, const char * ) );
VLC_EXPORT( bool, input_item_HasErrorWhenReading, ( input_item_t * ) ); VLC_EXPORT( bool, input_item_HasErrorWhenReading, ( input_item_t * ) );
VLC_EXPORT( void, input_item_SetMeta, ( input_item_t *, vlc_meta_type_t meta_type, const char *psz_val )); VLC_EXPORT( void, input_item_SetMeta, ( input_item_t *, vlc_meta_type_t meta_type, const char *psz_val ));
VLC_EXPORT( bool, input_item_MetaMatch, ( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz ) ); VLC_EXPORT( bool, input_item_MetaMatch, ( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz ) );
......
...@@ -440,9 +440,9 @@ static int GetTracks( access_t *p_access, input_item_t *p_current ) ...@@ -440,9 +440,9 @@ static int GetTracks( access_t *p_access, input_item_t *p_current )
psz_uri, psz_name, 0, NULL, -1, psz_uri, psz_name, 0, NULL, -1,
ITEM_TYPE_DISC ); ITEM_TYPE_DISC );
input_item_CopyOptions( p_current, p_input_item ); input_item_CopyOptions( p_current, p_input_item );
input_item_AddOption( p_input_item, psz_first ); input_item_AddOption( p_input_item, psz_first, VLC_INPUT_OPTION_TRUSTED );
input_item_AddOption( p_input_item, psz_last ); input_item_AddOption( p_input_item, psz_last, VLC_INPUT_OPTION_TRUSTED );
input_item_AddOption( p_input_item, psz_opt ); input_item_AddOption( p_input_item, psz_opt, VLC_INPUT_OPTION_TRUSTED );
const mtime_t i_duration = (int64_t)( p_sys->p_sectors[i+1] - p_sys->p_sectors[i] ) * const mtime_t i_duration = (int64_t)( p_sys->p_sectors[i+1] - p_sys->p_sectors[i] ) *
CDDA_DATA_SIZE * 1000000 / 44100 / 2 / 2; CDDA_DATA_SIZE * 1000000 / 44100 / 2 / 2;
input_item_SetDuration( p_input_item, i_duration ); input_item_SetDuration( p_input_item, i_duration );
......
...@@ -897,7 +897,7 @@ input_item_t *MRLParse( intf_thread_t *p_intf, const char *mrl, ...@@ -897,7 +897,7 @@ input_item_t *MRLParse( intf_thread_t *p_intf, const char *mrl,
{ {
s_temp = s_mrl + strlen( s_mrl ); s_temp = s_mrl + strlen( s_mrl );
} }
input_item_AddOption( p_input, s_mrl ); input_item_AddOption( p_input, s_mrl, VLC_INPUT_OPTION_TRUSTED );
s_mrl = s_temp; s_mrl = s_temp;
} }
......
...@@ -2245,7 +2245,7 @@ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl ) ...@@ -2245,7 +2245,7 @@ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl )
p_item = input_item_New( p_intf, psz_item_mrl, NULL ); p_item = input_item_New( p_intf, psz_item_mrl, NULL );
for( i = 0; i < i_options; i++ ) for( i = 0; i < i_options; i++ )
{ {
input_item_AddOption( p_item, ppsz_options[i] ); input_item_AddOption( p_item, ppsz_options[i], VLC_INPUT_OPTION_TRUSTED );
} }
} }
......
...@@ -121,7 +121,7 @@ static int Demux( demux_t *p_demux ) ...@@ -121,7 +121,7 @@ static int Demux( demux_t *p_demux )
for( i = 0; i< i_options; i++ ) for( i = 0; i< i_options; i++ )
{ {
EnsureUTF8( ppsz_options[i] ); EnsureUTF8( ppsz_options[i] );
input_item_AddOption( p_input, ppsz_options[i] ); input_item_AddOption( p_input, ppsz_options[i], VLC_INPUT_OPTION_TRUSTED );
} }
input_item_AddSubItem( p_current_input, p_input ); input_item_AddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input ); vlc_gc_decref( p_input );
......
...@@ -225,7 +225,7 @@ static int Demux( demux_t *p_demux ) ...@@ -225,7 +225,7 @@ static int Demux( demux_t *p_demux )
input_item_AddSubItem( p_current_input, p_input ); input_item_AddSubItem( p_current_input, p_input );
for( int i = 0; i < i_options; i++ ) for( int i = 0; i < i_options; i++ )
input_item_AddOpt( p_input, ppsz_options[i], 0 ); input_item_AddOption( p_input, ppsz_options[i], 0 );
vlc_gc_decref( p_input ); vlc_gc_decref( p_input );
free( psz_mrl ); free( psz_mrl );
} }
......
...@@ -393,7 +393,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -393,7 +393,7 @@ static int Demux ( demux_t *p_demux )
p_sys->i_packet_size += 1000; p_sys->i_packet_size += 1000;
if( asprintf( &psz_option, "mtu=%i", p_sys->i_packet_size ) != -1 ) if( asprintf( &psz_option, "mtu=%i", p_sys->i_packet_size ) != -1 )
{ {
input_item_AddOption( p_child, psz_option ); input_item_AddOption( p_child, psz_option, VLC_INPUT_OPTION_TRUSTED );
free( psz_option ); free( psz_option );
} }
} }
...@@ -402,7 +402,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -402,7 +402,7 @@ static int Demux ( demux_t *p_demux )
char *psz_option; char *psz_option;
if( asprintf( &psz_option, "rtsp-caching=5000" ) != -1 ) if( asprintf( &psz_option, "rtsp-caching=5000" ) != -1 )
{ {
input_item_AddOption( p_child, psz_option ); input_item_AddOption( p_child, psz_option, VLC_INPUT_OPTION_TRUSTED );
free( psz_option ); free( psz_option );
} }
} }
...@@ -411,7 +411,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -411,7 +411,7 @@ static int Demux ( demux_t *p_demux )
char *psz_option; char *psz_option;
if( asprintf( &psz_option, "rtsp-kasenna" ) != -1 ) if( asprintf( &psz_option, "rtsp-kasenna" ) != -1 )
{ {
input_item_AddOption( p_child, psz_option ); input_item_AddOption( p_child, psz_option, VLC_INPUT_OPTION_TRUSTED );
free( psz_option ); free( psz_option );
} }
} }
......
...@@ -671,7 +671,7 @@ static bool set_option SIMPLE_INTERFACE ...@@ -671,7 +671,7 @@ static bool set_option SIMPLE_INTERFACE
/* re-convert xml special characters inside psz_value */ /* re-convert xml special characters inside psz_value */
resolve_xml_special_chars( psz_value ); resolve_xml_special_chars( psz_value );
input_item_AddOpt( p_input, psz_value, 0 ); input_item_AddOption( p_input, psz_value, 0 );
return true; return true;
} }
......
...@@ -1073,7 +1073,8 @@ ...@@ -1073,7 +1073,8 @@
{ {
for( i = 0; i < (int)[o_options count]; i++ ) for( i = 0; i < (int)[o_options count]; i++ )
{ {
input_item_AddOption( p_input, strdup( [[o_options objectAtIndex:i] UTF8String] ) ); input_item_AddOption( p_input, strdup( [[o_options objectAtIndex:i] UTF8String] ),
VLC_INPUT_OPTION_TRUSTED );
} }
} }
......
...@@ -1278,14 +1278,16 @@ static VLCWizard *_o_sharedInstance = nil; ...@@ -1278,14 +1278,16 @@ static VLCWizard *_o_sharedInstance = nil;
objectAtIndex:x] UTF8String], objectAtIndex:x] UTF8String],
[tempString UTF8String] ); [tempString UTF8String] );
input_item_AddOption( p_input, [[[o_userSelections input_item_AddOption( p_input, [[[o_userSelections
objectForKey:@"opts"] objectAtIndex: x] UTF8String]); objectForKey:@"opts"] objectAtIndex: x] UTF8String],
VLC_INPUT_OPTION_TRUSTED );
if(! [[o_userSelections objectForKey:@"partExtractFrom"] if(! [[o_userSelections objectForKey:@"partExtractFrom"]
isEqualToString:@""] ) isEqualToString:@""] )
{ {
input_item_AddOption( p_input, [[NSString input_item_AddOption( p_input, [[NSString
stringWithFormat: @"start-time=%@", [o_userSelections stringWithFormat: @"start-time=%@", [o_userSelections
objectForKey: @"partExtractFrom"]] UTF8String] ); objectForKey: @"partExtractFrom"]] UTF8String],
VLC_INPUT_OPTION_TRUSTED );
} }
if(! [[o_userSelections objectForKey:@"partExtractTo"] if(! [[o_userSelections objectForKey:@"partExtractTo"]
...@@ -1293,12 +1295,14 @@ static VLCWizard *_o_sharedInstance = nil; ...@@ -1293,12 +1295,14 @@ static VLCWizard *_o_sharedInstance = nil;
{ {
input_item_AddOption( p_input, [[NSString input_item_AddOption( p_input, [[NSString
stringWithFormat: @"stop-time=%@", [o_userSelections stringWithFormat: @"stop-time=%@", [o_userSelections
objectForKey: @"partExtractTo"]] UTF8String] ); objectForKey: @"partExtractTo"]] UTF8String],
VLC_INPUT_OPTION_TRUSTED );
} }
input_item_AddOption( p_input, [[NSString stringWithFormat: input_item_AddOption( p_input, [[NSString stringWithFormat:
@"ttl=%@", [o_userSelections objectForKey:@"ttl"]] @"ttl=%@", [o_userSelections objectForKey:@"ttl"]]
UTF8String] ); UTF8String],
VLC_INPUT_OPTION_TRUSTED );
/* FIXME: playlist_AddInput() can fail */ /* FIXME: playlist_AddInput() can fail */
playlist_AddInput( p_playlist, p_input, PLAYLIST_STOP, playlist_AddInput( p_playlist, p_input, PLAYLIST_STOP,
......
...@@ -331,7 +331,7 @@ void OpenDialog::finish( bool b_enqueue = false ) ...@@ -331,7 +331,7 @@ void OpenDialog::finish( bool b_enqueue = false )
while( i + 1 < tempMRL.size() && tempMRL[i + 1].startsWith( ":" ) ) while( i + 1 < tempMRL.size() && tempMRL[i + 1].startsWith( ":" ) )
{ {
i++; i++;
input_item_AddOption( p_input, qtu( tempMRL[i] ) ); input_item_AddOption( p_input, qtu( tempMRL[i] ), VLC_INPUT_OPTION_TRUSTED );
} }
/* Switch between enqueuing and starting the item */ /* Switch between enqueuing and starting the item */
......
...@@ -1168,7 +1168,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) ) ...@@ -1168,7 +1168,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) )
((const char *)mrl[i + 1].mb_str(wxConvUTF8))[0] == ':' ) ((const char *)mrl[i + 1].mb_str(wxConvUTF8))[0] == ':' )
{ {
psz_utf8 = wxFromLocale( mrl[i + 1] ); psz_utf8 = wxFromLocale( mrl[i + 1] );
input_item_AddOption( p_input, psz_utf8 ); input_item_AddOption( p_input, psz_utf8, VLC_INPUT_OPTION_TRUSTED );
wxLocaleFree( psz_utf8 ); wxLocaleFree( psz_utf8 );
i++; i++;
} }
...@@ -1179,7 +1179,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) ) ...@@ -1179,7 +1179,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) )
for( int j = 0; j < (int)subsfile_mrl.GetCount(); j++ ) for( int j = 0; j < (int)subsfile_mrl.GetCount(); j++ )
{ {
psz_utf8 = wxFromLocale( subsfile_mrl[j] ); psz_utf8 = wxFromLocale( subsfile_mrl[j] );
input_item_AddOption( p_input, psz_utf8 ); input_item_AddOption( p_input, psz_utf8, VLC_INPUT_OPTION_TRUSTED );
wxLocaleFree( psz_utf8 ); wxLocaleFree( psz_utf8 );
} }
} }
...@@ -1190,7 +1190,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) ) ...@@ -1190,7 +1190,7 @@ void OpenDialog::OnOk( wxCommandEvent& WXUNUSED(event) )
for( int j = 0; j < (int)sout_mrl.GetCount(); j++ ) for( int j = 0; j < (int)sout_mrl.GetCount(); j++ )
{ {
psz_utf8 = wxFromLocale( sout_mrl[j] ); psz_utf8 = wxFromLocale( sout_mrl[j] );
input_item_AddOption( p_input, psz_utf8 ); input_item_AddOption( p_input, psz_utf8, VLC_INPUT_OPTION_TRUSTED );
wxLocaleFree( psz_utf8 ); wxLocaleFree( psz_utf8 );
} }
} }
......
...@@ -1611,23 +1611,23 @@ void WizardDialog::Run() ...@@ -1611,23 +1611,23 @@ void WizardDialog::Run()
{ {
input_item_t *p_input = input_item_New( p_playlist, mrl, input_item_t *p_input = input_item_New( p_playlist, mrl,
ITEM_NAME ); ITEM_NAME );
input_item_AddOption( p_input, psz_opt ); input_item_AddOption( p_input, psz_opt, VLC_INPUT_OPTION_TRUSTED );
if( i_from != 0) if( i_from != 0)
{ {
char psz_from[20]; char psz_from[20];
snprintf( psz_from, 20, "start-time=%i", i_from); snprintf( psz_from, 20, "start-time=%i", i_from);
input_item_AddOption( p_input, psz_from ); input_item_AddOption( p_input, psz_from, VLC_INPUT_OPTION_TRUSTED );
} }
if( i_to != 0) if( i_to != 0)
{ {
char psz_to[20]; char psz_to[20];
snprintf( psz_to, 20, "stop-time=%i", i_to); snprintf( psz_to, 20, "stop-time=%i", i_to);
input_item_AddOption( p_input, psz_to ); input_item_AddOption( p_input, psz_to, VLC_INPUT_OPTION_TRUSTED );
} }
char psz_ttl[20]; char psz_ttl[20];
snprintf( psz_ttl, 20, "ttl=%i",i_ttl ); snprintf( psz_ttl, 20, "ttl=%i",i_ttl );
input_item_AddOption( p_input, psz_ttl ); input_item_AddOption( p_input, psz_ttl, VLC_INPUT_OPTION_TRUSTED );
/* FIXME: playlist_AddInput() can fail */ /* FIXME: playlist_AddInput() can fail */
playlist_AddInput( p_playlist, p_input, playlist_AddInput( p_playlist, p_input,
......
...@@ -247,7 +247,7 @@ static void ParseUrls( services_discovery_t *p_sd, char *psz_urls ) ...@@ -247,7 +247,7 @@ static void ParseUrls( services_discovery_t *p_sd, char *psz_urls )
strdup( psz_urls ) ); strdup( psz_urls ) );
p_input = input_item_NewExt( p_sd, psz_urls, p_input = input_item_NewExt( p_sd, psz_urls,
psz_urls, 0, NULL, -1 ); psz_urls, 0, NULL, -1 );
input_item_AddOption( p_input, "demux=podcast" ); input_item_AddOption( p_input, "demux=podcast", VLC_INPUT_OPTION_TRUSTED );
services_discovery_AddItem( p_sd, p_input, NULL /* no cat */ ); services_discovery_AddItem( p_sd, p_input, NULL /* no cat */ );
vlc_gc_decref( p_input ); vlc_gc_decref( p_input );
INSERT_ELEM( p_sys->pp_input, p_sys->i_input, p_sys->i_input, INSERT_ELEM( p_sys->pp_input, p_sys->i_input, p_sys->i_input,
......
...@@ -664,7 +664,7 @@ static int Demux( demux_t *p_demux ) ...@@ -664,7 +664,7 @@ static int Demux( demux_t *p_demux )
char *rtcp; char *rtcp;
if( asprintf( &rtcp, ":rtcp-port=%u", p_sdp->rtcp_port ) != -1 ) if( asprintf( &rtcp, ":rtcp-port=%u", p_sdp->rtcp_port ) != -1 )
{ {
input_item_AddOption( p_parent_input, rtcp ); input_item_AddOption( p_parent_input, rtcp, VLC_INPUT_OPTION_TRUSTED );
free( rtcp ); free( rtcp );
} }
} }
...@@ -880,7 +880,7 @@ sap_announce_t *CreateAnnounce( services_discovery_t *p_sd, uint16_t i_hash, ...@@ -880,7 +880,7 @@ sap_announce_t *CreateAnnounce( services_discovery_t *p_sd, uint16_t i_hash,
char *rtcp; char *rtcp;
if( asprintf( &rtcp, ":rtcp-port=%u", p_sdp->rtcp_port ) != -1 ) if( asprintf( &rtcp, ":rtcp-port=%u", p_sdp->rtcp_port ) != -1 )
{ {
input_item_AddOption( p_input, rtcp ); input_item_AddOption( p_input, rtcp, VLC_INPUT_OPTION_TRUSTED );
free( rtcp ); free( rtcp );
} }
} }
......
...@@ -192,8 +192,8 @@ static input_item_t * CreateInputItemFromShoutItem( services_discovery_t *p_sd, ...@@ -192,8 +192,8 @@ static input_item_t * CreateInputItemFromShoutItem( services_discovery_t *p_sd,
/* Copy options */ /* Copy options */
for( i = 0; p_item->ppsz_options[i] != NULL; i++ ) for( i = 0; p_item->ppsz_options[i] != NULL; i++ )
input_item_AddOption( p_input, p_item->ppsz_options[i] ); input_item_AddOption( p_input, p_item->ppsz_options[i], VLC_INPUT_OPTION_TRUSTED );
input_item_AddOption( p_input, "no-playlist-autostart" ); input_item_AddOption( p_input, "no-playlist-autostart", VLC_INPUT_OPTION_TRUSTED );
return p_input; return p_input;
} }
......
...@@ -346,7 +346,7 @@ void libvlc_media_add_option( ...@@ -346,7 +346,7 @@ void libvlc_media_add_option(
libvlc_exception_t *p_e ) libvlc_exception_t *p_e )
{ {
VLC_UNUSED(p_e); VLC_UNUSED(p_e);
input_item_AddOpt( p_md->p_input_item, ppsz_option, input_item_AddOption( p_md->p_input_item, ppsz_option,
VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED ); VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED );
} }
......
...@@ -318,7 +318,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) ...@@ -318,7 +318,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
if( asprintf( &str, "%s=%s", psz_option, psz_value ) == -1 ) if( asprintf( &str, "%s=%s", psz_option, psz_value ) == -1 )
return VLC_ENOMEM; return VLC_ENOMEM;
i = input_item_AddOpt( p_input->p->p_item, str, i = input_item_AddOption( p_input->p->p_item, str,
VLC_INPUT_OPTION_UNIQUE ); VLC_INPUT_OPTION_UNIQUE );
free( str ); free( str );
return i; return i;
...@@ -489,7 +489,7 @@ static void UpdateBookmarksOption( input_thread_t *p_input ) ...@@ -489,7 +489,7 @@ static void UpdateBookmarksOption( input_thread_t *p_input )
vlc_mutex_unlock( &p_input->p->p_item->lock ); vlc_mutex_unlock( &p_input->p->p_item->lock );
if( psz_value ) if( psz_value )
input_item_AddOpt( p_input->p->p_item, psz_value, VLC_INPUT_OPTION_UNIQUE ); input_item_AddOption( p_input->p->p_item, psz_value, VLC_INPUT_OPTION_UNIQUE );
free( psz_value ); free( psz_value );
......
...@@ -223,7 +223,7 @@ void input_item_CopyOptions( input_item_t *p_parent, ...@@ -223,7 +223,7 @@ void input_item_CopyOptions( input_item_t *p_parent,
if( !strcmp( p_parent->ppsz_options[i], "meta-file" ) ) if( !strcmp( p_parent->ppsz_options[i], "meta-file" ) )
continue; continue;
input_item_AddOpt( p_child, input_item_AddOption( p_child,
p_parent->ppsz_options[i], p_parent->ppsz_options[i],
p_parent->optflagv[i] ); p_parent->optflagv[i] );
} }
...@@ -251,11 +251,6 @@ void input_item_AddSubItem( input_item_t *p_parent, input_item_t *p_child ) ...@@ -251,11 +251,6 @@ void input_item_AddSubItem( input_item_t *p_parent, input_item_t *p_child )
vlc_event_send( &p_parent->event_manager, &event ); 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 ) bool input_item_HasErrorWhenReading( input_item_t *p_item )
{ {
vlc_mutex_lock( &p_item->lock ); vlc_mutex_lock( &p_item->lock );
...@@ -451,7 +446,7 @@ static void input_item_Destroy ( gc_object_t *p_gc ) ...@@ -451,7 +446,7 @@ static void input_item_Destroy ( gc_object_t *p_gc )
free( p_item ); free( p_item );
} }
int input_item_AddOpt( input_item_t *p_input, const char *psz_option, int input_item_AddOption( input_item_t *p_input, const char *psz_option,
unsigned flags ) unsigned flags )
{ {
int err = VLC_SUCCESS; int err = VLC_SUCCESS;
...@@ -677,7 +672,7 @@ input_item_t *input_item_NewWithType( vlc_object_t *p_obj, const char *psz_uri, ...@@ -677,7 +672,7 @@ input_item_t *input_item_NewWithType( vlc_object_t *p_obj, const char *psz_uri,
p_input->i_duration = i_duration; p_input->i_duration = i_duration;
for( int i = 0; i < i_options; i++ ) for( int i = 0; i < i_options; i++ )
input_item_AddOption( p_input, ppsz_options[i] ); input_item_AddOption( p_input, ppsz_options[i], VLC_INPUT_OPTION_TRUSTED );
return p_input; return p_input;
} }
......
...@@ -514,14 +514,14 @@ static int vlm_OnMediaUpdate( vlm_t *p_vlm, vlm_media_sys_t *p_media ) ...@@ -514,14 +514,14 @@ static int vlm_OnMediaUpdate( vlm_t *p_vlm, vlm_media_sys_t *p_media )
if( psz_output && asprintf( &psz_dup, "sout=%s", psz_output ) != -1 ) if( psz_output && asprintf( &psz_dup, "sout=%s", psz_output ) != -1 )
{ {
input_item_AddOption( p_media->vod.p_item, psz_dup ); input_item_AddOption( p_media->vod.p_item, psz_dup, VLC_INPUT_OPTION_TRUSTED );
free( psz_dup ); free( psz_dup );
} }
free( psz_output ); free( psz_output );
for( i = 0; i < p_cfg->i_option; i++ ) for( i = 0; i < p_cfg->i_option; i++ )
input_item_AddOption( p_media->vod.p_item, input_item_AddOption( p_media->vod.p_item,
p_cfg->ppsz_option[i] ); p_cfg->ppsz_option[i], VLC_INPUT_OPTION_TRUSTED );
if( asprintf( &psz_header, _("Media: %s"), p_cfg->psz_name ) == -1 ) if( asprintf( &psz_header, _("Media: %s"), p_cfg->psz_name ) == -1 )
psz_header = NULL; psz_header = NULL;
...@@ -818,7 +818,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char * ...@@ -818,7 +818,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char *
(p_cfg->psz_output && psz_vod_output) ? ":" : psz_vod_output ? "#" : "", (p_cfg->psz_output && psz_vod_output) ? ":" : psz_vod_output ? "#" : "",
psz_vod_output ? psz_vod_output : "" ) != -1 ) psz_vod_output ? psz_vod_output : "" ) != -1 )
{ {
input_item_AddOption( p_instance->p_item, psz_buffer ); input_item_AddOption( p_instance->p_item, psz_buffer, VLC_INPUT_OPTION_TRUSTED );
free( psz_buffer ); free( psz_buffer );
} }
} }
...@@ -830,7 +830,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char * ...@@ -830,7 +830,7 @@ static int vlm_ControlMediaInstanceStart( vlm_t *p_vlm, int64_t id, const char *
else if( !strcmp( p_cfg->ppsz_option[i], "nosout-keep" ) || !strcmp( p_cfg->ppsz_option[i], "no-sout-keep" ) ) else if( !strcmp( p_cfg->ppsz_option[i], "nosout-keep" ) || !strcmp( p_cfg->ppsz_option[i], "no-sout-keep" ) )
p_instance->b_sout_keep = false; p_instance->b_sout_keep = false;
else else
input_item_AddOption( p_instance->p_item, p_cfg->ppsz_option[i] ); input_item_AddOption( p_instance->p_item, p_cfg->ppsz_option[i], VLC_INPUT_OPTION_TRUSTED );
} }
TAB_APPEND( p_media->i_instance, p_media->instance, p_instance ); TAB_APPEND( p_media->i_instance, p_media->instance, p_instance );
} }
......
...@@ -162,7 +162,6 @@ input_DecoderDelete ...@@ -162,7 +162,6 @@ input_DecoderDelete
input_DecoderNew input_DecoderNew
input_GetItem input_GetItem
input_item_AddInfo input_item_AddInfo
input_item_AddOpt
input_item_AddOption input_item_AddOption
input_item_AddSubItem input_item_AddSubItem
input_item_CopyOptions input_item_CopyOptions
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment