[xiph-commits] r8057 - in trunk/oggdsf/src/lib/core/directshow: dsfAbstractAudioDecoder dsfOggDemux

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Tue Oct 19 05:57:05 PDT 2004


Author: illiminable
Date: 2004-10-19 05:57:05 -0700 (Tue, 19 Oct 2004)
New Revision: 8057

Modified:
   trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeOutputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp
Log:
* Removed queues and threads from audio decoder outputs... that seemed to fix a COM interface leak... no idea why... but it works.
* All runtime debug warnings eliminated.
* Memory usage considerably less in playback.
* Still appears to be a leak somewhere, triggered by seeks.

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeOutputPin.cpp	2004-10-19 11:39:06 UTC (rev 8056)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeOutputPin.cpp	2004-10-19 12:57:05 UTC (rev 8057)
@@ -184,7 +184,7 @@
 	mParentFilter->mInputPin->NonDelegatingQueryInterface(IID_IMediaSeeking, (void**)&locSeeker);
 	SetDelegate(locSeeker);
 	//
-	mDataQueue = new COutputQueue (inReceivePin, &locHR, FALSE, TRUE, 1, TRUE, 20);			//Deleted in destructor
+	mDataQueue = new COutputQueue (inReceivePin, &locHR, FALSE, FALSE, 1, TRUE, 20);			//Deleted in destructor
 	if (FAILED(locHR)) {
 		locHR = locHR;
 	}

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp	2004-10-19 11:39:06 UTC (rev 8056)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourcePin.cpp	2004-10-19 12:57:05 UTC (rev 8057)
@@ -130,6 +130,9 @@
 		locSample->SetActualDataLength(inPacket->packetSize());
 
 		locHR = mDataQueue->Receive(locSample);
+
+		//REF_CHECK::: In theory should release here.
+		//The sample has ref_count of 1 by virtue of it's creation... we should release that 1 ref count here.
 		
 		if (locHR != S_OK) {
 			//debugLog << "Failure... Queue rejected sample..."<<endl;



More information about the commits mailing list