changeset 7252:0a0527c82560

- If fatal error while trying to connect to a WM server, skip other proto. - Fix that makes mplayer works with corona(WMS9) servers.
author bertrand
date Tue, 03 Sep 2002 01:32:13 +0000
parents cc83ad6af513
children cb1ed89029e7
files libmpdemux/asf_streaming.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/asf_streaming.c	Tue Sep 03 01:29:44 2002 +0000
+++ b/libmpdemux/asf_streaming.c	Tue Sep 03 01:32:13 2002 +0000
@@ -56,18 +56,21 @@
 		fd = asf_http_streaming_start( stream );
 		if( fd!=-1 ) return fd;
 		mp_msg(MSGT_NETWORK,MSGL_V,"  ===> ASF/HTTP failed\n");
+		if( fd==-2 ) return -1;
 	}
 	if( !strncasecmp( proto_s, "mms", 3) && strncasecmp( proto_s, "mmst", 4) ) {
 		mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/UDP...\n");
 		//fd = asf_mmsu_streaming_start( stream );
 		if( fd!=-1 ) return fd;
 		mp_msg(MSGT_NETWORK,MSGL_V,"  ===> ASF/UDP failed\n");
+		if( fd==-2 ) return -1;
 	}
 	if( !strncasecmp( proto_s, "mms", 3) ) {
 		mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/TCP...\n");
 		fd = asf_mmst_streaming_start( stream );
 		if( fd!=-1 ) return fd;
 		mp_msg(MSGT_NETWORK,MSGL_V,"  ===> ASF/TCP failed\n");
+		if( fd==-2 ) return -1;
 	}
 
 	mp_msg(MSGT_NETWORK,MSGL_ERR,"Unknown protocol: %s\n", proto_s );
@@ -400,7 +403,10 @@
 int
 asf_http_streaming_type(char *content_type, char *features, HTTP_header_t *http_hdr ) {
 	if( content_type==NULL ) return ASF_Unknown_e;
-	if( !strcasecmp(content_type, "application/octet-stream") ) {
+	if( 	!strcasecmp(content_type, "application/octet-stream") ||
+		!strcasecmp(content_type, "application/vnd.ms.wms-hdr.asfv1") ||        // New in Corona, first request
+		!strcasecmp(content_type, "application/x-mms-framed") ) {               // New in Corana, second request
+
 		if( features==NULL ) {
 			mp_msg(MSGT_NETWORK,MSGL_V,"=====> ASF Prerecorded\n");
 			return ASF_Prerecorded_e;
@@ -637,7 +643,7 @@
 			if( url->port==0 ) url->port = 80;
 		}
 		fd = connect2Server( url->hostname, url->port );
-		if( fd<0 ) return -1;
+		if( fd<0 ) return fd;
 
 		http_hdr = asf_http_request( stream->streaming_ctrl );
 		mp_msg(MSGT_NETWORK,MSGL_DBG2,"Request [%s]\n", http_hdr->buffer );