[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] engine/session clientsession.cpp,1.72.2.33,1.72.2.34
From: jzeng () helixcommunity ! org
Date: 2008-03-28 5:20:29
Message-ID: 200803280520.m2S5Kj2e020593 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/server/engine/session
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv8321/engine/session
Modified Files:
Tag: SERVER_12
clientsession.cpp
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: clientsession.cpp
===================================================================
RCS file: /cvsroot/server/engine/session/clientsession.cpp,v
retrieving revision 1.72.2.33
retrieving revision 1.72.2.34
diff -u -d -r1.72.2.33 -r1.72.2.34
--- clientsession.cpp 26 Mar 2008 13:48:22 -0000 1.72.2.33
+++ clientsession.cpp 28 Mar 2008 05:20:27 -0000 1.72.2.34
@@ -3014,10 +3014,16 @@
}
}
+ IHXRegistry* pReg = NULL;
+ m_pProc->pc->server_context->QueryInterface(IID_IHXRegistry, (void \
**)&pReg); if (bAllowMDP && m_bUseMDP)
{
m_pSourceControl->QueryInterface(IID_IHXServerPacketSource, \
(void**)&pServerPacketSource);
- m_pBaseShim = pMDPShim = new CMDPShim((IHXSwitchResponse*)this , \
m_pCommonClassFactory, m_ppStreams, m_num_streams); + m_pBaseShim = \
pMDPShim = new CMDPShim(pReg, + \
(IHXSwitchResponse*)this , + \
m_pCommonClassFactory, + \
m_ppStreams, + m_num_streams);
pMDPShim->SetSource(pServerPacketSource);
m_pBaseShim->AddRef();
pServerPacketSource->Release();
@@ -3027,7 +3033,8 @@
m_bUseMDP = FALSE;
pSourcePackets = \
CreatePacketSource((IUnknown*)(IHXPSinkControl*)m_pSourceControl,
m_pSourceControl->IsLive(), \
m_bIsWirePayload);
- m_pBaseShim = ppmShim = new CPPMStaticShim(pSourcePackets,
+ m_pBaseShim = ppmShim = new CPPMStaticShim(pReg,
+ pSourcePackets,
(IHXSwitchResponse*)this,
m_pCommonClassFactory,
m_ppStreams,
@@ -3036,6 +3043,7 @@
m_pBaseShim->AddRef();
pSourcePackets->Release();
}
+ HX_RELEASE(pReg);
m_pClient->m_pPacketFlowWrap->RegisterSource((IUnknown*)(IHXPSourcePackets*)m_pBaseShim,
m_pSessionControl,
_______________________________________________
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