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

List:       helix-server-cvs
Subject:    [Server-cvs] broadcast/transport/rtp/recv qtbcobj.cpp,1.55,1.56
From:       jzeng () helixcommunity ! org
Date:       2010-06-16 17:43:44
Message-ID: 201006161743.o5GHhor0023044 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
	qtbcobj.cpp 
Log Message:
Synopsis
============
Bug 260823: 3rd Party encoders do not live stream on Helix using RTP due to missing b=AS parameter
Branches:  head, SERVER_14_RN
Suggested Reviewer: Jamie

Description
===========
We b=AS is missing, the server doesn't expect it, so in a few places we have the check and return
failure.  The end result is 404 to the client.

To fix this bug, qtbcplin will set the average bitrate to 100k(I just pick a number), and force PPM
delivery as MDP will be screwed up by the inaccurate bw info.


Files Affected
==============
server/engine/session/clientsession.cpp,v
server/engine/session/pub/clientsession.h,v
server/broadcast/transport/rtp/recv/qtbcobj.cpp,v

Testing Performed
================= 

Unit Tests: 
None. 

Integration Tests: 
verify playback of wirecast broadcast.

Leak Tests: 
None. 

Performance Tests: 
- None 

Platforms Tested: win32-i386-vc7
Build verified: win32-i386-vc7 






Index: qtbcobj.cpp
===================================================================
RCS file: /cvsroot/server/broadcast/transport/rtp/recv/qtbcobj.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -d -r1.55 -r1.56
--- qtbcobj.cpp	8 Apr 2010 23:28:42 -0000	1.55
+++ qtbcobj.cpp	16 Jun 2010 17:43:42 -0000	1.56
@@ -1122,6 +1122,7 @@
     IHXValuesRemove* pHeaderRem = NULL;
     UINT32 ulWidth = 0;
     UINT32 ulHeight = 0;
+    UINT32 ulBW = 0;
 
     m_pStreams = new CHXPtrArray();
     for (i = 0; i < m_usStreamCnt; ++i)
@@ -1148,6 +1149,14 @@
             pHeader->SetPropertyULONG32("FrameHeight", ulHeight);
         }
 
+        if(FAILED(pHeader->GetPropertyULONG32("AvgBitRate", ulBW)) || ulBW == 0)
+        {
+            //XXXJJ set default rate to 50K, just an arbitrary number
+            //since we don't know the real rate, we have to use PPM Timestamp delivery
+            pHeader->SetPropertyULONG32("AvgBitRate", 100000);
+            m_pFileHeader->SetPropertyULONG32("ForcePPM", 1);
+        }
+
         // Create a new packet handler for this stream
         RTPLiveStream* pStream = new RTPLiveStream(m_pContext);
         pStream->AddRef();


_______________________________________________
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