[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] tools/dtdriver/engine csrchdlr.cpp,1.5,1.6
From: stanb () helixcommunity ! org
Date: 2011-10-24 16:20:23
[Download RAW message or body]
Update of /cvsroot/datatype/tools/dtdriver/engine
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv10034/dtdriver/engine
Modified Files:
csrchdlr.cpp
Log Message:
Modified by: stanb@real.com
Date: 10/21/2011
Project: WinAgent (UNIFI), RealPlayer 15
Bug Number: 404918
Synopsis: For each FLV file processing a new MiniContext/CHXMediaPlatform is created \
and never destroyed.
Overview: Another reference to MiniContext/CHXMediaPlatform stays open because of \
particular implementation of CSecureSourceHandler in \
datatype_rn\tools\dtdriver\engine. It actually proxies all AddRef, Release and \
QueryInterface calls to it’s m_pOwner->m_pTrueSourceSink. The problem is that \
CSourceTransferPort::OnTermination() causes m_pTrueSourceSink of the m_pOwner to get \
released (inside CSecureSourceHandler::Close()), so the following \
HX_RELEASE(pSourceSink) has no effect whatsoever. This fix gets actual “True” \
SourceSink via m_pSourceSink->QueryInterface(IID_IUnknown,..) which makes sure we do \
AddRef() / OnTermination() / Release() on the same object.
Files Modified:
datatype/tools/dtdriver/engine/csrchdlr.cpp
Branch: 310atlas, HEAD
Index: csrchdlr.cpp
===================================================================
RCS file: /cvsroot/datatype/tools/dtdriver/engine/csrchdlr.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- csrchdlr.cpp 10 Jul 2008 16:40:36 -0000 1.5
+++ csrchdlr.cpp 24 Oct 2011 16:20:21 -0000 1.6
@@ -268,11 +268,11 @@
if (m_pSourceSink)
{
- IHXSourceInput* pSourceSink= m_pSourceSink;
- pSourceSink->AddRef();
+ IUnknown* pUnkSourceSink = NULL;
+ m_pSourceSink->QueryInterface(IID_IUnknown, (void**)&pUnkSourceSink);
HX_RELEASE(m_pSourceSink);
- retVal = pSourceSink->OnTermination(status);
- HX_RELEASE(pSourceSink);
+ retVal = ((IHXSourceInput*)pUnkSourceSink)->OnTermination(status);
+ HX_RELEASE(pUnkSourceSink);
}
return retVal;
_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic