diff options
-rw-r--r-- | libmpdemux/asf_streaming.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/libmpdemux/asf_streaming.c b/libmpdemux/asf_streaming.c index 02d3aadddd..37af53d14b 100644 --- a/libmpdemux/asf_streaming.c +++ b/libmpdemux/asf_streaming.c @@ -43,6 +43,12 @@ extern int verbose; // internet connection, the TCP connection will not get // through // * Then we can try HTTP. +// +// Note: MMS/HTTP support is now a "well known" support protocol, +// it has been tested for while, not like MMST support. +// WMP sequence is MMSU then MMST and then HTTP. +// In MPlayer case since HTTP support is more reliable, +// we are doing HTTP first then we try MMST if HTTP fail. int asf_streaming_start( stream_t *stream ) { char proto_s[10]; @@ -50,6 +56,15 @@ asf_streaming_start( stream_t *stream ) { strncpy( proto_s, stream->streaming_ctrl->url->protocol, 10 ); + if( !strncasecmp( proto_s, "http", 4) || + !strncasecmp( proto_s, "mms", 3) || + !strncasecmp( proto_s, "http_proxy", 10) + ) { + mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/HTTP...\n"); + fd = asf_http_streaming_start( stream ); + if( fd!=-1 ) return fd; + mp_msg(MSGT_NETWORK,MSGL_V," ===> ASF/HTTP failed\n"); + } 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 ); @@ -58,19 +73,10 @@ asf_streaming_start( stream_t *stream ) { } if( !strncasecmp( proto_s, "mms", 3) ) { mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/TCP...\n"); - //fd = asf_mmst_streaming_start( stream ); + fd = asf_mmst_streaming_start( stream ); if( fd!=-1 ) return fd; mp_msg(MSGT_NETWORK,MSGL_V," ===> ASF/TCP failed\n"); } - if( !strncasecmp( proto_s, "http", 4) || - !strncasecmp( proto_s, "mms", 3) || - !strncasecmp( proto_s, "http_proxy", 10) - ) { - mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/HTTP...\n"); - fd = asf_http_streaming_start( stream ); - if( fd!=-1 ) return fd; - mp_msg(MSGT_NETWORK,MSGL_V," ===> ASF/HTTP failed\n"); - } mp_msg(MSGT_NETWORK,MSGL_ERR,"Unknown protocol: %s\n", proto_s ); return -1; |