Commit 8d0b0e89 authored by Julian Scheel's avatar Julian Scheel Committed by Jean-Baptiste Kempf

live555: Add satip support

Register a satip-access, which uses a hardcoded default SDP dataset instead of
querying it via DESCRIBE. While some SAT>IP servers implement a common
DESCRIBE the spec is allowing servers to only support DESCRIBE of already
configured sessions, which requires SETUP to be executed before DESCRIBE can
be used at all.
Signed-off-by: default avatarJulian Scheel <julian@jusst.de>
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent ab550d60
...@@ -102,7 +102,7 @@ vlc_module_begin () ...@@ -102,7 +102,7 @@ vlc_module_begin ()
add_submodule () add_submodule ()
set_description( N_("RTSP/RTP access and demux") ) set_description( N_("RTSP/RTP access and demux") )
add_shortcut( "rtsp", "pnm", "live", "livedotcom" ) add_shortcut( "rtsp", "pnm", "live", "livedotcom", "satip" )
set_capability( "access_demux", 0 ) set_capability( "access_demux", 0 )
set_callbacks( Open, Close ) set_callbacks( Open, Close )
add_bool( "rtsp-tcp", false, add_bool( "rtsp-tcp", false,
...@@ -332,6 +332,17 @@ static int Open ( vlc_object_t *p_this ) ...@@ -332,6 +332,17 @@ static int Open ( vlc_object_t *p_this )
while( (p = strchr( p, ' ' )) != NULL ) *p = '+'; while( (p = strchr( p, ' ' )) != NULL ) *p = '+';
} }
if( strcasecmp( p_demux->psz_access, "satip" ) == 0 )
{
asprintf(&p_sys->p_sdp, "v=0\r\n"
"o=- 0 %s\r\n"
"s=SATIP:stream\r\n"
"i=SATIP RTP Stream\r\n"
"m=video 0 RTP/AVP 33\r\n"
"a=control:rtsp://%s\r\n\r\n",
p_sys->url.psz_host, p_sys->psz_path);
}
if( p_demux->s != NULL ) if( p_demux->s != NULL )
{ {
/* Gather the complete sdp file */ /* Gather the complete sdp file */
...@@ -524,7 +535,15 @@ static void continueAfterOPTIONS( RTSPClient* client, int result_code, ...@@ -524,7 +535,15 @@ static void continueAfterOPTIONS( RTSPClient* client, int result_code,
result_code == 0 result_code == 0
&& result_string != NULL && result_string != NULL
&& strstr( result_string, "GET_PARAMETER" ) != NULL; && strstr( result_string, "GET_PARAMETER" ) != NULL;
if( p_sys->p_sdp == NULL )
{
client->sendDescribeCommand( continueAfterDESCRIBE ); client->sendDescribeCommand( continueAfterDESCRIBE );
}
else
{
p_sys->b_error = false;
p_sys->event_rtsp = 1;
}
delete[] result_string; delete[] result_string;
} }
......
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