[xiph-commits] r8384 - in trunk/oggdsf/src/lib: codecs/cmml/dsfCMMLRawSource core/directshow/dsfOggDemux core/ogg/libOOOgg

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Tue Dec 14 05:43:48 PST 2004


Author: illiminable
Date: 2004-12-14 05:43:47 -0800 (Tue, 14 Dec 2004)
New Revision: 8384

Added:
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/IDataSource.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.h
Modified:
   trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.cpp
   trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.h
   trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp
   trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/dsfOggDemux.vcproj
Log:
* Chunked transfer support for http.
* Random hacking at network seeking.
* More CMML Source fitler.

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -38,11 +38,19 @@
 
 CMMLRawSourceFilter::CMMLRawSourceFilter(void)
 	:	CBaseFilter(NAME("CMMLRawSourceFilter"), NULL, m_pLock, CLSID_CMMLRawSourceFilter)
+	,	mCMMLDoc(NULL)
 {
+	mCMMLSourcePin = new CMMLRawSourcePin(		this
+											,	this->m_pLock);
+
+
+
 }
 
 CMMLRawSourceFilter::~CMMLRawSourceFilter(void)
 {
+	delete mCMMLSourcePin;
+	delete mCMMLDoc;
 }
 
 //BaseFilter Interface
@@ -80,8 +88,63 @@
 	CAutoLock locLock(m_pLock);
 	mFileName = inFileName;
 
+	delete mCMMLDoc;
+	mCMMLDoc = new C_CMMLDoc;
+	bool retVal = mCMMLParser.parseDocFromFile(mFileName, mCMMLDoc);
 
-	
+	if (retVal) {
+		return S_OK;
+	} else {
+		return S_FALSE;
+	}
+
+
+}
+
+//CAMThread Stuff
+DWORD CMMLRawSourceFilter::ThreadProc(void) {
+	//debugLog << "Thread Proc Called..."<<endl;
+
+	while(true) {
+		DWORD locThreadCommand = GetRequest();
+		//debugLog << "Command = "<<locThreadCommand<<endl;
+		switch(locThreadCommand) {
+			case THREAD_EXIT:
+				//debugLog << "EXIT ** "<<endl;
+				Reply(S_OK);
+				return S_OK;
+
+			case THREAD_RUN:
+				//debugLog << "RUN ** "<<endl;
+				Reply(S_OK);
+				DataProcessLoop();
+				break;
+		}
+		
+	}
 	return S_OK;
 }
 
+
+HRESULT CMMLRawSourceFilter::DataProcessLoop() 
+{
+	DWORD locCommand = 0;
+	while(true) {
+		if(CheckRequest(&locCommand) == TRUE) {
+			//debugLog<<"DataProcessLoop : Thread Command issued... leaving loop."<<endl;
+			return S_OK;
+		}
+		
+		if (mUptoTag == -1) {
+			deliverTag(mCMMLDoc->root()->head());
+		} else if (mUptoTag < mCMMLDoc->root()->clipList()->numTags()) {
+			deliverTag(mCMMLDoc->root()->clipList()->getTag(mUptoTag));
+		} else {
+			DeliverEOS();
+		}
+		mUptoTag++;
+
+	}
+	return S_OK;
+
+}

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourceFilter.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -7,10 +7,20 @@
 
 class CMMLRawSourceFilter
 	:	public CBaseFilter
+	,	public CAMThread
 	,	public IFileSourceFilter
 	,	public IAMFilterMiscFlags
 {
 public:
+
+	friend class CMMLRawSourcePin;
+
+	enum eThreadCommands {
+		THREAD_EXIT = 0,
+		THREAD_PAUSE = 1,
+		THREAD_RUN = 2
+	};
+
 	DECLARE_IUNKNOWN
 	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
 
@@ -25,13 +35,20 @@
 
 	//IAMFilterMiscFlags Interface
 	ULONG STDMETHODCALLTYPE GetMiscFlags(void);
-	//
 
 	//IFileSource Interface
 	virtual STDMETHODIMP GetCurFile(LPOLESTR* outFileName, AM_MEDIA_TYPE* outMediaType);
 	virtual STDMETHODIMP Load(LPCOLESTR inFileName, const AM_MEDIA_TYPE* inMediaType);
 
+	//CAMThread
+	virtual DWORD ThreadProc(void);
+
 protected:
+	virtual HRESULT DataProcessLoop();
+
 	CMMLRawSourcePin* mCMMLSourcePin;
+	CMMLParser mCMMLParser;
+
+	C_CMMLDoc* mCMMLDoc;
 	wstring mFileName;
 };

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -118,3 +118,20 @@
 }
 
 
