[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] broadcast/transport/rtp/recv rtpbcobj.cpp, 1.1.2.4,
From:       dcollins () helixcommunity ! org
Date:       2011-10-28 21:45:45
[Download RAW message or body]

Update of /cvsroot/server/broadcast/transport/rtp/recv
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv3739

Modified Files:
      Tag: DEAN_PERF_2011_10_17
	rtpbcobj.cpp rtpbcplin.cpp rtpbcstreams.cpp rtpdirmgr.cpp 
	rtpworkercb.cpp 
Log Message:
experimental DEAN_PERF_2011_10_17 branch checkin: adding more callbacks, misc cleanup

Index: rtpdirmgr.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/Attic/rtpdirmgr.cpp,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -d -r1.1.2.2 -r1.1.2.3
--- rtpdirmgr.cpp	27 Oct 2011 23:24:48 -0000	1.1.2.2
+++ rtpdirmgr.cpp	28 Oct 2011 21:45:40 -0000	1.1.2.3
@@ -91,7 +91,7 @@
     m_pFileInodeMap = new CHXMapStringToOb();
 
     // Only the manager thread should be scanning for SDP files
-    HX_ASSERT(g_TLS_threadType == RTP_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 }
 
 RTPDirectoryManager::~RTPDirectoryManager()
@@ -363,8 +363,8 @@
  *  IHXFileStat2Response::Stat2Done                         ref:  hxfiles.h
  */
 STDMETHODIMP
-RTPDirectoryManager::Stat2Done (HX_RESULT    status,
-                               HXSTAT* pStat)
+RTPDirectoryManager::Stat2Done (HX_RESULT status,
+                               HXSTAT*    pStat)
 {
     const char* pNameStr = NULL;
     char szInodeMapKey[64];

Index: rtpbcstreams.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/Attic/rtpbcstreams.cpp,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -d -r1.1.2.1 -r1.1.2.2
--- rtpbcstreams.cpp	28 Oct 2011 15:40:29 -0000	1.1.2.1
+++ rtpbcstreams.cpp	28 Oct 2011 21:45:40 -0000	1.1.2.2
@@ -1101,23 +1101,24 @@
     }
     g_pFileDict->RemoveStreamsObject(m_pRequestedPath);
 
-    RTPDPRINTF(B_INFO, ("RTPBCSObj:CleanupRegistry: unassigning %s DISABLED\n", \
                m_pRequestedPath));
-    //RTPDPRINTF(B_INFO, ("RTPBCSObj:CleanupRegistry: unassigning %s\n", \
                m_pRequestedPath));
-    //GlobalRTPBroadcastFormat()->UnassignOwnerThread(m_pRequestedPath);
+    //RTPDPRINTF(B_INFO, ("RTPBCStreamsObject:CleanupRegistry: unassigning %s \
DISABLED\n", m_pRequestedPath)); +    RTPDPRINTF(B_INFO, \
("RTPBCStreamsObject:CleanupRegistry: unassigning %s\n", m_pRequestedPath)); +    \
GlobalRTPBroadcastFormat()->UnassignOwnerThread(m_pRequestedPath);  }
 
 
 HX_RESULT 
-RTPBCStreamsObject::GetFileHeader( REF(IHXValues*) pHeader)
+RTPBCStreamsObject::GetFileHeader(void)
 {
-    RTPDPRINTF(B_INFO, ("RTPBCSO::GetFileHeader called in thread %llu\n", \
MyOSThreadID())); +    RTPDPRINTF(B_INFO, ("RTPBCStreamsObject::GetFileHeader called \
in thread %llu\n", MyOSThreadID()));  
-    pHeader = m_pFileHeader;
+    IHXValues* pHeader = m_pFileHeader;
+    HX_ADDREF(pHeader);
 
     //Remove the incoming multicast attributes, these have
     //no meaning beyond this plugin.
     IHXValues2* pValues2 = NULL;
-    if(SUCCEEDED(pHeader->QueryInterface(IID_IHXValues2, (void**)&pValues2)))
+    if(pHeader && SUCCEEDED(pHeader->QueryInterface(IID_IHXValues2, \
(void**)&pValues2)))  {
         pValues2->RemoveCString("MulticastAddress");
         pValues2->RemoveULONG32("MulticastTTL");
@@ -1125,23 +1126,33 @@
     }
     HX_RELEASE(pValues2);
 
-    HX_ADDREF(pHeader);
-
     /**
      * Before Replacing with the SDPPin the "i=" line
      * from SDP File was stored as "Author" in File Header
      * Now it would be stored as "Information"
      */
 
+
+    if (pHeader)
+    {
+        m_pFFResponse->FileHeaderReady(HXR_OK, pHeader);
+    }
+    else
+    {
+        m_pFFResponse->FileHeaderReady(HXR_FAIL, NULL);
+    }
+    HX_RELEASE(pHeader);
+
     return HXR_OK;
 }
 
 HX_RESULT
-RTPBCStreamsObject::GetStreamHeader(UINT16 unStreamNumber, REF (IHXValues*) pHeader)
+RTPBCStreamsObject::GetStreamHeader(UINT16 unStreamNumber)
 {
-    RTPDPRINTF(B_INFO, ("RTPBCSO::GetStreamHeader called in thread %llu\n", \
MyOSThreadID())); +    RTPDPRINTF(B_INFO, ("RTPBCStreamsObject::GetStreamHeader \
called in thread %llu\n", MyOSThreadID()));  
-    pHeader = m_ppStreamHeaders[unStreamNumber];
+    IHXValues* pHeader = m_ppStreamHeaders[unStreamNumber];
+    HX_ADDREF(pHeader);
 
     //Remove the incoming multicast attributes, these have
     //no meaning beyond this plugin.
@@ -1154,11 +1165,20 @@
     }
     HX_RELEASE(pValues2);
 
-    HX_ADDREF(pHeader);
-
     //For Height and Wight one can use FrameHeight and FrameWidth
     //TBD: Whether Cliprect has to be parsed in SDPPlin
 
+
+    if (pHeader)
+    {
+        m_pFFResponse->StreamHeaderReady(HXR_OK, pHeader);
+    }
+    else
+    {
+        m_pFFResponse->StreamHeaderReady(HXR_FAIL, NULL);
+    }
+    HX_RELEASE(pHeader);
+
     return HXR_OK;
 }
 
@@ -1201,7 +1221,7 @@
 STDMETHODIMP
 RTPBCStreamsObject::PacketQueued(UINT16 unInStream, IHXServerPacketExt* pPkt)
 {
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
     return m_pPacketBufferManager->PacketQueued(unInStream, pPkt);
 }
 
