summaryrefslogtreecommitdiffstats
path: root/libmpdemux/network.c
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-14 20:45:26 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-14 20:45:26 +0000
commitd7f873f4698904f1bbb8e0ce8f07e33cd7c5780c (patch)
treef3b2c48db70d6d8f46fc43013c68b9e1443ceeec /libmpdemux/network.c
parent952bdd4ca144df43bdda4065e402c184def08932 (diff)
downloadmpv-d7f873f4698904f1bbb8e0ce8f07e33cd7c5780c.tar.bz2
mpv-d7f873f4698904f1bbb8e0ce8f07e33cd7c5780c.tar.xz
Try Real rtsp, then live.com on every rtsp stream (remove extension
based selection) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12207 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/network.c')
-rw-r--r--libmpdemux/network.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/libmpdemux/network.c b/libmpdemux/network.c
index e2afd50f2e..4b41876b5d 100644
--- a/libmpdemux/network.c
+++ b/libmpdemux/network.c
@@ -685,25 +685,10 @@ extension=NULL;
// Checking for RTSP
if( !strcasecmp(url->protocol, "rtsp") ) {
- // Checking for Real rtsp://
- // Extension based detection, should be replaced with something based on server answer
- if( url->file!= NULL ) {
- char *p;
- for( p = url->file; p[0]; p++ ) {
- if( p[0] == '.' && tolower(p[1]) == 'r' && (tolower(p[2]) == 'm' || tolower(p[2]) == 'a') && (!p[3] || p[3] == '?' || p[3] == '&') ) {
- *file_format = DEMUXER_TYPE_REAL;
- return 0;
- }
- }
- }
- mp_msg(MSGT_NETWORK,MSGL_INFO,"Not a Realmedia rtsp url. Trying standard rtsp protocol.\n");
-#ifdef STREAMING_LIVE_DOT_COM
- *file_format = DEMUXER_TYPE_RTP;
+ // Try Real rtsp:// first (it's always built in)
+ // If it fails, try live.com (if compiled in)
+ *file_format = DEMUXER_TYPE_REAL;
return 0;
-#else
- mp_msg(MSGT_NETWORK,MSGL_ERR,"RTSP support requires the \"LIVE.COM Streaming Media\" libraries!\n");
- return -1;
-#endif
// Checking for SIP
} else if( !strcasecmp(url->protocol, "sip") ) {
#ifdef STREAMING_LIVE_DOT_COM
@@ -1217,10 +1202,20 @@ streaming_start(stream_t *stream, int *demuxer_type, URL_t *url) {
if( (!strcasecmp( stream->streaming_ctrl->url->protocol, "rtsp")) &&
(*demuxer_type == DEMUXER_TYPE_REAL)) {
stream->fd = -1;
- ret = realrtsp_streaming_start( stream );
+ if ((ret = realrtsp_streaming_start( stream )) < 0) {
+ mp_msg(MSGT_NETWORK,MSGL_INFO,"Not a Realmedia rtsp url. Trying standard rtsp protocol.\n");
+#ifdef STREAMING_LIVE_DOT_COM
+ *demuxer_type = DEMUXER_TYPE_RTP;
+ goto try_livedotcom;
+#else
+ mp_msg(MSGT_NETWORK,MSGL_ERR,"RTSP support requires the \"LIVE.COM Streaming Media\" libraries!\n");
+ return -1;
+#endif
+ }
} else
// For connection-oriented streams, we can usually determine the streaming type.
+try_livedotcom:
switch( *demuxer_type ) {
case DEMUXER_TYPE_ASF:
// Send the appropriate HTTP request