+HRESULT CMMLRawSourcePin::deliverTag(C_CMMLTag* inTag) {
+
+	IMediaSample* locSample = NULL;
+	REFERENCE_TIME locStart = 0;
+	REFERENCE_TIME locStop = 0;
+
+	HRESULT	locHR = GetDeliveryBuffer(&locSample, NULL, NULL, NULL);
+
+
+	if (locHR != S_OK) {
+		//debugLog<<"Failure... No buffer"<<endl;
+		return locHR;
+	}
+
+
+	//locSample->
+}
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -65,6 +65,8 @@
 	virtual HRESULT DeliverEndOfStream(void);
 	virtual HRESULT DeliverEndFlush(void);
 	virtual HRESULT DeliverBeginFlush(void);
+
+	virtual HRESULT deliverTag(C_CMMLTag* inTag);
 protected:
 	//fstream debugLog;
 	HRESULT mFilterHR;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -33,15 +33,18 @@
 
 HTTPFileSource::HTTPFileSource(void)
 	:	mBufferLock(NULL)
+	,	mIsChunked(false)
+	,	mIsFirstChunk(true)
+	,	mChunkRemains(0)
 {
 	mBufferLock = new CCritSec;
-	//debugLog.open("G:\\logs\\httpdebug.log", ios_base::out | ios_base::ate | ios_base::app);
+	debugLog.open("d:\\zen\\logs\\htttp.log", ios_base::out);
 	//debugLog<<"==========================================="<<endl;
-	//fileDump.open("G:\\filedump.ogg", ios_base::out|ios_base::binary);
+	fileDump.open("d:\\zen\\logs\\filedump.ogg", ios_base::out|ios_base::binary);
+	rawDump.open("D:\\zen\\logs\\rawdump.out", ios_base::out|ios_base::binary);
 
 
 
-
 }
 
 HTTPFileSource::~HTTPFileSource(void)
@@ -49,12 +52,92 @@
 	//debugLog<<"About to close socket"<<endl;
 	close();
 	//debugLog<<"Winsock ended"<<endl;
-	//debugLog.close();
-	//fileDump.close();
+	debugLog.close();
+	fileDump.close();
+	rawDump.close();
 	delete mBufferLock;
 	
 }
 