@@ -1344,22 +1364,14 @@
 void
 RTPBCStreamsObject::StopAllStreams(HXBOOL bFlushPkts/*=TRUE*/)
 {
-    RTPDPRINTF(B_INFO, ("RTPBCSO::StopAllStreams called in thread %llu\n", \
MyOSThreadID())); +    RTPDPRINTF(B_INFO, ("RTPBCStreamsObject::StopAllStreams called \
in thread %llu\n", MyOSThreadID()));  
     if (m_bStreamsStopping)
     {
         return;
     }
 
-    if (g_TLS_threadType == RTP_THR_MANAGER)
-    {
-        // In the case of directory scan enabled, StartPackets gets called
-        // on the manager thread, so process this over in the worker where
-        // it belongs.
-        DispatchStopAllStreams(bFlushPkts);
-        return;
-    }
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     m_bStreamsStopping = TRUE;
     m_bStartSendingPacket = FALSE;
@@ -1402,24 +1414,6 @@
     }
 }
 
-HX_RESULT
-RTPBCStreamsObject::DispatchStopAllStreams(HXBOOL bFlushPackets)
-{
-    UINT32 ulSDPOwnerID = 0;
-    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(m_pRequestedPath, \
                &ulSDPOwnerID);
-    if (SUCCEEDED(res))
-    {
-        StopAllStreamsCallback* pCB = new StopAllStreamsCallback(this, \
                bFlushPackets);
-        pCB->AddRef();
-        res = g_TLS_pWTManager->SendWorkerMessage(HX_WORKER_TYPE_LIVE_INGRESS,
-                                                  ulSDPOwnerID,
-                                                  (IHXCallback*)pCB);
-        HX_RELEASE(pCB);
-    }
-
-    return res;
-}
-
 STDMETHODIMP
 RTPBCStreamsObject::PacketReady(IHXServerPacketExt* pPkt)
 {
@@ -1542,25 +1536,17 @@
     return HXR_OK;
 }
 
-void 
+HX_RESULT 
 RTPBCStreamsObject::StartPackets(UINT16 unStreamNumber)
 {
-    RTPDPRINTF(B_INFO, ("RTPBCSO::StartPackets called in thread %llu\n", \
MyOSThreadID())); +    RTPDPRINTF(B_INFO, ("RTPBCStreamsObject::StartPackets called \
in thread %llu\n", MyOSThreadID()));  
     if (m_bStreamsStopping)
     {
-        return;
+        return HXR_OK;
     }
 
-    if (g_TLS_threadType == RTP_THR_MANAGER)
-    {
-        // In the case of directory scan enabled, StartPackets gets called
-        // on the manager thread, so process this over in the worker where
-        // it belongs.
-        DispatchStartPackets(unStreamNumber);
-        return;
-    }
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     if (!m_pbStarted[unStreamNumber])
     {
@@ -1577,24 +1563,13 @@
         // this will start bursting pkts
         m_pPacketBufferManager->StartPackets();
     }
+    return HXR_OK;
 }
 
-HX_RESULT
-RTPBCStreamsObject::DispatchStartPackets(UINT16 unStreamNumber)
+HX_RESULT 
+RTPBCStreamsObject::StopPackets(UINT16 unStreamNumber)
 {
-    UINT32 ulSDPOwnerID = 0;
-    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(m_pRequestedPath, \
                &ulSDPOwnerID);
-    if (SUCCEEDED(res))
-    {
-        StartPacketsCallback* pCB = new StartPacketsCallback(this, unStreamNumber);
-        pCB->AddRef();
-        res = g_TLS_pWTManager->SendWorkerMessage(HX_WORKER_TYPE_LIVE_INGRESS,
-                                                  ulSDPOwnerID,
-                                                  (IHXCallback*)pCB);
-        HX_RELEASE(pCB);
-    }
-
-    return res;
+    return StreamDone(unStreamNumber);
 }
 
 void 

Index: rtpworkercb.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/Attic/rtpworkercb.cpp,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -d -r1.1.2.3 -r1.1.2.4
--- rtpworkercb.cpp	28 Oct 2011 15:40:30 -0000	1.1.2.3
+++ rtpworkercb.cpp	28 Oct 2011 21:45:41 -0000	1.1.2.4
@@ -166,14 +166,12 @@
 {
     HX_RESULT res = HXR_OK;
 
-#if 0
     RTPGetFileHeaderResponseCallback* pCB =
             new RTPGetFileHeaderResponseCallback(m_pRealResponse, status, pHeader);
     pCB->AddRef();
     res = g_TLS_pWTManager->SendWorkerMessage(
             HX_WORKER_TYPE_LIVE_INGRESS, m_ulManagerThreadID, (IHXCallback*)pCB);
     HX_RELEASE(pCB);
-#endif
 
     return res;
 }
@@ -184,14 +182,12 @@
 {
     HX_RESULT res = HXR_OK;
 
-#if 0
     RTPGetStreamHeaderResponseCallback* pCB =
             new RTPGetStreamHeaderResponseCallback(m_pRealResponse, status, \
pHeader);  pCB->AddRef();
     res = g_TLS_pWTManager->SendWorkerMessage(
             HX_WORKER_TYPE_LIVE_INGRESS, m_ulManagerThreadID, (IHXCallback*)pCB);
     HX_RELEASE(pCB);
-#endif
 
     return res;
 }
@@ -201,14 +197,12 @@
 {
     HX_RESULT res = HXR_OK;
 
-#if 0
     RTPStreamDoneResponseCallback* pCB =
             new RTPStreamDoneResponseCallback(m_pRealResponse, unStreamNumber);
     pCB->AddRef();
     res = g_TLS_pWTManager->SendWorkerMessage(
             HX_WORKER_TYPE_LIVE_INGRESS, m_ulManagerThreadID, (IHXCallback*)pCB);
     HX_RELEASE(pCB);
-#endif
 
     return res;
 }
