[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