+void HTTPFileSource::unChunk(unsigned char* inBuff, unsigned long inNumBytes) {
+	ASSERT(inNumBytes > 2);
+	rawDump.write((char*)inBuff, inNumBytes);
+	debugLog<<"UnChunk"<<endl;
+	unsigned long locNumBytesLeft = inNumBytes;
+
+	unsigned char* locWorkingBuffPtr = inBuff;
+
+	debugLog<<"inNumBytes = "<<inNumBytes<<endl;
+
+	while (locNumBytesLeft > 0) {
+		debugLog<<"---"<<endl;
+		debugLog<<"Bytes left = "<<locNumBytesLeft<<endl;
+		debugLog<<"ChunkRemaining = "<<mChunkRemains<<endl;
+
+		if (mChunkRemains == 0) {
+			debugLog<<"Zero bytes of chunk remains"<<endl;
+
+			//Assign to a string for easy manipulation of the hex size
+			string locTemp;
+		
+			if (mIsFirstChunk) {
+				debugLog<<"It's the first chunk"<<endl;
+				mIsFirstChunk = false;
+				locTemp = (char*)locWorkingBuffPtr;
+			} else {
+				debugLog<<"Not the first chunk"<<endl;
+				debugLog<<"Skip bytes = "<<(int)locWorkingBuffPtr[0]<<(int)locWorkingBuffPtr[1]<<endl;
+				locTemp = (char*)(locWorkingBuffPtr + 2);
+				locWorkingBuffPtr+=2;
+				locNumBytesLeft -= 2;
+			}
+
+			size_t locChunkSizePos = locTemp.find("\r\n");
+			
+			if (locChunkSizePos != string::npos) {
+				debugLog<<"Found the size bytes "<<endl;
+				//Get a string representation of the hex string that tells us the size of the chunk
+				string locChunkSizeStr = locTemp.substr(0, locChunkSizePos);
+				debugLog<<"Sizingbuytes " << locChunkSizeStr<<endl;
+				char* locDummyPtr = NULL;
+
+				//Convert it to a number
+				mChunkRemains = strtol(locChunkSizeStr.c_str(), &locDummyPtr, 16);
+
+				debugLog<<"Chunk reamining "<<mChunkRemains<<endl;
+				//The size of the crlf 's and the chunk size value
+				unsigned long locGuffSize = (locChunkSizeStr.size() + 2);
+				locWorkingBuffPtr +=  locGuffSize;
+				locNumBytesLeft -= locGuffSize;
+			}
+		}
+
+		//This is the end of file
+		if (mChunkRemains == 0) {
+			debugLog<<"EOF"<<endl;
+			return;
+		}
+		bool locWriteOK = false;
+		//If theres less bytes than the remainder of the chunk
+		if (locNumBytesLeft < mChunkRemains) {
+			debugLog<<"less bytes remain than the chunk needs"<<endl;
+			
+			locWriteOK = mFileCache.write((const unsigned char*)locWorkingBuffPtr, locNumBytesLeft );
+			fileDump.write((char*)locWorkingBuffPtr, locNumBytesLeft);
+			locWorkingBuffPtr += locNumBytesLeft;
+			mChunkRemains -= locNumBytesLeft;
+			locNumBytesLeft = 0;
+		} else {
+			debugLog<<"more bytes remain than the chunk needs"<<endl;
+			locWriteOK = mFileCache.write((const unsigned char*)locWorkingBuffPtr, mChunkRemains );
+			fileDump.write((char*)locWorkingBuffPtr, mChunkRemains);
+			locWorkingBuffPtr += mChunkRemains;
+			locNumBytesLeft -= mChunkRemains;
+			mChunkRemains = 0;
+		}
+
+	}
+}
 void HTTPFileSource::DataProcessLoop() {
 	//debugLog<<"DataProcessLoop: "<<endl;
 	int locNumRead = 0;
@@ -90,12 +173,13 @@
 			//debugLog <<"Num Read = "<<locNumRead<<endl;
 			if (mSeenResponse) {
 				//Add to buffer
-				bool locWriteOK = mFileCache.write((const unsigned char*)locBuff, locNumRead);
-				if (locWriteOK) {
-					//debugLog<<"Added to cache "<<locNumRead<<" bytes."<<endl;
+				bool locWriteOK;
+				if (mIsChunked) {
+						unChunk((unsigned char*)locBuff, locNumRead);
 				} else {
-					//debugLog<<"Write to cache failed.."<<endl;
+					locWriteOK = mFileCache.write((const unsigned char*)locBuff, locNumRead);
 				}
+			
 				//Dump to file
 				//fileDump.write(locBuff, locNumRead);
 			} else {
@@ -107,28 +191,30 @@
 					//debugLog<<"locPos = "<<locPos<<endl;
 					mSeenResponse = true;
 					mLastResponse = locTemp.substr(0, locPos);
+					if (locTemp.find("Transfer-Encoding: chunked") != string::npos) {
+						mIsChunked = true;
+
+					}
 					char* locBuff2 = locBuff + locPos + 4;  //View only - don't delete.
 					locTemp = locBuff2;
-					//debugLog<<"Start of data follows"<<endl<<locTemp<<endl;
-					bool locWriteOK = mFileCache.write((const unsigned char*)locBuff2, (locNumRead - (locPos + 4)));
 
-					//Dump to file
-					//fileDump.write(locBuff2, locNumRead - (locPos + 4));
-					
+					bool locWriteOK = false;
 
-					if(locWriteOK) {
-						//debugLog<<"Added to Buffer "<<locNumRead - (locPos+4)<<" bytes... first after response."<<endl;
-						
+					if (mIsChunked) {
+						unChunk((unsigned char*)locBuff2, locNumRead - locPos - 4);
+
+
 					} else {
-						//debugLog<<"Buffering failure..."<<endl;
+                        //debugLog<<"Start of data follows"<<endl<<locTemp<<endl;
+						locWriteOK = mFileCache.write((const unsigned char*)locBuff2, (locNumRead - (locPos + 4)));
 					}
 
-					//size_t locG, locP;
-					//locG = mStreamBuffer.tellg();
-					//locP = mStreamBuffer.tellp();
+					//Dump to file
+					//fileDump.write(locBuff2, locNumRead - (locPos + 4));
+					
 
-					//debugLog << "Get : "<<locG<<" ---- Put : "<<locP<<endl;
 					
+					
 				}
 			}
 		} //END CRITICAL SECTION

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPFileSource.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -68,16 +68,22 @@
 
 
 protected:
-
+	void HTTPFileSource::unChunk(unsigned char* inBuff, unsigned long inNumBytes);
 	bool HTTPFileSource::startThread();
 	void DataProcessLoop();
 
 	//stringstream mStreamBuffer;
 	SingleMediaFileCache mFileCache;
 
-	//fstream debugLog;
-	//fstream fileDump;
+	bool mIsChunked;
+	unsigned long mChunkRemains;
 
+	bool mIsFirstChunk;
 
+	fstream debugLog;
+	fstream fileDump;
+	fstream rawDump;
+
+
 	CCritSec* mBufferLock;
 };

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -1,10 +1,11 @@
-#include "StdAfx.h"
-#include ".\httpoggseeking.h"
-
-HTTPOggSeeking::HTTPOggSeeking(void)
-{
-}
-
-HTTPOggSeeking::~HTTPOggSeeking(void)
-{
-}
+//#include "StdAfx.h"
+//#include ".\httpoggseeking.h"
+//
+//HTTPOggSeeking::HTTPOggSeeking(CachedHTTPFileSource* inDataSource)
+//	:	mDataSource(inDataSource)
+//{
+//}
+//
+//HTTPOggSeeking::~HTTPOggSeeking(void)
+//{
+//}

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/HTTPOggSeeking.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -1,22 +1,23 @@
 #pragma once
 