@@ -228,7 +222,7 @@
 STDMETHODIMP
 SDPFileAddedCallback::Func()
 {
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     const char* pPath = NULL;
 
@@ -315,7 +309,7 @@
 STDMETHODIMP
 StartPacketsCallback::Func()
 {
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     RTPDPRINTF(B_THREAD, ("StartPacketsCallback::Func() called!  OBJ=%p NUM=%d \
TID=%llu\n",  m_pStreamsObject, m_unStreamNumber, MyOSThreadID()));
@@ -400,7 +394,7 @@
 STDMETHODIMP
 StopAllStreamsCallback::Func()
 {
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     RTPDPRINTF(B_THREAD, ("StopAllStreamsCallback::Func() called!  OBJ=%p FLUSH=%d \
TID=%llu\n",  m_pStreamsObject, m_bFlushPackets, MyOSThreadID()));
@@ -513,8 +507,7 @@
 {
     HX_RESULT res = HXR_OK;                 
 
-    //BroadcastReceiverTLS::Init(); // ensure this thread's TLS is initted
-    HX_ASSERT(g_TLS_threadType == RTP_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     RTPDPRINTF(B_THREADV, ("RTPInitBroadcastCallback::Func() called!  PATH=%s \
TID=%llu\n",  m_pFileName, MyOSThreadID()));
@@ -602,9 +595,9 @@
     RTPDPRINTF(B_THREADV, ("RTPInitBroadcastResponseCallback::Func() called!  \
status=%lu  TID=%llu\n",  m_lStatus, MyOSThreadID()));
 
-    HX_ASSERT(g_TLS_threadType == RTP_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
-    if (g_TLS_threadType == RTP_THR_MANAGER)
+    if (g_TLS_RTPThreadType == RTP_THR_MANAGER)
     {
         res = m_pRealResponse->InitDone(m_lStatus);
     }
@@ -654,22 +647,18 @@
     return HXR_NOINTERFACE;
 }
 
-#if 0
-
-
-/************************************************************************/
-/************************************************************************/
 
+#if 0
 /************************************************************************
- *  BRCVDoesExistCallback Methods
+ *  RTPDoesExistCallback Methods
  *
  *      Dispatches a DoesExist call to a worker.
  *      If the file exists, the worker thread owns it.
  */
-BRCVDoesExistCallback::BRCVDoesExistCallback(UINT32                 \
                ulManagerThreadID,
-                                             const char*            pFileName,
-                                             IHXFileExistsResponse* pResponse,
-                                             BroadcastReceiverFeed* pFeed)
+RTPDoesExistCallback::RTPDoesExistCallback(UINT32                 ulManagerThreadID,
+                                           const char*            pFileName,
+                                            IHXFileExistsResponse* pResponse,
+                                            BroadcastReceiverFeed* pFeed)
     : m_lRefCount(0)
     , m_pFileName(pFileName)
     , m_pResponse(pResponse)
@@ -677,15 +666,15 @@
     , m_ulManagerThreadID(ulManagerThreadID)
     , m_pFeed(pFeed)
 {
-    RDPRINTF(B_CONS, ("%p: BRCVDoesExistCallback::BRCVDoesExistCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPDoesExistCallback::RTPDoesExistCallback()\n", this));  HX_ASSERT(m_pFileName);
     HX_ADDREF(pResponse);
     HX_ADDREF(pFeed);
 }
 
-BRCVDoesExistCallback::~BRCVDoesExistCallback()
+RTPDoesExistCallback::~RTPDoesExistCallback()
 {
-    RDPRINTF(B_CONS, ("%p: BRCVDoesExistCallback::~BRCVDoesExistCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPDoesExistCallback::~RTPDoesExistCallback()\n", this));  HX_RELEASE(m_pFeed);
     HX_RELEASE(m_pResponse);
     HX_DELETE(m_pFileName);
@@ -695,25 +684,25 @@
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVDoesExistCallback::Func()
+RTPDoesExistCallback::Func()
 {
     HX_RESULT res = HXR_OK;                 
 
-    RDPRINTF(B_THREADV,
-             ("BRCVDoesExistCallback::Func() called!  PATH=%s TID=%llu \
                ThreadID=%lu\n",
-              m_pFileName, MyOSThreadID(), (unsigned long)g_TLS_BRCVThreadID));
+    RTPDPRINTF(B_THREADV,
+             ("RTPDoesExistCallback::Func() called!  PATH=%s TID=%llu \
ThreadID=%lu\n", +              m_pFileName, MyOSThreadID(), (unsigned \
long)g_TLS_RTPThreadID));  
-    if (g_TLS_BRCVThreadType == BRCV_THR_WORKER)
+    if (g_TLS_RTPThreadType == RTP_THR_WORKER)
     {
-        RDPRINTF(B_THREADV, ("BRCVDoesExistCallback:: STEP 1\n"));
+        RTPDPRINTF(B_THREADV, ("RTPDoesExistCallback:: STEP 1\n"));
         m_pFeed->InitFeed();
         res = m_pFeed->DoesExist(m_pFileName, (IHXFileExistsResponse*)this);
     }
     else // manager thread
     {
-        RDPRINTF(B_THREADV, ("BRCVDoesExistCallback:: STEP 3\n"));
+        RTPDPRINTF(B_THREADV, ("RTPDoesExistCallback:: STEP 3\n"));
 
-        HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_MANAGER);
+        HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
         HX_DELETE(m_pFileName);
         IHXFileExistsResponse* pResponse = m_pResponse;
@@ -729,12 +718,12 @@
  *  IHXFileExistsResponse Interface Methods               ref:  hxfiles.h
  */
 STDMETHODIMP
-BRCVDoesExistCallback::DoesExistDone(HXBOOL bExist)
+RTPDoesExistCallback::DoesExistDone(HXBOOL bExist)
 {
-    RDPRINTF(B_THREADV, ("BRCVDoesExistCallback:: STEP 2\n"));
+    RTPDPRINTF(B_THREADV, ("RTPDoesExistCallback:: STEP 2\n"));
     HX_RESULT res = HXR_OK;                 
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
     m_bExists = bExist;
 
@@ -756,13 +745,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVDoesExistCallback::AddRef()
+RTPDoesExistCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVDoesExistCallback::Release()
+RTPDoesExistCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -774,7 +763,7 @@
 }
 
 STDMETHODIMP
-BRCVDoesExistCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPDoesExistCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -798,41 +787,42 @@
     *ppvObj = NULL;
     return HXR_NOINTERFACE;
 }
+#endif
+
 
 /************************************************************************
- *  BRCVGetFileHeaderCallback Methods
+ *  RTPGetFileHeaderCallback Methods
  *
  *      Dispatches a GetFileHeader call to a worker.
  */
-BRCVGetFileHeaderCallback::BRCVGetFileHeaderCallback(BroadcastReceiverFeed* pFeed)
+RTPGetFileHeaderCallback::RTPGetFileHeaderCallback(RTPBCStreamsObject* \
pStreamsObject)  : m_lRefCount(0)
-    , m_pFeed(pFeed)
+    , m_pStreamsObject(pStreamsObject)
 {
-    RDPRINTF(B_CONS, ("%p: \
                BRCVGetFileHeaderCallback::BRCVGetFileHeaderCallback()\n", this));
-    HX_ADDREF(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: \
RTPGetFileHeaderCallback::RTPGetFileHeaderCallback()\n", this)); +    \
HX_ADDREF(m_pStreamsObject);  }
 
-BRCVGetFileHeaderCallback::~BRCVGetFileHeaderCallback()
+RTPGetFileHeaderCallback::~RTPGetFileHeaderCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
                BRCVGetFileHeaderCallback::~BRCVGetFileHeaderCallback()\n", this));
-    HX_RELEASE(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: \
RTPGetFileHeaderCallback::~RTPGetFileHeaderCallback()\n", this)); +    \
HX_RELEASE(m_pStreamsObject);  }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVGetFileHeaderCallback::Func()
+RTPGetFileHeaderCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
-    RDPRINTF(B_THREADV, ("BRCVGetFileHeaderCallback::Func() called!  TID=%llu\n",
+    RTPDPRINTF(B_THREADV, ("RTPGetFileHeaderCallback::Func() called!  TID=%llu\n",
            MyOSThreadID()));
 
-    res = m_pFeed->GetFileHeader();
-
+    res = m_pStreamsObject->GetFileHeader();
     return res;
 }
 
@@ -840,13 +830,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVGetFileHeaderCallback::AddRef()
+RTPGetFileHeaderCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVGetFileHeaderCallback::Release()
+RTPGetFileHeaderCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -858,7 +848,7 @@
 }
 
 STDMETHODIMP
-BRCVGetFileHeaderCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPGetFileHeaderCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -878,11 +868,11 @@
 }
 
 /************************************************************************
- *  BRCVGetFileHeaderResponseCallback Methods
+ *  RTPGetFileHeaderResponseCallback Methods
  *
  *      Dispatches a GetFileHeader response call to a manager thread.
  */
-BRCVGetFileHeaderResponseCallback::BRCVGetFileHeaderResponseCallback(
+RTPGetFileHeaderResponseCallback::RTPGetFileHeaderResponseCallback(
                                                      IHXFormatResponse* \
                pRealResponse,
                                                      HX_RESULT          status,
                                                      IHXValues*         pHeader)
@@ -891,15 +881,15 @@
     , m_pHeader(pHeader)
     , m_pRealResponse(pRealResponse)
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVGetFileHeaderResponseCallback::BRCVGetFileHeaderResponseCallback()\n", this)); +  \
RTPDPRINTF(B_CONS, ("%p: \
RTPGetFileHeaderResponseCallback::RTPGetFileHeaderResponseCallback()\n", this));  \
HX_ASSERT(m_pRealResponse);  HX_ADDREF(m_pRealResponse);
     HX_ADDREF(m_pHeader);
 }
 
-BRCVGetFileHeaderResponseCallback::~BRCVGetFileHeaderResponseCallback()
+RTPGetFileHeaderResponseCallback::~RTPGetFileHeaderResponseCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVGetFileHeaderResponseCallback::~BRCVGetFileHeaderResponseCallback()\n", this)); + \
RTPDPRINTF(B_CONS, ("%p: \
RTPGetFileHeaderResponseCallback::~RTPGetFileHeaderResponseCallback()\n", this));  \
HX_RELEASE(m_pRealResponse);  HX_RELEASE(m_pHeader);
 }
@@ -908,16 +898,16 @@
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVGetFileHeaderResponseCallback::Func()
+RTPGetFileHeaderResponseCallback::Func()
 {
     HX_RESULT res = HXR_OK;                 
 
-    RDPRINTF(B_THREADV, ("BRCVGetFileHeaderResponseCallback::Func() called!  \
status=%lu  TID=%llu\n", +    RTPDPRINTF(B_THREADV, \
("RTPGetFileHeaderResponseCallback::Func() called!  status=%lu  TID=%llu\n",  \
m_lStatus, MyOSThreadID()));  
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
-    if (g_TLS_BRCVThreadType == BRCV_THR_MANAGER)
+    if (g_TLS_RTPThreadType == RTP_THR_MANAGER)
     {
         res = m_pRealResponse->FileHeaderReady(m_lStatus, m_pHeader);
     }
@@ -930,13 +920,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVGetFileHeaderResponseCallback::AddRef()
+RTPGetFileHeaderResponseCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVGetFileHeaderResponseCallback::Release()
+RTPGetFileHeaderResponseCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -948,7 +938,7 @@
 }
 
 STDMETHODIMP
-BRCVGetFileHeaderResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPGetFileHeaderResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -967,56 +957,58 @@
     return HXR_NOINTERFACE;
 }
 
+
 /************************************************************************
- *  BRCVGetStreamHeaderCallback Methods
+ *  RTPGetStreamHeaderCallback Methods
  *
  *      Dispatches a GetStreamHeader call to a worker.
  */
-BRCVGetStreamHeaderCallback::BRCVGetStreamHeaderCallback(UINT16 unStreamNumber,
-                                                         BroadcastReceiverFeed* \
pFeed) +RTPGetStreamHeaderCallback::RTPGetStreamHeaderCallback(UINT16 unStreamNumber,
+                                                         RTPBCStreamsObject* \
pStreamsObject)  : m_lRefCount(0)
     , m_unStreamNumber(unStreamNumber)
-    , m_pFeed(pFeed)
+    , m_pStreamsObject(pStreamsObject)
 {
-    RDPRINTF(B_CONS, ("%p: \
                BRCVGetStreamHeaderCallback::BRCVGetStreamHeaderCallback()\n", \
                this));
-    HX_ADDREF(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: \
RTPGetStreamHeaderCallback::RTPGetStreamHeaderCallback()\n", this)); +    \
HX_ADDREF(m_pStreamsObject);  }
 
-BRCVGetStreamHeaderCallback::~BRCVGetStreamHeaderCallback()
+RTPGetStreamHeaderCallback::~RTPGetStreamHeaderCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
                BRCVGetStreamHeaderCallback::~BRCVGetStreamHeaderCallback()\n", \
                this));
-    HX_RELEASE(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: \
RTPGetStreamHeaderCallback::~RTPGetStreamHeaderCallback()\n", this)); +    \
HX_RELEASE(m_pStreamsObject);  }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVGetStreamHeaderCallback::Func()
+RTPGetStreamHeaderCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
-    RDPRINTF(B_THREADV, ("BRCVGetStreamHeaderCallback::Func() called!  TID=%llu\n",
+    RTPDPRINTF(B_THREADV, ("RTPGetStreamHeaderCallback::Func() called!  TID=%llu\n",
            MyOSThreadID()));
 
-    res = m_pFeed->GetStreamHeader(m_unStreamNumber);
+    m_pStreamsObject->GetStreamHeader(m_unStreamNumber);
 
     return res;
 }
 
+
 /************************************************************************
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVGetStreamHeaderCallback::AddRef()
+RTPGetStreamHeaderCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVGetStreamHeaderCallback::Release()
+RTPGetStreamHeaderCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1028,7 +1020,7 @@
 }
 
 STDMETHODIMP
-BRCVGetStreamHeaderCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPGetStreamHeaderCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1048,11 +1040,11 @@
 }
 
 /************************************************************************
- *  BRCVGetStreamHeaderResponseCallback Methods
+ *  RTPGetStreamHeaderResponseCallback Methods
  *
  *      Dispatches a GetStreamHeader response call to a manager thread.
  */
-BRCVGetStreamHeaderResponseCallback::BRCVGetStreamHeaderResponseCallback(
+RTPGetStreamHeaderResponseCallback::RTPGetStreamHeaderResponseCallback(
                                                      IHXFormatResponse* \
                pRealResponse,
                                                      HX_RESULT          status,
                                                      IHXValues*         pHeader)
@@ -1061,15 +1053,15 @@
     , m_pHeader(pHeader)
     , m_pRealResponse(pRealResponse)
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVGetStreamHeaderResponseCallback::BRCVGetStreamHeaderResponseCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPGetStreamHeaderResponseCallback::RTPGetStreamHeaderResponseCallback()\n", this));  \
HX_ASSERT(m_pRealResponse);  HX_ADDREF(m_pRealResponse);
     HX_ADDREF(m_pHeader);
 }
 
-BRCVGetStreamHeaderResponseCallback::~BRCVGetStreamHeaderResponseCallback()
+RTPGetStreamHeaderResponseCallback::~RTPGetStreamHeaderResponseCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVGetStreamHeaderResponseCallback::~BRCVGetStreamHeaderResponseCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPGetStreamHeaderResponseCallback::~RTPGetStreamHeaderResponseCallback()\n", this)); \
HX_RELEASE(m_pRealResponse);  HX_RELEASE(m_pHeader);
 }
@@ -1078,16 +1070,16 @@
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVGetStreamHeaderResponseCallback::Func()
+RTPGetStreamHeaderResponseCallback::Func()
 {
     HX_RESULT res = HXR_OK;                 
 
-    RDPRINTF(B_THREADV, ("BRCVGetStreamHeaderResponseCallback::Func() called!  \
status=%lu  TID=%llu\n", +    RTPDPRINTF(B_THREADV, \
("RTPGetStreamHeaderResponseCallback::Func() called!  status=%lu  TID=%llu\n",  \
m_lStatus, MyOSThreadID()));  
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
-    if (g_TLS_BRCVThreadType == BRCV_THR_MANAGER)
+    if (g_TLS_RTPThreadType == RTP_THR_MANAGER)
     {
         res = m_pRealResponse->StreamHeaderReady(m_lStatus, m_pHeader);
     }
@@ -1100,13 +1092,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVGetStreamHeaderResponseCallback::AddRef()
+RTPGetStreamHeaderResponseCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVGetStreamHeaderResponseCallback::Release()
+RTPGetStreamHeaderResponseCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1118,7 +1110,7 @@
 }
 
 STDMETHODIMP
-BRCVGetStreamHeaderResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPGetStreamHeaderResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1138,40 +1130,40 @@
 }
 
 /************************************************************************
- *  BRCVStartPacketsCallback Methods
+ *  RTPStartPacketsCallback Methods
  *
  *      Dispatches a StartPackets call to a worker.
  */
-BRCVStartPacketsCallback::BRCVStartPacketsCallback(UINT16 unStreamNumber,
-                                                   BroadcastReceiverFeed* pFeed)
+RTPStartPacketsCallback::RTPStartPacketsCallback(UINT16 unStreamNumber,
+                                                   RTPBCStreamsObject* \
pStreamsObject)  : m_lRefCount(0)
     , m_unStreamNumber(unStreamNumber)
-    , m_pFeed(pFeed)
+    , m_pStreamsObject(pStreamsObject)
 {
-    RDPRINTF(B_CONS, ("%p: BRCVStartPacketsCallback::BRCVStartPacketsCallback()\n", \
                this));
-    HX_ADDREF(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: RTPStartPacketsCallback::RTPStartPacketsCallback()\n", \
this)); +    HX_ADDREF(m_pStreamsObject);
 }
 
-BRCVStartPacketsCallback::~BRCVStartPacketsCallback()
+RTPStartPacketsCallback::~RTPStartPacketsCallback()
 {
-    RDPRINTF(B_CONS, ("%p: BRCVStartPacketsCallback::~BRCVStartPacketsCallback()\n", \
                this));
-    HX_RELEASE(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: RTPStartPacketsCallback::~RTPStartPacketsCallback()\n", \
this)); +    HX_RELEASE(m_pStreamsObject);
 }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVStartPacketsCallback::Func()
+RTPStartPacketsCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
-    RDPRINTF(B_THREADV, ("BRCVStartPacketsCallback::Func() called!  TID=%llu\n",
+    RTPDPRINTF(B_THREADV, ("RTPStartPacketsCallback::Func() called!  TID=%llu\n",
            MyOSThreadID()));
 
-    res = m_pFeed->StartPackets(m_unStreamNumber);
+    res = m_pStreamsObject->StartPackets(m_unStreamNumber);
 
     return res;
 }
@@ -1180,13 +1172,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVStartPacketsCallback::AddRef()
+RTPStartPacketsCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVStartPacketsCallback::Release()
+RTPStartPacketsCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1198,7 +1190,7 @@
 }
 
 STDMETHODIMP
-BRCVStartPacketsCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPStartPacketsCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1218,40 +1210,40 @@
 }
 
 /************************************************************************
- *  BRCVStopPacketsCallback Methods
+ *  RTPStopPacketsCallback Methods
  *
  *      Dispatches a StopPackets call to a worker.
  */
-BRCVStopPacketsCallback::BRCVStopPacketsCallback(UINT16 unStreamNumber,
-                                                 BroadcastReceiverFeed* pFeed)
+RTPStopPacketsCallback::RTPStopPacketsCallback(UINT16 unStreamNumber,
+                                                 RTPBCStreamsObject* pStreamsObject)
     : m_lRefCount(0)
     , m_unStreamNumber(unStreamNumber)
-    , m_pFeed(pFeed)
+    , m_pStreamsObject(pStreamsObject)
 {
-    RDPRINTF(B_CONS, ("%p: BRCVStopPacketsCallback::BRCVStopPacketsCallback()\n", \
                this));
-    HX_ADDREF(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: RTPStopPacketsCallback::RTPStopPacketsCallback()\n", \
this)); +    HX_ADDREF(m_pStreamsObject);
 }
 
-BRCVStopPacketsCallback::~BRCVStopPacketsCallback()
+RTPStopPacketsCallback::~RTPStopPacketsCallback()
 {
-    RDPRINTF(B_CONS, ("%p: BRCVStopPacketsCallback::~BRCVStopPacketsCallback()\n", \
                this));
-    HX_RELEASE(m_pFeed);
+    RTPDPRINTF(B_CONS, ("%p: RTPStopPacketsCallback::~RTPStopPacketsCallback()\n", \
this)); +    HX_RELEASE(m_pStreamsObject);
 }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVStopPacketsCallback::Func()
+RTPStopPacketsCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
-    RDPRINTF(B_THREADV, ("BRCVStopPacketsCallback::Func() called!  TID=%llu\n",
+    RTPDPRINTF(B_THREADV, ("RTPStopPacketsCallback::Func() called!  TID=%llu\n",
            MyOSThreadID()));
 
-    res = m_pFeed->StopPackets(m_unStreamNumber);
+    res = m_pStreamsObject->StopPackets(m_unStreamNumber);
 
     return res;
 }
@@ -1260,13 +1252,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVStopPacketsCallback::AddRef()
+RTPStopPacketsCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVStopPacketsCallback::Release()
+RTPStopPacketsCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1278,7 +1270,7 @@
 }
 
 STDMETHODIMP
-BRCVStopPacketsCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPStopPacketsCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1298,46 +1290,50 @@
 }
 
 
+#if 0
 /************************************************************************
- *  BRCVInitReceiverCallback Methods
+ *  RTPInitReceiverCallback Methods
  *
  *      Dispatches an InitReceiver call to a worker.
  */
-BRCVInitReceiverCallback::BRCVInitReceiverCallback(UINT32 ulManagerThreadID,
-                                                   UINT32 ulReceiverID)
+RTPInitReceiverCallback::RTPInitReceiverCallback(UINT32 ulManagerThreadID,
+                                                 UINT32 ulReceiverID)
     : m_lRefCount(0)
     , m_ulReceiverID(ulReceiverID)
     , m_ulManagerThreadID(ulManagerThreadID)
 {
-    RDPRINTF(B_CONS, ("%p: BRCVInitReceiverCallback::BRCVInitReceiverCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPInitReceiverCallback::RTPInitReceiverCallback()\n", this));  }
 
-BRCVInitReceiverCallback::~BRCVInitReceiverCallback()
+RTPInitReceiverCallback::~RTPInitReceiverCallback()
 {
-    RDPRINTF(B_CONS, ("%p: BRCVInitReceiverCallback::~BRCVInitReceiverCallback()\n", \
this)); +    RTPDPRINTF(B_CONS, ("%p: \
RTPInitReceiverCallback::~RTPInitReceiverCallback()\n", this));  }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVInitReceiverCallback::Func()
+RTPInitReceiverCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    RDPRINTF(B_THREADV,
-             ("BRCVInitReceiverCallback::Func() called!  TID=%llu ThreadID=%lu\n",
-              MyOSThreadID(), (unsigned long)g_TLS_BRCVThreadID));
+    RTPDPRINTF(B_THREADV,
+             ("RTPInitReceiverCallback::Func() called!  TID=%llu ThreadID=%lu\n",
+              MyOSThreadID(), (unsigned long)g_TLS_RTPThreadID));
 
-    if (g_TLS_BRCVThreadType == BRCV_THR_WORKER)
+    if (g_TLS_RTPThreadType == RTP_THR_WORKER)
     {
+        //FIXME
+        #if 0
         BroadcastReceiverThread* pWorkerThread = \
BroadcastReceiverThread::GetInstance();  pWorkerThread->InitReceiver(m_ulReceiverID);
         HX_RELEASE(pWorkerThread);
+        #endif
     }
     else // manager thread
     {
-        HX_ASSERT(!"BRCVInitReceiverCallback::Func() in wrong thread!");
+        HX_ASSERT(!"RTPInitReceiverCallback::Func() in wrong thread!");
     }
 
     return res;
@@ -1348,13 +1344,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVInitReceiverCallback::AddRef()
+RTPInitReceiverCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVInitReceiverCallback::Release()
+RTPInitReceiverCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1366,7 +1362,7 @@
 }
 
 STDMETHODIMP
-BRCVInitReceiverCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPInitReceiverCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1384,28 +1380,28 @@
     *ppvObj = NULL;
     return HXR_NOINTERFACE;
 }
-
+#endif
 
 /************************************************************************
- *  BRCVStreamDoneResponseCallback Methods
+ *  RTPStreamDoneResponseCallback Methods
  *
  *      Dispatches a StreamDone response call to a manager thread.
  */
-BRCVStreamDoneResponseCallback::BRCVStreamDoneResponseCallback(
+RTPStreamDoneResponseCallback::RTPStreamDoneResponseCallback(
                                                      IHXFormatResponse* \
                pRealResponse,
                                                      UINT16             \
unStreamNumber)  : m_lRefCount(0)
     , m_unStreamNumber(unStreamNumber)
     , m_pRealResponse(pRealResponse)
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVStreamDoneResponseCallback::BRCVStreamDoneResponseCallback()\n", this)); +    \
RTPDPRINTF(B_CONS, ("%p: \
RTPStreamDoneResponseCallback::RTPStreamDoneResponseCallback()\n", this));  \
HX_ASSERT(m_pRealResponse);  HX_ADDREF(m_pRealResponse);
 }
 
-BRCVStreamDoneResponseCallback::~BRCVStreamDoneResponseCallback()
+RTPStreamDoneResponseCallback::~RTPStreamDoneResponseCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVStreamDoneResponseCallback::~BRCVStreamDoneResponseCallback()\n", this)); +    \
RTPDPRINTF(B_CONS, ("%p: \
RTPStreamDoneResponseCallback::~RTPStreamDoneResponseCallback()\n", this));  \
HX_RELEASE(m_pRealResponse);  }
 
@@ -1413,16 +1409,16 @@
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVStreamDoneResponseCallback::Func()
+RTPStreamDoneResponseCallback::Func()
 {
     HX_RESULT res = HXR_OK;                 
 
-    RDPRINTF(B_THREADV, ("BRCVStreamDoneResponseCallback::Func() called!  stream=%lu \
TID=%llu\n", +    RTPDPRINTF(B_THREADV, ("RTPStreamDoneResponseCallback::Func() \
called!  stream=%lu  TID=%llu\n",  m_unStreamNumber, MyOSThreadID()));
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
-    if (g_TLS_BRCVThreadType == BRCV_THR_MANAGER)
+    if (g_TLS_RTPThreadType == RTP_THR_MANAGER)
     {
         res = m_pRealResponse->StreamDone(m_unStreamNumber);
 
@@ -1436,13 +1432,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVStreamDoneResponseCallback::AddRef()
+RTPStreamDoneResponseCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVStreamDoneResponseCallback::Release()
+RTPStreamDoneResponseCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1454,7 +1450,7 @@
 }
 
 STDMETHODIMP
-BRCVStreamDoneResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPStreamDoneResponseCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {
@@ -1474,33 +1470,34 @@
 }
 
 
+#if 0
 /************************************************************************
- *  BRCVPurgeReceiversCallback Methods
+ *  RTPPurgeReceiversCallback Methods
  *
  *      Dispatches a PurgeReceivers call to a worker.
  */
-BRCVPurgeReceiversCallback::BRCVPurgeReceiversCallback()
+RTPPurgeReceiversCallback::RTPPurgeReceiversCallback()
     : m_lRefCount(0)
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVPurgeReceiversCallback::BRCVPurgeReceiversCallback()\n", this)); +    \
RTPDPRINTF(B_CONS, ("%p: RTPPurgeReceiversCallback::RTPPurgeReceiversCallback()\n", \
this));  }
 
-BRCVPurgeReceiversCallback::~BRCVPurgeReceiversCallback()
+RTPPurgeReceiversCallback::~RTPPurgeReceiversCallback()
 {
-    RDPRINTF(B_CONS, ("%p: \
BRCVPurgeReceiversCallback::~BRCVPurgeReceiversCallback()\n", this)); +    \
RTPDPRINTF(B_CONS, ("%p: RTPPurgeReceiversCallback::~RTPPurgeReceiversCallback()\n", \
this));  }
 
 /************************************************************************
  *  IHXCallback Interface Methods                         ref:  hxengin.h
  */
 STDMETHODIMP
-BRCVPurgeReceiversCallback::Func()
+RTPPurgeReceiversCallback::Func()
 {
     HX_RESULT res = HXR_OK;
 
-    HX_ASSERT(g_TLS_BRCVThreadType == BRCV_THR_WORKER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_WORKER);
 
-    RDPRINTF(B_THREADV, ("BRCVPurgeReceiversCallback::Func() called!  TID=%llu\n",
+    RTPDPRINTF(B_THREADV, ("RTPPurgeReceiversCallback::Func() called!  TID=%llu\n",
            MyOSThreadID()));
 
     BroadcastReceiverThread* pWorkerThread = BroadcastReceiverThread::GetInstance();
@@ -1514,13 +1511,13 @@
  *  IUnknown COM Interface Methods                          ref:  hxcom.h
  */
 STDMETHODIMP_(ULONG32)
-BRCVPurgeReceiversCallback::AddRef()
+RTPPurgeReceiversCallback::AddRef()
 {
     return InterlockedIncrement(&m_lRefCount);
 }
 
 STDMETHODIMP_(ULONG32)
-BRCVPurgeReceiversCallback::Release()
+RTPPurgeReceiversCallback::Release()
 {
     if (InterlockedDecrement(&m_lRefCount) > 0)
     {
@@ -1532,7 +1529,7 @@
 }
 
 STDMETHODIMP
-BRCVPurgeReceiversCallback::QueryInterface(REFIID riid, void** ppvObj)
+RTPPurgeReceiversCallback::QueryInterface(REFIID riid, void** ppvObj)
 {
     if (IsEqualIID(riid, IID_IHXCallback))
     {

Index: rtpbcplin.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/Attic/rtpbcplin.cpp,v
retrieving revision 1.1.2.5
retrieving revision 1.1.2.6
diff -u -d -r1.1.2.5 -r1.1.2.6
--- rtpbcplin.cpp	28 Oct 2011 15:40:29 -0000	1.1.2.5
+++ rtpbcplin.cpp	28 Oct 2011 21:45:40 -0000	1.1.2.6
@@ -78,7 +78,7 @@
  * Globals
  */
 // thread local storage
-__TLS RTPThreadType           g_TLS_threadType = RTP_THR_UNKNOWN;
+__TLS RTPThreadType           g_TLS_RTPThreadType = RTP_THR_UNKNOWN;
 __TLS UINT32                  g_TLS_RTPThreadID = 0;
 __TLS IUnknown*               g_TLS_pContext = NULL;
 __TLS IHXCommonClassFactory*  g_TLS_pClassFactory = NULL;
@@ -395,7 +395,7 @@
         m_bSourceAddressFilter = ulVar;
     }
 
-    if (!m_pDirMgr && m_bRTPLicensed && bEmulateEncoder && g_TLS_threadType == \
RTP_THR_MANAGER) +    if (!m_pDirMgr && m_bRTPLicensed && bEmulateEncoder && \
g_TLS_RTPThreadType == RTP_THR_MANAGER)  {
         // The directory manager is a singleton that runs only in the manager thread
 	if ((m_pDirMgr = new RTPDirectoryManager(this)))
@@ -449,7 +449,7 @@
     }
 
     HXBOOL bStartWatchNeeded = FALSE;
-    if (!m_pDirMgr && m_bRTPLicensed && bEmulateEncoder && g_TLS_threadType == \
RTP_THR_MANAGER) +    if (!m_pDirMgr && m_bRTPLicensed && bEmulateEncoder && \
g_TLS_RTPThreadType == RTP_THR_MANAGER)  {
         // The directory manager is a singleton that runs only in the manager thread
 	if (m_pDirMgr = new RTPDirectoryManager(this))

Index: rtpbcobj.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/Attic/rtpbcobj.cpp,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -u -d -r1.1.2.4 -r1.1.2.5
--- rtpbcobj.cpp	28 Oct 2011 15:40:29 -0000	1.1.2.4
+++ rtpbcobj.cpp	28 Oct 2011 21:45:40 -0000	1.1.2.5
@@ -278,12 +278,12 @@
     g_TLS_RTPThreadID = InterlockedIncrement(&g_ulNextRTPThreadID) - 1;
     if (g_TLS_RTPThreadID == 1)
     {
-        g_TLS_threadType = RTP_THR_MANAGER;
+        g_TLS_RTPThreadType = RTP_THR_MANAGER;
         RTPDPRINTF(B_INFO, ("I'm the manager thread! (RTP Live thread # %d)\n", \
g_TLS_RTPThreadID));  }
     else
     {
-        g_TLS_threadType = RTP_THR_WORKER;
+        g_TLS_RTPThreadType = RTP_THR_WORKER;
         RTPDPRINTF(B_INFO, ("I'm a worker thread! (RTP Live thread # %d)\n", \
g_TLS_RTPThreadID));  }
 
@@ -543,7 +543,7 @@
 RTPBroadcastObject::DoesExist(const char* pPath,
                              IHXFileExistsResponse* pResponse)
 {    
-    HX_ASSERT(g_TLS_threadType == RTP_THR_MANAGER);
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
     // Dispatch the URL to a worker thread!
     HX_RESULT res = DispatchURL(pPath);
@@ -556,11 +556,7 @@
     else
     {
         // URL dispatch failed.
-        // Handle the feed here in the RTP Manager thread.
-        HX_ASSERT(!"What happened??");
-        RTPBCStreamsObject* pRTPBCStreamsObject = new RTPBCStreamsObject(m_pContext, \
                m_pOptions);
-        g_pFileDict->AddStreamsObject(pPath, pRTPBCStreamsObject);
-        pRTPBCStreamsObject->DoesExist(pPath, pResponse);
+        pResponse->DoesExistDone(FALSE);
     }
 
     return HXR_OK;
@@ -570,7 +566,9 @@
 HX_RESULT
 RTPBroadcastObject::DispatchURL(const char* pPath)
 {
-    HX_ASSERT(g_TLS_threadType == RTP_THR_MANAGER);
+    RTPDPRINTF(B_INFO, ("RTPBroadcastObject::DispatchURL this=%p url=%s\n", this, \
pPath)); +
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
     UINT32 ulSDPOwnerID = 0;
     if (FAILED(GlobalRTPBroadcastFormat()->FindOwnerThread(pPath, &ulSDPOwnerID)))
@@ -585,6 +583,9 @@
     }
 
 
+    // We always send the sdp over even if we've already processed it since
+    // the feed might have timed-out and we need the worker to reinitialize
+    // it if so.
     const char* pNameCopy = new_string(pPath);
     SDPFileAddedCallback* pCB = new SDPFileAddedCallback(pNameCopy);
     pCB->AddRef();
@@ -626,24 +627,32 @@
 STDMETHODIMP 
 RTPBroadcastObject::GetFileHeader()
 {
-    IHXValues* pHeader = NULL;
+    return DispatchGetFileHeader();
+}
 
-    if(m_pStreamsObject->GetFileHeader(pHeader) == HXR_OK)
-    {
-        // Pass the file header to the server
-        m_pFFResponse->FileHeaderReady(HXR_OK, pHeader);
-    }
-    else
+HX_RESULT
+RTPBroadcastObject::DispatchGetFileHeader(void)
+{
+    RTPDPRINTF(B_INFO, ("RTPBroadcastObject::DispatchGetFileHeader this=%p\n", \
this)); +
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
+
+    UINT32 ulSDPOwnerID = 0;
+    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(
+        m_pStreamsObject->GetRequestedPath(), &ulSDPOwnerID);
+    if (SUCCEEDED(res))
     {
-        m_pFFResponse->FileHeaderReady(HXR_FAIL, NULL);
+        RTPGetFileHeaderCallback* pCB = new \
RTPGetFileHeaderCallback(m_pStreamsObject); +        pCB->AddRef();
+        res = g_TLS_pWTManager->SendWorkerMessage(HX_WORKER_TYPE_LIVE_INGRESS,
+                                                  ulSDPOwnerID,
+                                                  (IHXCallback*)pCB);
+        HX_RELEASE(pCB);
     }
 
-    HX_RELEASE(pHeader);
-
-    return HXR_OK;
+    return res;
 }
 
-
 /****************************************************************************
  *  IHXBroadcastFormatObject::GetStreamHeader               ref:  hxformt.h
  *
@@ -656,23 +665,25 @@
 HX_RESULT
 RTPBroadcastObject::GetStreamHeader(UINT16 unStreamNumber)
 {
-    IHXValues* pHeader = NULL;
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
 
-    if(m_pStreamsObject->GetStreamHeader(unStreamNumber, pHeader) == HXR_OK)
-    {
-        // Pass the stream header to the server
-        m_pFFResponse->StreamHeaderReady(HXR_OK, pHeader);
-    }
-    else
+    UINT32 ulWorkerID = 0;
+    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(
+        m_pStreamsObject->GetRequestedPath(), &ulWorkerID);
+    if (SUCCEEDED(res))
     {
-        m_pFFResponse->StreamHeaderReady(HXR_FAIL, NULL);
+        RTPGetStreamHeaderCallback* pCB = new RTPGetStreamHeaderCallback(
+                unStreamNumber, m_pStreamsObject);
+        pCB->AddRef();
+        HX_RESULT res = g_TLS_pWTManager->SendWorkerMessage(
+                HX_WORKER_TYPE_LIVE_INGRESS, ulWorkerID, (IHXCallback*)pCB);
+        HX_RELEASE(pCB);
     }
 
-    HX_RELEASE(pHeader);
-
-    return HXR_OK;
+    return res;
 }
 
+
 /****************************************************************************
  *  IHXBroadcastFormatObject::StartPackets                  ref:  hxformt.h
  *
@@ -685,8 +696,31 @@
 STDMETHODIMP
 RTPBroadcastObject::StartPackets(UINT16 unStreamNumber)
 {        
-    m_pStreamsObject->StartPackets(unStreamNumber);
-    return HXR_OK;
+    return DispatchStartPackets(unStreamNumber);
+}
+
+
+HX_RESULT
+RTPBroadcastObject::DispatchStartPackets(UINT16 unStreamNumber)
+{
+    RTPDPRINTF(B_INFO, ("RTPBroadcastObject::DispatchStartPackets this=%p\n", \
this)); +
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
+
+    UINT32 ulWorkerID = 0;
+    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(
+        m_pStreamsObject->GetRequestedPath(), &ulWorkerID);
+    if (SUCCEEDED(res))
+    {
+        StartPacketsCallback* pCB = new StartPacketsCallback(m_pStreamsObject, \
unStreamNumber); +        pCB->AddRef();
+        res = g_TLS_pWTManager->SendWorkerMessage(HX_WORKER_TYPE_LIVE_INGRESS,
+                                                  ulWorkerID,
+                                                  (IHXCallback*)pCB);
+        HX_RELEASE(pCB);
+    }
+
+    return res;
 }
 
 
@@ -698,10 +732,31 @@
 STDMETHODIMP
 RTPBroadcastObject::StopPackets(UINT16 unStreamNumber)
 {
-    m_pStreamsObject->StopAllStreams(FALSE);
-    return HXR_OK;
+    return DispatchStopAllStreams(FALSE);
 }
 
+HX_RESULT
+RTPBroadcastObject::DispatchStopAllStreams(HXBOOL bFlushPackets)
+{
+    RTPDPRINTF(B_INFO, ("RTPBroadcastObject::DispatchStopPackets this=%p\n", this));
+
+    HX_ASSERT(g_TLS_RTPThreadType == RTP_THR_MANAGER);
+
+    UINT32 ulWorkerID = 0;
+    HX_RESULT res = GlobalRTPBroadcastFormat()->FindOwnerThread(
+        m_pStreamsObject->GetRequestedPath(), &ulWorkerID);
+    if (SUCCEEDED(res))
+    {
+        StopAllStreamsCallback* pCB = new StopAllStreamsCallback(m_pStreamsObject, \
bFlushPackets); +        pCB->AddRef();
+        res = g_TLS_pWTManager->SendWorkerMessage(HX_WORKER_TYPE_LIVE_INGRESS,
+                                                  ulWorkerID,
+                                                  (IHXCallback*)pCB);
+        HX_RELEASE(pCB);
+    }
+
+    return res;
+}
 
 // IHXFileSystemObject Interface Methods
 
@@ -712,7 +767,7 @@
  */
 STDMETHODIMP
 RTPBroadcastObject::GetFileSystemInfo(REF(const char*) /*OUT*/ pShortName,
-                                     REF(const char*) /*OUT*/ pProtocol)
+                                      REF(const char*) /*OUT*/ pProtocol)
 {
     pShortName = "rn-rtpencoder";
     pProtocol  = "rtpencoder";


_______________________________________________
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