# HG changeset patch # User bertrand # Date 1031016733 0 # Node ID 0a0527c825608edfa637f6ebc1d6a0465a4d4848 # Parent cc83ad6af5134e4d05821ec6cc014297bcc0045a - If fatal error while trying to connect to a WM server, skip other proto. - Fix that makes mplayer works with corona(WMS9) servers. diff -r cc83ad6af513 -r 0a0527c82560 libmpdemux/asf_streaming.c --- 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 );