[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