-class HTTPOggSeeking
-	:	public AutoOggSeekTable
-{
-public:
-	HTTPOggSeeking(void);
-	virtual ~HTTPOggSeeking(void);
-
-	virtual bool buildTable();
-
-	//IOggCallback interface
-	virtual bool acceptOggPage(OggPage* inOggPage);
-
-	__int64 fileDuration();
-
-	bool addSeekPoint(__int64 inTime, unsigned long mStartPos);
-	tSeekPair getStartPos(__int64 inTime);
-	
-
-	
-};
+//class HTTPOggSeeking
+//	:	public AutoOggSeekTable
+//{
+//public:
+//	HTTPOggSeeking(CachedHTTPFileSource* inDataSource);
+//	virtual ~HTTPOggSeeking(void);
+//
+//	virtual bool buildTable();
+//
+//	//IOggCallback interface
+//	virtual bool acceptOggPage(OggPage* inOggPage);
+//
+//	//__int64 fileDuration();
+//
+//	//bool addSeekPoint(__int64 inTime, unsigned long mStartPos);
+//	tSeekPair getStartPos(__int64 inTime);
+//	
+//protected:
+//	CachedHTTPFileSource* mDataSource;
+//	
+//};

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -664,14 +664,9 @@
 	CAutoLock locSourceLock(mSourceFileLock);
 	
 
-	//SOURCE ABSTRACTION::: open
-	//mSourceFile.open(StringHelper::toNarrowStr(mFileName).c_str(), ios_base::in|ios_base::binary);
-	//
-	//Before openeing create the interface
-	//debugLog<<"Set up pins..."<<endl;
+	//Create and open a data source
 	mDataSource = DataSourceFactory::createDataSource(StringHelper::toNarrowStr(mFileName).c_str());
 	mDataSource->open(StringHelper::toNarrowStr(mFileName).c_str());
