[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] engine/inputsource/pub base_shim.h, 1.1.2.3.2.1,
From: jzeng () helixcommunity ! org
Date: 2008-03-28 4:31:47
Message-ID: 200803280431.m2S4VuZ2017498 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/server/engine/inputsource/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv3303/engine/inputsource/pub
Modified Files:
Tag: SERVER_12_0
base_shim.h mdpshim.h ppmstaticshim.h
Log Message:
Synopsis
========
Fix realmedia fcs bugs.
Branches: HEAD, server12, server_12_0
Suggested Reviewer: Jamie
Description
===========
RV mutiple frames packets have internal timestamp, and we need to
modify them for fcs just as slta does. There is a class
CRVPacketTimeOffsetHandler to do that, but I choose to copy a few
lines over because:
1. that class uses async method of HandlePacket-PacketReady to pass
packets, which will require a major change in baseshim.
2. that class is extremely inefficient unless we rewrite it. It does
at least 4 strcasecmp for each packets.
In addition, I also add a variable to decide to switch stream. We
can't switch at any switch_off packets: we need to switch at the video
stream. But The method I used still not work right for multi-rate 3gp
content, and I will address that later.
By the way, I couldn't bear the code in baseshim anymore, so I
refactor it a little bit.
Remaing problems:
1. Now we can switch and the player won't complain anymore. For q=1
switch the playbacks look okay, but for q=0 the player may rebuffer
and resume playback in a few seconds.
2. The above-mentioned 3gp multi-rate issue.
Files Affected
==============
server/common/util/livekeyframe.cpp,v
server/common/util/pub/livekeyframe.h,v
server/engine/inputsource/Umakefil,v
server/engine/inputsource/base_shim.cpp,v
server/engine/inputsource/mdpshim.cpp,v
server/engine/inputsource/ppmstaticshim.cpp,v
server/engine/inputsource/pub/base_shim.h,v
server/engine/inputsource/pub/mdpshim.h,v
server/engine/inputsource/pub/ppmstaticshim.h,v
server/engine/session/clientsession.cpp,v
server/engine/session/pub/clientsession.h,v
server-restricted/engine/bin/make_retail,v
Testing Performed
=================
Unit Tests:
None.
Integration Tests:
Test realmedia switching
Verify 3gp switching still okay.
Leak Tests:
--lct 1:1:1 shows no leaks.
Performance Tests:
- None
Platforms Tested: linux-rhel4-i686
Build verified: linux-rhel4-i686
Index: base_shim.h
===================================================================
RCS file: /cvsroot/server/engine/inputsource/pub/base_shim.h,v
retrieving revision 1.1.2.3.2.1
retrieving revision 1.1.2.3.2.2
diff -u -d -r1.1.2.3.2.1 -r1.1.2.3.2.2
--- base_shim.h 23 Mar 2008 05:33:17 -0000 1.1.2.3.2.1
+++ base_shim.h 28 Mar 2008 04:31:44 -0000 1.1.2.3.2.2
@@ -44,6 +44,7 @@
#include "hxswitch.h"
class CHXTimestampConverter;
+struct IHXRegistry;
typedef struct streamData
{
@@ -73,7 +74,8 @@
{
public:
- BasePacketShim(IHXSwitchResponse* pResp,
+ BasePacketShim(IHXRegistry* pReg,
+ IHXSwitchResponse* pResp,
IHXCommonClassFactory* pCF,
ClientSession::StreamInfo** ppStrmInfo,
UINT16 num_streams);
@@ -88,6 +90,7 @@
void HandleWirePayload(IHXBuffer*& pBuffer, UINT32& ulRTPTime, UINT8& \
ucMarker); IHXBuffer* ParsePacket(IHXPacket* pPacket,UINT32& ulRTPCurTS);
IHXRTPPacket* AdjustTimeStamp(IHXPacket* pPacket,IHXBuffer* pBuffer);
+ void AdjustPayloadTimeStamp(IHXBuffer*& pBuffer, UINT32 ulDiff, UINT32 \
ulTimeOffset);
protected:
INT32 m_ulRefCount;
@@ -100,6 +103,9 @@
UINT16 m_uNumOfStreams;
Packet* m_packet;
+ UINT32 m_ulRVStream;
+ UINT32 m_ulSwitchStream;
+
};
#endif /* _BASE_SHIM_H_ */
Index: ppmstaticshim.h
===================================================================
RCS file: /cvsroot/server/engine/inputsource/pub/ppmstaticshim.h,v
retrieving revision 1.13.2.2.2.1
retrieving revision 1.13.2.2.2.2
diff -u -d -r1.13.2.2.2.1 -r1.13.2.2.2.2
--- ppmstaticshim.h 25 Mar 2008 17:51:01 -0000 1.13.2.2.2.1
+++ ppmstaticshim.h 28 Mar 2008 04:31:44 -0000 1.13.2.2.2.2
@@ -47,8 +47,13 @@
class CPPMStaticShim: public IHXPSinkPackets,public IHXPSourcePackets,public \
BasePacketShim {
public:
- CPPMStaticShim(IHXPSourcePackets* pSourcePackets, IHXSwitchResponse* pResp, \
IHXCommonClassFactory* pCCF,
- ClientSession::StreamInfo** ppStrmInfo, UINT16 num_streams,HXBOOL \
bIsRTP); + CPPMStaticShim(IHXRegistry* pReg,
+ IHXPSourcePackets* pSourcePackets,
+ IHXSwitchResponse* pResp,
+ IHXCommonClassFactory* pCCF,
+ ClientSession::StreamInfo** ppStrmInfo,
+ UINT16 num_streams,
+ HXBOOL bIsRTP);
~CPPMStaticShim();
/* IHXPSourcePackets */
Index: mdpshim.h
===================================================================
RCS file: /cvsroot/server/engine/inputsource/pub/mdpshim.h,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.2.4.1
diff -u -d -r1.1.2.2 -r1.1.2.2.4.1
--- mdpshim.h 17 Dec 2007 15:07:28 -0000 1.1.2.2
+++ mdpshim.h 28 Mar 2008 04:31:44 -0000 1.1.2.2.4.1
@@ -47,8 +47,9 @@
class CMDPShim: public IHXServerPacketSource,public IHXServerPacketSink, public \
BasePacketShim,public IHXASMSource {
public:
- CMDPShim(IHXSwitchResponse* pResp,
- IHXCommonClassFactory* pCF,
+ CMDPShim(IHXRegistry* pReg,
+ IHXSwitchResponse* pResp,
+ IHXCommonClassFactory* pCCF,
ClientSession::StreamInfo** ppStrmInfo,
UINT16 num_streams);
~CMDPShim();
_______________________________________________
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