[xiph-commits] r8509 - in trunk/oggdsf: build/oggcodecs src/lib/core/directshow/dsfOggMux src/lib/core/ogg/libOOOgg

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Tue Dec 21 09:29:37 PST 2004


Author: illiminable
Date: 2004-12-21 09:29:37 -0800 (Tue, 21 Dec 2004)
New Revision: 8509

Modified:
   trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h
Log:
* Added overrides to muxer to get progress information. However graphedit ignores them.

Modified: trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
===================================================================
--- trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-12-21 16:34:06 UTC (rev 8508)
+++ trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-12-21 17:29:37 UTC (rev 8509)
@@ -1089,7 +1089,7 @@
         "Name" = "8:Microsoft Visual Studio"
         "ProductName" = "8:oggcodecs"
         "ProductCode" = "8:{D65F0073-A820-4085-B997-A061171595A7}"
-        "PackageCode" = "8:{219C788A-3DBF-4159-8CE7-FB482D6A993F}"
+        "PackageCode" = "8:{3FAB9450-CD0F-4F1C-81D0-C013FFF7D57C}"
         "UpgradeCode" = "8:{1A644FEB-7597-4FAB-AADE-C2C7C64C5984}"
         "RestartWWWService" = "11:FALSE"
         "RemovePreviousVersions" = "11:TRUE"
@@ -3221,7 +3221,7 @@
                 {
                 }
             "LanguageId" = "3:0"
-            "Exclude" = "11:FALSE"
+            "Exclude" = "11:TRUE"
             "Folder" = "8:"
             "Feature" = "8:"
             "IsolateTo" = "8:"

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp	2004-12-21 16:34:06 UTC (rev 8508)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp	2004-12-21 17:29:37 UTC (rev 8509)
@@ -73,10 +73,12 @@
 		((IUnknown*)*ppv)->AddRef();
 		return NOERROR;
 	} else if (riid == IID_IAMFilterMiscFlags) {
+		debugLog<<"Queried for IAMMiscFlags"<<endl;
 		*ppv = (IAMFilterMiscFlags*)this;
 		((IUnknown*)*ppv)->AddRef();
 		return NOERROR;
 	} else if (riid == IID_IMediaSeeking) {
+		debugLog<<"Queried for IMediaSeeking"<<endl;
 		*ppv = (IMediaSeeking*)this;
 		((IUnknown*)*ppv)->AddRef();
 		return NOERROR;
@@ -86,6 +88,7 @@
 }
 
 ULONG OggMuxFilter::GetMiscFlags(void) {
+	debugLog<<"GetMiscflags"<<endl;
 	return AM_FILTER_MISC_FLAGS_IS_RENDERER;
 }
 
@@ -101,7 +104,7 @@
 	m_pLock = new CCritSec;
 	mStreamLock = new CCritSec;
 	mInputPins.push_back(new OggMuxInputPin(this, m_pLock, &mHR, mInterleaver->newStream()));
-	//debugLog.open("C:\\temp\\muxer.log", ios_base::out);
+	debugLog.open("g:\\logs\\muxer.log", ios_base::out);
 
 	//Make our delegate pin[0], the top pin... we send all out requests there.
 	IMediaSeeking* locSeeker = NULL;
@@ -347,3 +350,17 @@
 	CloseOutput();
 	return CBaseFilter::Stop();
 }
+
+STDMETHODIMP OggMuxFilter::GetPositions(LONGLONG *pCurrent, LONGLONG *pStop) {
+	HRESULT locHR = BasicSeekPassThrough::GetPositions(pCurrent, pStop);
+	debugLog<<"GetPos Before : "<<*pCurrent<<" - "<<*pStop<<endl;
+	*pCurrent = mInterleaver->progressTime();
+	debugLog<<"GetPos After : "<<*pCurrent<<" - "<<*pStop<<endl;
+	return locHR;
+}
+
+STDMETHODIMP OggMuxFilter::GetCurrentPosition(LONGLONG *pCurrent) {
+	*pCurrent = mInterleaver->progressTime();
+	debugLog<<"GetCurrentPos : "<<*pCurrent<<endl;
+	return S_OK;
+}
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h	2004-12-21 16:34:06 UTC (rev 8508)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h	2004-12-21 17:29:37 UTC (rev 8509)
@@ -86,6 +86,10 @@
 	virtual HRESULT addAnotherPin();
 	virtual void NotifyComplete();
 
+	//IMediaSeeking Override to give progress.
+	virtual STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop);
+	virtual STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
+
 protected:
 
 	bool SetupOutput();
@@ -99,7 +103,7 @@
 	CCritSec* mStreamLock;
 
 	fstream mOutputFile;
-	//fstream debugLog;
+	fstream debugLog;
 	HRESULT mHR;
 
 

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp	2004-12-21 16:34:06 UTC (rev 8508)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp	2004-12-21 17:29:37 UTC (rev 8509)
@@ -34,6 +34,7 @@
 OggPageInterleaver::OggPageInterleaver(IOggCallback* inFileWriter, INotifyComplete* inNotifier)
 	:	mFileWriter(inFileWriter)
 	,	mNotifier(inNotifier)
+	,	mProgressTime(0)
 {
 	debugLog.open("G:\\logs\\interleaver.log", ios_base::out);
 }
@@ -198,12 +199,17 @@
 			throw 0;
 		} else {
 			debugLog<<"writeLowest : Writing..."<<endl;
-
+			mProgressTime = locLowestStream->scaledFrontTime();
+			debugLog<<"writeLowest : Progress Time = "<<mProgressTime<<endl;
 			//TODO::: Handle case where the popped page is a null pointer.
 			mFileWriter->acceptOggPage(locLowestStream->popFront());		//Gives away page
 		}
 
 }
+
+__int64 OggPageInterleaver::progressTime() {
+	return mProgressTime;
+}
 bool OggPageInterleaver::isProcessable() {
 	bool retVal = true;
 	//ASSERT(mInputStreams.size() >= 1)

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h	2004-12-21 16:34:06 UTC (rev 8508)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h	2004-12-21 17:29:37 UTC (rev 8509)
@@ -54,6 +54,8 @@
 	virtual bool isAllEOS();
 	virtual bool isAllEmpty();
 
+	virtual __int64 progressTime();
+
 	//INotifyArrival Implementation
 	virtual void notifyArrival();
 
@@ -62,6 +64,7 @@
 	IOggCallback* mFileWriter;		//TODO::: Shuoldn't be called filewriter.
 	INotifyComplete* mNotifier;
 
+	__int64 mProgressTime;
 	//DEBUG ONLY
 	fstream debugLog;
 	//



More information about the commits mailing list