[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] broadcast/transport/rtp/recv rtpstream.cpp, 1.12, 1.12.18.1
From: packard () helixcommunity ! org
Date: 2013-04-28 7:32:18
[Download RAW message or body]
Update of /cvsroot/server/broadcast/transport/rtp/recv
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv25489
Modified Files:
Tag: SERVER_VHOST_YIJI_2
rtpstream.cpp
Log Message:
Reviewed by Richard
Synopsis
========
CR: rtp ingress support for vhost
Branches: SERVER_VHOST_YIJI_2
Reviewer: Anyone
Description
===========
Add vhost support for rtp ingress.
Files Affected
==============
/cvsroot/server/broadcast/transport/rtp/recv/rtpbcobj.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpbcplin.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpbcstreams.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpdirmgr.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtplivestream.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpreceiver.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpstream.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/rtpworkercb.cpp,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpbcobj.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpbcplin.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpbcstreams.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpdirmgr.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtplivestream.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpreceiver.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpstream.h,v
/cvsroot/server/broadcast/transport/rtp/recv/pub/rtpworkercb.h,v
/cvsroot/server/common/util/livepacketq.cpp,v
/cvsroot/server/common/util/pub/livepacketq.h
Testing Performed
=================
Integration Tests: enable dir scan or disable dir scan both work.
Index: rtpstream.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/rtpstream.cpp,v
retrieving revision 1.12
retrieving revision 1.12.18.1
diff -u -d -r1.12 -r1.12.18.1
--- rtpstream.cpp 7 Feb 2012 02:48:40 -0000 1.12
+++ rtpstream.cpp 28 Apr 2013 07:32:10 -0000 1.12.18.1
@@ -60,7 +60,7 @@
#include "rtpdebug.h"
-RTPStream::RTPStream(IUnknown* pContext)
+RTPStream::RTPStream(IUnknown* pContext, IHXValues*pVhostInfo)
: m_lRefCount (0)
, m_pContext (NULL)
, m_pClassFactory (NULL)
@@ -87,11 +87,14 @@
, m_pPacketQueue (NULL)
, m_pRequestedPath (NULL)
, m_nPayload (0)
+ , m_pVhostSharedStats(NULL)
+ , m_pVhostInfo(pVhostInfo)
{
RTPDPRINTF(B_CONS, ("RTPStream constructor this=%p\n", this));
HX_ASSERT(pContext);
m_pContext = pContext;
m_pContext->AddRef();
+ HX_ADDREF(m_pVhostInfo);
m_pContext->QueryInterface(IID_IHXCommonClassFactory, (void**)&m_pClassFactory);
HX_ASSERT(m_pClassFactory);
@@ -103,11 +106,25 @@
if (SUCCEEDED(m_pRegistry->GetBufByName(RTPLIVE_REGISTRY_STATISTICS, pBuf)))
{
m_pSharedStats = *((BrcvStatistics**)pBuf->GetBuffer());
- pBuf->Release();
+ HX_RELEASE(pBuf);
}
+ if( m_pVhostInfo &&
+ HXR_OK == m_pVhostInfo->GetPropertyBuffer("VhostAccount", pBuf) )
+ {
+ CHXString sRegRoot = (const char*)BRCV_REGISTRY_ROOT_VHOST;
+ sRegRoot += (const char*)pBuf->GetBuffer();
+ sRegRoot += RTPLIVE_REGISTRY_STATISTICS_VHOST;
+ HX_RELEASE(pBuf);
+
+ if (HXR_OK == m_pRegistry->GetBufByName((const char*)sRegRoot, pBuf))
+ {
+ m_pVhostSharedStats = *((BrcvStatistics**)pBuf->GetBuffer());
+ }
+ }
+
m_PacketSeqNumBucket.Init(MAX_UINT16);
- m_pPacketQueue = new CLivePacketQueue(m_pClassFactory, m_pSharedStats);
+ m_pPacketQueue = new CLivePacketQueue(m_pClassFactory, m_pSharedStats, m_pVhostSharedStats);
}
RTPStream::~RTPStream()
@@ -120,6 +137,7 @@
HX_RELEASE(m_pContext);
HX_RELEASE(m_pClassFactory);
HX_RELEASE(m_pRegistry);
+ HX_RELEASE(m_pVhostInfo);
}
STDMETHODIMP_(ULONG32) RTPStream::AddRef()
@@ -342,6 +360,10 @@
{
HXAtomicIncUINT32(&m_pSharedStats->m_uDuplicates);
}
+ if (m_pVhostSharedStats)
+ {
+ HXAtomicIncUINT32(&m_pVhostSharedStats->m_uDuplicates);
+ }
}
else // else packet is late, not lost
{
@@ -358,6 +380,12 @@
// late but not lost
HXAtomicIncUINT32(&m_pSharedStats->m_uLate);
}
+
+ if (m_pVhostSharedStats)
+ {
+ // late but not lost
+ HXAtomicIncUINT32(&m_pVhostSharedStats->m_uLate);
+ }
}
else
{
@@ -370,6 +398,11 @@
// out-of-order but not lost
HXAtomicIncUINT32(&m_pSharedStats->m_uOutOfOrder);
}
+ if (m_pVhostSharedStats)
+ {
+ // out-of-order but not lost
+ HXAtomicIncUINT32(&m_pVhostSharedStats->m_uOutOfOrder);
+ }
}
}
}
@@ -474,6 +507,12 @@
BRCVCounterAtomicAdd(&m_pSharedStats->m_uBytesRcvd, pRTPPkt->data.len);
}
+ if (m_pVhostSharedStats)
+ {
+ HXAtomicIncUINT32(&m_pVhostSharedStats->m_uPacketsRcvd);
+ BRCVCounterAtomicAdd(&m_pVhostSharedStats->m_uBytesRcvd, pRTPPkt->data.len);
+ }
+
HX_RESULT hResult = HXR_OK;
IHXServerPacketExt* pRTPPacket = NULL;
IHXBuffer* pPayload = NULL;
_______________________________________________
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