vlc | branch: master | Pierre Ynard <[email protected]> | Tue Oct 4 04:02:44 2011 +0200| [55ef5862627f0458fc0ab292ef93e12b115f9c6e] | committer: Pierre Ynard
vod: add glue code to set httpd configuration And reset the rtsp-host variable accordingly. This was broken since you couldn't set a base path without passing garbage as the host name. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=55ef5862627f0458fc0ab292ef93e12b115f9c6e --- modules/stream_out/vod.c | 85 +++++++++++++++++++++++++++------------------- 1 files changed, 50 insertions(+), 35 deletions(-) diff --git a/modules/stream_out/vod.c b/modules/stream_out/vod.c index 08f3ef9..61e8bac 100644 --- a/modules/stream_out/vod.c +++ b/modules/stream_out/vod.c @@ -77,7 +77,7 @@ struct vod_media_t struct vod_sys_t { - char *psz_rtsp_url; + char *psz_rtsp_path; /* */ vlc_thread_t thread; @@ -123,20 +123,52 @@ int OpenVoD( vlc_object_t *p_this ) psz_url = var_InheritString( p_vod, "rtsp-host" ); if( psz_url == NULL ) - p_sys->psz_rtsp_url = strdup( "/" ); + p_sys->psz_rtsp_path = strdup( "/" ); else - if( !( strlen( psz_url ) > 0 && psz_url[strlen( psz_url ) - 1] == '/' ) ) { - if( asprintf( &p_sys->psz_rtsp_url, "%s/", psz_url ) == -1 ) - { - p_sys->psz_rtsp_url = NULL; - free( psz_url ); - goto error; - } - free( psz_url ); + vlc_url_t url; + vlc_UrlParse( &url, psz_url, 0 ); + free( psz_url ); + + if( url.psz_path == NULL ) + p_sys->psz_rtsp_path = strdup( "/" ); + else + if( !( strlen( url.psz_path ) > 0 + && url.psz_path[strlen( url.psz_path ) - 1] == '/' ) ) + { + if( asprintf( &p_sys->psz_rtsp_path, "%s/", url.psz_path ) == -1 ) + { + p_sys->psz_rtsp_path = NULL; + vlc_UrlClean( &url ); + goto error; + } + } + else + p_sys->psz_rtsp_path = strdup( url.psz_path ); + + /* if( url.psz_host != NULL && *url.psz_host ) + { + msg_Err( p_vod, "\"%s\" RTSP host ignored", url.psz_host ); + msg_Info( p_vod, "Pass --rtsp-host=%s on the command line " + "instead.", url.psz_host ); + } */ + + var_Create( p_vod, "rtsp-host", VLC_VAR_STRING ); + var_SetString( p_vod, "rtsp-host", url.psz_host ); + + /* if( url.i_port != 0 ) + { + msg_Err( p_vod, "\"%u\" RTSP port ignored", url.i_port ); + msg_Info( p_vod, "Pass --rtsp-port=%u on the command line " + "instead.", url.i_port ); + } */ + + if( url.i_port <= 0 ) url.i_port = 554; + var_Create( p_vod, "rtsp-port", VLC_VAR_INTEGER ); + var_SetInteger( p_vod, "rtsp-port", url.i_port ); + + vlc_UrlClean( &url ); } - else - p_sys->psz_rtsp_url = psz_url; p_vod->pf_media_new = MediaNew; p_vod->pf_media_del = MediaAskDel; @@ -154,7 +186,7 @@ int OpenVoD( vlc_object_t *p_this ) error: if( p_sys ) { - free( p_sys->psz_rtsp_url ); + free( p_sys->psz_rtsp_path ); free( p_sys ); } @@ -185,7 +217,7 @@ void CloseVoD( vlc_object_t * p_this ) } block_FifoRelease( p_sys->p_fifo_cmd ); - free( p_sys->psz_rtsp_url ); + free( p_sys->psz_rtsp_path ); free( p_sys ); } @@ -263,30 +295,13 @@ static void MediaSetup( vod_t *p_vod, vod_media_t *p_media, const char *psz_name ) { vod_sys_t *p_sys = p_vod->p_sys; - char *psz_url; + char *psz_path; - if( asprintf( &psz_url, "%s%s", p_sys->psz_rtsp_url, psz_name ) < 0 ) + if( asprintf( &psz_path, "%s%s", p_sys->psz_rtsp_path, psz_name ) < 0 ) return; - vlc_url_t url; - vlc_UrlParse( &url, psz_url, 0 ); - free( psz_url ); - - if( url.psz_host != NULL && *url.psz_host ) - { - msg_Err( p_vod, "\"%s\" RTSP host ignored", url.psz_host ); - msg_Info( p_vod, "Pass --rtsp-host=%s on the command line " - "instead.", url.psz_host ); - } - if( url.i_port != 0 ) - { - msg_Err( p_vod, "\"%u\" RTSP port ignored", url.i_port ); - msg_Info( p_vod, "Pass --rtsp-port=%u on the command line " - "instead.", url.i_port ); - } - p_media->rtsp = RtspSetup(VLC_OBJECT(p_vod), p_media, url.psz_path); - - vlc_UrlClean( &url ); + p_media->rtsp = RtspSetup(VLC_OBJECT(p_vod), p_media, psz_path); + free( psz_path ); if (p_media->rtsp == NULL) return; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