-	//
 	
 	//Error check
 	

Added: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -0,0 +1,45 @@
+//#include "StdAfx.h"
+//#include ".\oggdemuxer.h"
+//
+//OggDemuxer::OggDemuxer(void)
+//	:	mDataSource(NULL)
+//	,	mWorkingBuffer(NULL)
+//	,	mWorkingBufferSize(0)
+//{
+//	mWorkingBufferSize = 4096;
+//	mWorkingBuffer = new unsigned char[mWorkingBufferSize];
+//
+//}
+//
+//OggDemuxer::~OggDemuxer(void)
+//{
+//	delete [] mWorkingBuffer;
+//}
+//
+//bool OggDemuxer::load(string inSourceName) {
+//	mSourceName = inSourceName;
+//
+//	mDataSource = DataSourceFactory::createDataSource(inSourceName);
+//}
+//
+//__int64 OggDemuxer::seek(__int64 inSeekTime) {
+//
+//}
+//
+//
+//bool OggDemuxer::registerVirtualCallback(IOggCallback* inCallback) {
+//	mDataBuffer.registerVirtualCallback(inCallback);
+//}
+//
+//bool OggDemuxer::processChunk(unsigned long inNumBytes) {
+//	ASSERT(inNumBytes <= mWorkingBufferSize);
+//	unsigned long locNumRead = mDataSource->read(mWorkingBuffer, inNumBytes);
+//	if (locNumRead > 0) {
+//		mDataBuffer.feed(mWorkingBuffer, locNumRead);
+//		return true;
+//	} else {
+//		return false;
+//	}
+//}
+//
+//

Added: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxer.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -0,0 +1,24 @@
+#pragma once
+
+//
+//class OggDemuxer
+//{
+//public:
+//	OggDemuxer(void);
+//	~OggDemuxer(void);
+//
+//	bool load(wstring inSourceName);
+//	bool registerVirtualCallback(IOggCallback* inCallback);
+//
+//	__int64 seek(__int64 inSeekTime);
+//
+//	bool processChunk(unsigned long inNumBytes);
+//
+//protected:
+//	wstring mSourceName;
+//	IFilterDataSource* mDataSource;
+//	OggDataBuffer mDataBuffer;
+//
+//	unsigned char* mWorkingBuffer;
+//	unsigned long mWorkingBufferSize;
+//};

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/dsfOggDemux.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/dsfOggDemux.vcproj	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/dsfOggDemux.vcproj	2004-12-14 13:43:47 UTC (rev 8384)
@@ -307,6 +307,9 @@
 				RelativePath="OggDemux.def">
 			</File>
 			<File
+				RelativePath=".\OggDemuxer.cpp">
+			</File>
+			<File
 				RelativePath="OggDemuxSourceFilter.cpp">
 			</File>
 			<File
@@ -413,6 +416,9 @@
 				RelativePath="IFilterDataSource.h">
 			</File>
 			<File
+				RelativePath=".\OggDemuxer.h">
+			</File>
+			<File
 				RelativePath="OggDemuxSourceFilter.h">
 			</File>
 			<File

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/IDataSource.h
===================================================================

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.cpp	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.cpp	2004-12-14 13:43:47 UTC (rev 8384)
@@ -0,0 +1,10 @@
+#include "StdAfx.h"
+#include ".\oggdemuxer.h"
+
+OggDemuxer::OggDemuxer(void)
+{
+}
+
+OggDemuxer::~OggDemuxer(void)
+{
+}

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.h	2004-12-14 06:41:14 UTC (rev 8383)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggDemuxer.h	2004-12-14 13:43:47 UTC (rev 8384)
@@ -0,0 +1,9 @@
+#pragma once
+
+class OggDemuxer
+{
+public:
+	OggDemuxer(IDataSource inDataSource);
+
+	~OggDemuxer(void);
+};



More information about the commits mailing list