[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