Commit 3f5d4a95 authored by Laurent Aimar's avatar Laurent Aimar

Export input_SplitMRL helper.

parent 2ba2327b
...@@ -543,4 +543,13 @@ VLC_EXPORT( bool, input_AddSubtitles, ( input_thread_t *, char *, bool ) ); ...@@ -543,4 +543,13 @@ VLC_EXPORT( bool, input_AddSubtitles, ( input_thread_t *, char *, bool ) );
VLC_EXPORT( vlc_event_manager_t *, input_get_event_manager, ( input_thread_t * ) ); VLC_EXPORT( vlc_event_manager_t *, input_get_event_manager, ( input_thread_t * ) );
/**
* This function allows to split a MRL into access, demux and path part.
*
* You should not write into access and demux string as they may not point into
* the provided buffer.
* The buffer provided by psz_dup will be modified.
*/
VLC_EXPORT( void, input_SplitMRL, ( const char **ppsz_access, const char **ppsz_demux, char **ppsz_path, char *psz_dup ) );
#endif #endif
...@@ -2085,7 +2085,7 @@ static int InputSourceInit( input_thread_t *p_input, ...@@ -2085,7 +2085,7 @@ static int InputSourceInit( input_thread_t *p_input,
if( !p_input ) return VLC_EGENERIC; if( !p_input ) return VLC_EGENERIC;
/* Split uri */ /* Split uri */
MRLSplit( psz_dup, &psz_access, &psz_demux, &psz_path ); input_SplitMRL( &psz_access, &psz_demux, &psz_path, psz_dup );
msg_Dbg( p_input, "`%s' gives access `%s' demux `%s' path `%s'", msg_Dbg( p_input, "`%s' gives access `%s' demux `%s' path `%s'",
psz_mrl, psz_access, psz_demux, psz_path ); psz_mrl, psz_access, psz_demux, psz_path );
...@@ -2292,7 +2292,7 @@ static int InputSourceInit( input_thread_t *p_input, ...@@ -2292,7 +2292,7 @@ static int InputSourceInit( input_thread_t *p_input,
{ {
const char *psz_a, *psz_d; const char *psz_a, *psz_d;
psz_buf = strdup( in->p_access->psz_path ); psz_buf = strdup( in->p_access->psz_path );
MRLSplit( psz_buf, &psz_a, &psz_d, &psz_real_path ); input_SplitMRL( &psz_a, &psz_d, &psz_real_path, psz_buf );
} }
else else
{ {
...@@ -2674,8 +2674,8 @@ static void DemuxMeta( input_thread_t *p_input, vlc_meta_t *p_meta, demux_t *p_d ...@@ -2674,8 +2674,8 @@ static void DemuxMeta( input_thread_t *p_input, vlc_meta_t *p_meta, demux_t *p_d
* MRLSplit: parse the access, demux and url part of the * MRLSplit: parse the access, demux and url part of the
* Media Resource Locator. * Media Resource Locator.
*****************************************************************************/ *****************************************************************************/
void MRLSplit( char *psz_dup, const char **ppsz_access, const char **ppsz_demux, void input_SplitMRL( const char **ppsz_access, const char **ppsz_demux, char **ppsz_path,
char **ppsz_path ) char *psz_dup )
{ {
char *psz_access = NULL; char *psz_access = NULL;
char *psz_demux = NULL; char *psz_demux = NULL;
...@@ -2707,7 +2707,7 @@ void MRLSplit( char *psz_dup, const char **ppsz_access, const char **ppsz_demux, ...@@ -2707,7 +2707,7 @@ void MRLSplit( char *psz_dup, const char **ppsz_access, const char **ppsz_demux,
} }
*ppsz_access = psz_access ? psz_access : (char*)""; *ppsz_access = psz_access ? psz_access : (char*)"";
*ppsz_demux = psz_demux ? psz_demux : (char*)""; *ppsz_demux = psz_demux ? psz_demux : (char*)"";
*ppsz_path = psz_path ? psz_path : (char*)""; *ppsz_path = psz_path;
} }
static inline bool next(char ** src) static inline bool next(char ** src)
...@@ -2871,8 +2871,7 @@ bool input_AddSubtitles( input_thread_t *p_input, char *psz_subtitle, ...@@ -2871,8 +2871,7 @@ bool input_AddSubtitles( input_thread_t *p_input, char *psz_subtitle,
/***************************************************************************** /*****************************************************************************
* input_get_event_manager * input_get_event_manager
*****************************************************************************/ *****************************************************************************/
vlc_event_manager_t * vlc_event_manager_t *input_get_event_manager( input_thread_t *p_input )
input_get_event_manager( input_thread_t *p_input )
{ {
return &p_input->p->event_manager; return &p_input->p->event_manager;
} }
...@@ -382,8 +382,6 @@ void input_ClockSetRate( input_clock_t *cl, int i_rate ); ...@@ -382,8 +382,6 @@ void input_ClockSetRate( input_clock_t *cl, int i_rate );
char **subtitles_Detect( input_thread_t *, char* path, const char *fname ); char **subtitles_Detect( input_thread_t *, char* path, const char *fname );
int subtitles_Filter( const char *); int subtitles_Filter( const char *);
void MRLSplit( char *, const char **, const char **, char ** );
static inline void input_ChangeStateWithVarCallback( input_thread_t *p_input, int state, bool callback ) static inline void input_ChangeStateWithVarCallback( input_thread_t *p_input, int state, bool callback )
{ {
const bool changed = p_input->i_state != state; const bool changed = p_input->i_state != state;
......
...@@ -254,11 +254,12 @@ stream_t *__stream_UrlNew( vlc_object_t *p_parent, const char *psz_url ) ...@@ -254,11 +254,12 @@ stream_t *__stream_UrlNew( vlc_object_t *p_parent, const char *psz_url )
access_t *p_access; access_t *p_access;
stream_t *p_res; stream_t *p_res;
if( !psz_url ) return 0; if( !psz_url )
return NULL;
char psz_dup[strlen (psz_url) + 1]; char psz_dup[strlen( psz_url ) + 1];
strcpy (psz_dup, psz_url);; strcpy( psz_dup, psz_url );
MRLSplit( psz_dup, &psz_access, &psz_demux, &psz_path ); input_SplitMRL( &psz_access, &psz_demux, &psz_path, psz_dup );
/* Now try a real access */ /* Now try a real access */
p_access = access_New( p_parent, psz_access, psz_demux, psz_path ); p_access = access_New( p_parent, psz_access, psz_demux, psz_path );
......
...@@ -177,6 +177,7 @@ input_item_SetURI ...@@ -177,6 +177,7 @@ input_item_SetURI
input_MetaTypeToLocalizedString input_MetaTypeToLocalizedString
__input_Preparse __input_Preparse
__input_Read __input_Read
input_SplitMRL
input_StopThread input_StopThread
input_vaControl input_vaControl
__intf_Create __intf_Create
......
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