[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] engine/dataflow ppm.cpp,1.139,1.140
From: jgordon () helixcommunity ! org
Date: 2010-03-23 19:15:49
Message-ID: 201003231915.o2NJFlXB017360 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/server/engine/dataflow
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv6235
Modified Files:
ppm.cpp
Log Message:
Synopsis
========
Backs out the on-demand change ensure earliest rtp time in rtp-info
Branches: SERVER_14_0, HEAD (SERVER_CURRENT)
Suggested Reviewer: chytanya
Build: http://build.dev.prognet.com/~build/report.cgi?id=209192
Description
===========
Backs out the buggy fix for out-of-order rtp times for on-demand
content, because it breaks more than it fixes. :)
Index: ppm.cpp
===================================================================
RCS file: /cvsroot/server/engine/dataflow/ppm.cpp,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -d -r1.139 -r1.140
--- ppm.cpp 18 Mar 2010 00:08:07 -0000 1.139
+++ ppm.cpp 23 Mar 2010 19:15:47 -0000 1.140
@@ -2062,29 +2062,50 @@
if ((m_bRTPInfoRequired) && (!m_bIsMulticast))
{
- if (pSD->m_nPacketType == HX_PACKET_UNKNOWN)
+ IHXRTPPacket* pRTPPacket = NULL;
+ UINT32 ulBaseTime = 0;
+ UINT16 i = 0;
+
+ if(pPacket->QueryInterface(IID_IHXRTPPacket,
+ (void**) &pRTPPacket) == HXR_OK)
{
- pSD->m_nPacketType = CheckPacketType(pPacket);
+ UINT32 ulRTPTime = pRTPPacket->GetRTPTime();
+
+ ulBaseTime = (pSD->m_pTSConverter) ?
+ pSD->m_pTSConverter->rtp2hxa_raw(ulRTPTime)
+ : ulRTPTime;
+
+ pSD->m_pTransport->setTimeStamp(unStreamNumber,
+ ulRTPTime,
+ TRUE);
+ HX_RELEASE(pRTPPacket);
}
- if (PrepareRTPInfo(unStreamNumber, pPacket, TRUE) ||
- !m_pPPM->m_bIsRTP)
+ else
{
- if(!m_pPPM->m_bIsRTP)
- {
- //for rdt, we need to sync m_ulFirstDeliveryTime so in CommitRTPInfo, we have
- // valid values for other streams.
- for (UINT16 i = 0; i < m_unStreamCount; i++)
- {
- if(i != unStreamNumber)
- {
- (m_pStreamData + i)->m_ulFirstDeliveryTime = pSD->m_ulFirstDeliveryTime;
- }
- }
- }
+ ulBaseTime = pPacket->GetTime();
+ pSD->m_pTransport->setTimeStamp(unStreamNumber, ulBaseTime);
+ }
+
+ pSD->m_pTransport->setSequenceNumber(unStreamNumber, pPacket->m_uSequenceNumber);
+ SetStreamStartTime(unStreamNumber, pPacket->GetTime());
- CommitRTPInfo();
- m_bRTPInfoRequired = FALSE;
+ for (i = 0; i < m_unStreamCount; i++)
+ {
+ if (m_pStreamData[i].m_bStreamRegistered && (i != unStreamNumber))
+ {
+ UINT32 ulRTPInfoTime = (m_pStreamData [i].m_pTSConverter) ?
+ m_pStreamData [i].m_pTSConverter->hxa2rtp_raw(ulBaseTime) :
+ ulBaseTime;
+
+ m_pStreamData [i].m_pTransport->setTimeStamp(i, ulRTPInfoTime, TRUE);
+ m_pStreamData [i].m_pTransport->setSequenceNumber(i,
+ m_pStreamData[i].m_unStartingSeqNum);
+
+ SetStreamStartTime(i, pPacket->GetTime());
+ }
}
+
+ m_bRTPInfoRequired = FALSE;
}
/*
_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic