Commit 1d07aed4 authored by Jean-Paul Saman's avatar Jean-Paul Saman

live555: handle WMServer as a special case

This patch adds --rtsp-wmserver which is needed to support pause mode. WMServer does not report any of the known RTSP OPTIONS when asking for it. Instead it returns a list of non-standard options.

Conflicts:

	modules/demux/live555.cpp
parent f0ba0295
...@@ -82,6 +82,11 @@ static void Close( vlc_object_t * ); ...@@ -82,6 +82,11 @@ static void Close( vlc_object_t * );
"dialect of RTSP. With this parameter VLC will try this dialect, but "\ "dialect of RTSP. With this parameter VLC will try this dialect, but "\
"then it cannot connect to normal RTSP servers." ) "then it cannot connect to normal RTSP servers." )
#define WMSERVER_TEXT N_("WMServer RTSP dialect")
#define WMSERVER_LONGTEXT N_("WMServer uses an unstandard dialect " \
"of RTSP. Selecting this parameter will tell VLC to assume some " \
"options contrary to RFC 2326 guidelines.")
#define USER_TEXT N_("RTSP user name") #define USER_TEXT N_("RTSP user name")
#define USER_LONGTEXT N_("Sets the username for the connection, " \ #define USER_LONGTEXT N_("Sets the username for the connection, " \
"if no username or password are set in the url.") "if no username or password are set in the url.")
...@@ -131,6 +136,9 @@ vlc_module_begin () ...@@ -131,6 +136,9 @@ vlc_module_begin ()
change_safe() change_safe()
add_bool( "rtsp-kasenna", false, NULL, KASENNA_TEXT, add_bool( "rtsp-kasenna", false, NULL, KASENNA_TEXT,
KASENNA_LONGTEXT, true ) KASENNA_LONGTEXT, true )
add_bool( "rtsp-wmserver", false, NULL, WMSERVER_TEXT,
WMSERVER_LONGTEXT, true)
change_safe()
add_string( "rtsp-user", NULL, NULL, USER_TEXT, add_string( "rtsp-user", NULL, NULL, USER_TEXT,
USER_LONGTEXT, true ) USER_LONGTEXT, true )
add_password( "rtsp-pwd", NULL, NULL, PASS_TEXT, add_password( "rtsp-pwd", NULL, NULL, PASS_TEXT,
...@@ -548,6 +556,9 @@ describe: ...@@ -548,6 +556,9 @@ describe:
p_sys->b_get_param = (bool)strstr( psz_options, "GET_PARAMETER" ); p_sys->b_get_param = (bool)strstr( psz_options, "GET_PARAMETER" );
delete [] psz_options; delete [] psz_options;
if( var_CreateGetBool( p_demux, "rtsp-wmserver" ) )
p_sys->b_get_param = true;
#if LIVEMEDIA_LIBRARY_VERSION_INT >= 1223337600 #if LIVEMEDIA_LIBRARY_VERSION_INT >= 1223337600
p_sdp = p_sys->rtsp->describeWithPassword( psz_url, psz_user, psz_pwd, p_sdp = p_sys->rtsp->describeWithPassword( psz_url, psz_user, psz_pwd,
var_GetBool( p_demux, "rtsp-kasenna" ), i_timeout ); var_GetBool( p_demux, "rtsp-kasenna" ), i_timeout );
...@@ -1324,7 +1335,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) ...@@ -1324,7 +1335,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
*pb = (p_sys->rtsp != NULL) && *pb = (p_sys->rtsp != NULL) &&
(p_sys->i_npt_length > 0) && (p_sys->i_npt_length > 0) &&
!var_GetBool( p_demux, "rtsp-kasenna" ); ( !var_GetBool( p_demux, "rtsp-kasenna" ) ||
!var_GetBool( p_demux, "rtsp-wmserver" ) );
*pb2 = false; *pb2 = false;
return VLC_SUCCESS; return VLC_SUCCESS;
...@@ -1333,7 +1345,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args ) ...@@ -1333,7 +1345,8 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
double f_scale, f_old_scale; double f_scale, f_old_scale;
if( !p_sys->rtsp || (p_sys->i_npt_length <= 0) || if( !p_sys->rtsp || (p_sys->i_npt_length <= 0) ||
var_GetBool( p_demux, "rtsp-kasenna" ) ) var_GetBool( p_demux, "rtsp-kasenna" ) ||
var_GetBool( p_demux, "rtsp-wmserver" ) )
return VLC_EGENERIC; return VLC_EGENERIC;
/* According to RFC 2326 p56 chapter 12.35 a RTSP server that /* According to RFC 2326 p56 chapter 12.35 a RTSP server that
......
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