Problem with a WM link

Deepak Jain <[email protected]>
Newsgroups gmane.comp.multimedia.helix.devel
Message-ID <[email protected]>
Hi,

We have a radio link namely:

http://b1.mediayou.net/cgi-bin/mmsurl_hinet?id=228

When I try it in Real Player for Windows, it asks to download a file. 
The file is actually a asx file with 2 mms links, the first link plays 
while another don't.
While I try to play the first link using original *mms* scheme, it 
doesn't gets played.

When I try the link with *httpt*, it gives an error as HXR_NET_CONNECT.
During debugging, I found that inside 
CHttpClient::ParseDescribeResponse() in httpclient.cpp, when we reach to 
the point around line no. 262:

    // Process the packet's data.
    {
        CComPtr<INSSBuffer> pSingleBody;
        DWORD dwLength;
        BYTE * pbDest;
        IWMSPacket * pBody = pResponse->PBody();
        CHECKNULL_RET(pBody, E_INVALIDARG);

This pResponse is actually gets here from 
CASFFileFormatNet::OnDescribe(IAsyncResult* pResult). And here 
pResult->m_presponse->m_Pbody is already NULL. I don't know why it is 
coming as NULL here as i try to debug but call stack was leading to nowhere.

In the above piece of code, when we get *pBody* as NULL , 
ParseDescribeResponse() returns result as E_INVALIDARG. This error gets 
propagated further and in CASFFileFormatNet::OnDescribe() in 
asf_file_format_net.cpp around line no 1140.

HRESULT hr = m_pNetClient->EndDescribe(pResult, 
&m_pPresentationDescription);      
if ( SUCCEEDED(hr) &&
             m_pPresentationDescription &&
             (m_pPresentationDescription->m_hr == NS_E_REDIRECT) )
        {
            // Post a message to the thread
            HXThreadMessage msg(HXMSG_WMNET_REDIRECT, (void*) hr, NULL);
            ProcessMsg(&msg);
        }
else   
        {
            // Post a message to the thread
            HXThreadMessage msg(HXMSG_WMNET_END_DESCRIBE, (void*) hr, NULL);
            ProcessMsg(&msg);
        }   

Above hr don't gets succeeded so it goes to else and 
HXMSG_WMNET_END_DESCRIBE message is being sent. Now when it receives the 
message in CASFFileFormatNet::ThreadFunc() in asf_file_format_net.cpp

            while (!bDone)
            {
                // We communicate with this thread via messages. So here 
we wait on messages.
                // We don't filter messages in the GetMessage() call.
                HXThreadMessage msg;
                retVal = m_pThread->GetMessage(&msg, 0, 0);    *<---- 
Here msg gets the values

*and it goes to case HXMSG_WMNET_END_DESCRIBE and gets failed inside 
function CASFFileFormatNet::ThreadHandleEndDescribe()
because

HRESULT hr = (HRESULT) pMsg->m_pParam1;  *<----- hr comes out to be non-zero

*and therefore error is returned back using the function

                // Map the WM error to a Helix error
                retVal = MapWMToHelixErrorCode(hr);


Now below are the wire shark logs taken while playing the mms link in 
the Windows Media Player.
The Logs contained two request/responses that we get in wireshark when 
the link is played in WMP. The link plays fine in WMP.

I am not sure whether we support such type of streams.
Please suggest.

Thanks,
Deepak Jain

***************************************************************************************************
GET 
/203.69.144.202/live.media.hinet.net/Radio_e-classical?hichD391ACCF-092A-4214-803D-8BFA968CC761 
HTTP/1.1
Accept: */*
User-Agent: NSPlayer/11.0.5721.5145
Host: 203.69.144.131
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic
Pragma: version11-enabled=1
Pragma: 
no-cache,rate=1.000,stream-time=0,stream-offset=0:0,packet-num=4294967295,max-duration=0
Pragma: packet-pair-experiment=1
Pragma: pipeline-experiment=1
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, 
com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-AD0B57E96DC2}
Accept-Language: en-US, *;q=0.1

HTTP/1.0 200 OK
Content-Type: application/vnd.ms.wms-hdr.asfv1
Cache-Control: no-cache, proxy-public, proxy-revalidate, max-age=0
Server: Cougar/9.00.00.3372
Via:TPDB-CS08 (NetCache NetApp/6.0.4P1D1), TPDB-CS13 (NetCache 
NetApp/6.0.4P1D1)
Pragma: client-id=36903803
Pragma: features="broadcast"
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, 
com.microsoft.wm.fastcache

**************************************************************************************************
GET 
/203.69.144.202/live.media.hinet.net/Radio_e-classical?hichD391ACCF-092A-4214-803D-8BFA968CC761 
HTTP/1.0
Accept: */*
User-Agent: NSPlayer/11.0.5721.5145
Host: 203.69.144.131
X-Accept-Authentication: Negotiate, NTLM, Digest, Basic
Pragma: 
no-cache,rate=1.000,stream-time=0,stream-offset=4294967295:4294967295,packet-num=4294967295,max-duration=0
Pragma: xPlayStrm=1
Pragma: client-id=36903803
Pragma: LinkBW=608566, AccelBW=2147483647, AccelDuration=10000
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, 
com.microsoft.wm.predstrm
Pragma: playlist-gen-id=968728
Pragma: xClientGUID={3300AD50-2C39-46c0-AE0A-AD0B57E96DC2}
Pragma: stream-switch-count=1
Pragma: stream-switch-entry=ffff:1:0
Accept-Language: en-us, *;q=0.1


HTTP/1.0 200 OK
Content-Type: application/x-mms-framed
Cache-Control: no-cache, user-public, must-revalidate, proxy-public, 
proxy-revalidate
Server: Cougar/9.00.00.3372
Via:TPDB-CS08 (NetCache NetApp/6.0.4P1D1), TPDB-CS13 (NetCache 
NetApp/6.0.4P1D1)
Pragma: client-id=36903806
Pragma: Speed=1.0
Pragma: AccelDuration=10000
Pragma: AccelBW=3500000
Pragma: features="broadcast"
Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, 
com.microsoft.wm.fastcache

**************************************************************************************

_______________________________________________
Helix-client-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.