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