[xiph-commits] r10319 - branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2

illiminable at svn.xiph.org illiminable at svn.xiph.org
Tue Nov 1 07:49:44 PST 2005


Author: illiminable
Date: 2005-11-01 07:49:38 -0800 (Tue, 01 Nov 2005)
New Revision: 10319

Modified:
   branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourceFilter.cpp
   branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourcePin.cpp
   branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp
Log:
* Fix com circular refernce

Modified: branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourceFilter.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourceFilter.cpp	2005-11-01 14:51:28 UTC (rev 10318)
+++ branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourceFilter.cpp	2005-11-01 15:49:38 UTC (rev 10319)
@@ -122,6 +122,10 @@
 	delete mStreamMapper;
 	delete mSeekTable;
 	//TODO::: Delete the locks
+
+	delete mDemuxLock;
+	delete mStreamLock;
+	delete mSourceFileLock;
 }
 //IMEdiaStreaming
 STDMETHODIMP OggDemuxPacketSourceFilter::Run(REFERENCE_TIME tStart) 
@@ -690,7 +694,7 @@
 	//debugLog<<"GetPreroll : HARD CODED TO 0"<<endl;
 	return S_OK;
 }
-STDMETHODIMP OggDemuxPacketSourceFilter::IsUsingTimeFormat(const GUID *pFormat){
+STDMETHODIMP OggDemuxPacketSourceFilter::IsUsingTimeFormat(const GUID *pFormat) {
 	if (*pFormat == TIME_FORMAT_MEDIA_TIME) {
 		//debugLog<<"IsUsingTimeFormat : MEDIA TIME TRUE"<<endl;
 		return S_OK;

Modified: branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourcePin.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourcePin.cpp	2005-11-01 14:51:28 UTC (rev 10318)
+++ branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggDemuxPacketSourcePin.cpp	2005-11-01 15:49:38 UTC (rev 10319)
@@ -75,9 +75,13 @@
 }
 OggDemuxPacketSourcePin::~OggDemuxPacketSourcePin(void)
 {
+	//Since we didn't addref the filter when we set the seek delegate onto it, we have to avoid
+	//	it getting released, so set it to NULL, to avoid the destructor releasing it.
+	SetDelegate(NULL);
 	//delete[] mBOSAsFormatBlock;
 	//delete mBOSPage;
 	delete mIdentHeader;
+	delete mDataQueue;
 
 	delete mPacketiserLock;
 

Modified: branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp
===================================================================
--- branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp	2005-11-01 14:51:28 UTC (rev 10318)
+++ branches/oggdsf_new_demux/src/lib/core/directshow/dsfOggDemux2/OggStreamMapper.cpp	2005-11-01 15:49:38 UTC (rev 10319)
@@ -75,6 +75,7 @@
 bool OggStreamMapper::addNewPin(OggPage* inOggPage)
 {
 	OggDemuxPacketSourcePin* locNewPin = new OggDemuxPacketSourcePin(NAME("OggPageSourcePin"), mParentFilter, mParentFilterLock, inOggPage->getPacket(0)->clone(), inOggPage->header()->StreamSerialNo());
+	//locNewPin->AddRef();
 	delete inOggPage;
 	mPins.push_back(locNewPin);
 	return true;



More information about the commits mailing list