[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