[xiph-cvs] r6764 - in trunk/oggdsf/src/lib: codecs/flac/libs/libflac/src/libFLAC/Release_dynamic codecs/flac/libs/libflac/src/libFLAC++/Release_dynamic core/directshow/dsfOggMux core/ogg/libOOOgg

illiminable at xiph.org illiminable at xiph.org
Wed May 26 03:50:07 PDT 2004



Author: illiminable
Date: 2004-05-26 06:50:06 -0400 (Wed, 26 May 2004)
New Revision: 6764

Added:
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.h
Modified:
   trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Release_dynamic/BuildLog.htm
   trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Release_dynamic/BuildLog.htm
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h
   trunk/oggdsf/src/lib/core/ogg/libOOOgg/libOOOgg.vcproj
Log:
New multi-stream mux almost done.

Modified: trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Release_dynamic/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Release_dynamic/BuildLog.htm	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC/Release_dynamic/BuildLog.htm	2004-05-26 10:50:06 UTC (rev 6764)
@@ -50,7 +50,7 @@
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT00002D.bat" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000069.bat" with contents
 [
 @echo off
 echo on
@@ -62,8 +62,8 @@
 exit 1
 :VCEnd
 ]
-Creating command line "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT00002D.bat"
-Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00002E.rsp" with contents
+Creating command line "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\BAT000069.bat"
+Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00006A.rsp" with contents
 [
 /Ox /Og /Ob2 /Oi /Ot /GL /G6 /I ".\include" /I "..\..\include" /D "NDEBUG" /D "FLAC_API_EXPORTS" /D "VERSION=\"1.1.0\"" /D "FLAC__CPU_IA32" /D "FLAC__HAS_NASM" /D "FLAC__USE_3DNOW" /D "_WINDOWS" /D "WIN32" /D "_USRDLL" /D "_WINDLL" /GF /FD /EHsc /MD /Gy /GR /Fp".\Release_dynamic/libFLAC_dynamic.pch" /Fo".\Release_dynamic/" /Fd".\Release_dynamic/" /FR".\Release_dynamic/" /W3 /c /Gd
 stream_encoder_framing.c
@@ -85,8 +85,8 @@
 bitmath.c
 bitbuffer.c
 ]
-Creating command line "cl.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00002E.rsp /nologo"
-Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00002F.rsp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00006A.rsp /nologo"
+Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00006B.rsp" with contents
 [
 /OUT:"..\..\obj\release\bin/libFLAC.dll" /INCREMENTAL:NO /NOLOGO /DLL /PDB:".\..\..\obj\release\lib/libFLAC.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /OPT:NOWIN98 /LTCG /IMPLIB:".\..\..\obj\release\lib/libFLAC.lib" /MACHINE:I386 odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
 Release_dynamic\bitbuffer.obj
@@ -111,7 +111,7 @@
 ia32\fixed_asm.obj
 ia32\lpc_asm.obj
 ]
-Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00002F.rsp"
+Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP00006B.rsp"
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
 </font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Performing Custom Build Step

Modified: trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Release_dynamic/BuildLog.htm
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Release_dynamic/BuildLog.htm	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libflac/src/libFLAC++/Release_dynamic/BuildLog.htm	2004-05-26 10:50:06 UTC (rev 6764)
@@ -50,7 +50,7 @@
     _ACP_PATH=C:\Program Files\Microsoft Visual Studio .NET\Vc7\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin\prerelease;C:\Program Files\Microsoft Visual Studio .NET\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio .NET\Common7\tools;C:\Program Files\Microsoft Visual Studio .NET\Common7\ide;C:\Program Files\HTML Help Workshop\;C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\bin;C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000034.rsp" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Creating temporary file "C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000070.rsp" with contents
 [
 /OUT:"..\..\obj\release\bin/libFLAC++.dll" /INCREMENTAL:NO /NOLOGO /DLL /PDB:".\..\..\obj\release\lib/libFLAC++.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /OPT:NOWIN98 /LTCG /IMPLIB:".\..\..\obj\release\lib/libFLAC++.lib" /MACHINE:I386 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "\Dev\oggdsf\src\lib\codecs\flac\libs\libflac\obj\release\lib\libFLAC.lib"
 "Release_dynamic\file_decoder.obj"
@@ -61,7 +61,7 @@
 "Release_dynamic\stream_decoder.obj"
 "Release_dynamic\stream_encoder.obj"
 ]
-Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000034.rsp"
+Creating command line "link.exe @C:\DOCUME~1\ILLIMI~1\LOCALS~1\Temp\RSP000070.rsp"
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
 </font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5> </td><td width=0 bgcolor=#FFFFFF> </td><td width=*><pre>Linking...

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -61,6 +61,11 @@
     return pNewObject;
 } 
 
+void OggMuxFilter::NotifyComplete() {
+	HRESULT locHR = NotifyEvent(EC_COMPLETE, S_OK, NULL);
+
+}
+
 STDMETHODIMP OggMuxFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv)
 {
         if (riid == IID_IFileSinkFilter) {
@@ -88,10 +93,13 @@
 
 OggMuxFilter::OggMuxFilter()
         :	CBaseFilter(NAME("OggMuxFilter"), NULL, m_pLock, CLSID_OggMuxFilter)
+	,	mInterleaver(NULL)
 {
+	mInterleaver = new OggPageInterleaver(this, this);
         //LEAK CHECK:::Both get deleted in constructor.
+
         m_pLock = new CCritSec;
-	mInputPins.push_back(new OggMuxInputPin(this, m_pLock, &mHR));
+	mInputPins.push_back(new OggMuxInputPin(this, m_pLock, &mHR, mInterleaver->newStream()));
         debugLog.open("C:\\temp\\muxer.log", ios_base::out);
         
 }
@@ -113,7 +121,7 @@
 }
 
 STDMETHODIMP OggMuxFilter::addAnotherPin() {
-	mInputPins.push_back(new OggMuxInputPin(this, m_pLock, &mHR));
+	mInputPins.push_back(new OggMuxInputPin(this, m_pLock, &mHR, mInterleaver->newStream()));
         return S_OK;
 }
 

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxFilter.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -33,6 +33,8 @@
 #include "oggmuxdllstuff.h"
 #include "OggMuxInputPin.h"
 #include "BasicSeekable.h"
+#include "OggPageInterleaver.h"
+#include "INotifyComplete.h"
 
 #include <string>
 
@@ -48,6 +50,7 @@
         ,	public IOggCallback
         ,	public IAMFilterMiscFlags
         ,	public BasicSeekable
+	,	public INotifyComplete
 {
 public:
         OggMuxFilter(void);
@@ -79,6 +82,7 @@
 
         //Helpers
         STDMETHODIMP addAnotherPin();
+	virtual void NotifyComplete();
 
 protected:
 
@@ -88,6 +92,8 @@
         wstring mFileName;
         vector<OggMuxInputPin*> mInputPins;
 
+	OggPageInterleaver* mInterleaver;
+
         fstream mOutputFile;
         fstream debugLog;
         HRESULT mHR;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -31,9 +31,10 @@
 #include "StdAfx.h"
 #include "oggmuxinputpin.h"
 
-OggMuxInputPin::OggMuxInputPin(OggMuxFilter* inParentFilter, CCritSec* inFilterLock, HRESULT* inHR)
+OggMuxInputPin::OggMuxInputPin(OggMuxFilter* inParentFilter, CCritSec* inFilterLock, HRESULT* inHR, OggMuxStream* inMuxStream)
         :	CBaseInputPin(NAME("OggMuxInputPin"), inParentFilter, inFilterLock, inHR, L"Ogg Packet In")
         ,	mParentFilter(inParentFilter)
+	,	mMuxStream(inMuxStream)
 {
         OggPaginatorSettings* locSettings = new OggPaginatorSettings;
         locSettings->mMinPageSize = 4096;
@@ -43,7 +44,7 @@
         //locSettings->mSerialNo = 13130;
         
         mPaginator.setParameters(locSettings);
-	mPaginator.setPageCallback(inParentFilter);
+	mPaginator.setPageCallback(mMuxStream);
 
         debugLog.open("C:\\temp\\oggmuxinpin.log", ios_base::out);
 }
@@ -116,7 +117,8 @@
 }
 STDMETHODIMP OggMuxInputPin::EndOfStream(void) {
         mPaginator.finishStream();
-	HRESULT locHR = mParentFilter->NotifyEvent(EC_COMPLETE, S_OK, NULL);
+	mMuxStream->setIsEOS(true);
+	//HRESULT locHR = mParentFilter->NotifyEvent(EC_COMPLETE, S_OK, NULL);
         return S_OK;
         
 }
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -32,6 +32,7 @@
 #include "oggmuxdllstuff.h"
 #include "OggMuxFilter.h"
 #include "OggPaginator.h"
+#include "OggMuxStream.h"
 #include <time.h>
 #include <fstream>
 using namespace std;
@@ -42,7 +43,7 @@
         :	public CBaseInputPin
 {
 public:
-	OggMuxInputPin(OggMuxFilter* inParentFilter, CCritSec* inFilterLock, HRESULT* inHR);
+	OggMuxInputPin(OggMuxFilter* inParentFilter, CCritSec* inFilterLock, HRESULT* inHR, OggMuxStream* inMuxStream);
         virtual ~OggMuxInputPin(void);
 
 
@@ -71,5 +72,6 @@
         OggMuxFilter* mParentFilter;
 
         OggPaginator mPaginator;
+	OggMuxStream* mMuxStream;
         fstream debugLog;
 };

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -0,0 +1,41 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+#include "StdAfx.h"
+#include "inotifyarrival.h"
+
+INotifyArrival::INotifyArrival(void)
+{
+}
+
+INotifyArrival::~INotifyArrival(void)
+{
+}
+

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyArrival.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -0,0 +1,40 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+#pragma once
+
+class LIBOOOGG_API INotifyArrival
+{
+public:
+	INotifyArrival(void);
+	virtual ~INotifyArrival(void);
+
+	virtual void notifyArrival() = 0;
+};

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -0,0 +1,40 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+#include "StdAfx.h"
+#include "inotifycomplete.h"
+
+INotifyComplete::INotifyComplete(void)
+{
+}
+
+INotifyComplete::~INotifyComplete(void)
+{
+}

Added: trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/INotifyComplete.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -0,0 +1,39 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+#pragma once
+
+class LIBOOOGG_API INotifyComplete
+{
+public:
+	INotifyComplete(void);
+	virtual ~INotifyComplete(void);
+	virtual void NotifyComplete() = 0;
+};

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -1,8 +1,39 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
 #include "StdAfx.h"
 #include "oggmuxstream.h"
 
-OggMuxStream::OggMuxStream(void)
+OggMuxStream::OggMuxStream(INotifyArrival* inNotifier)
         :	mIsEOS(true)
+	,	mNotifier(inNotifier)
 {
 }
 
@@ -14,6 +45,7 @@
 bool OggMuxStream::acceptOggPage(OggPage* inOggPage) {
         mIsEOS = false;
         mPageQueue.push_back(inOggPage);
+	mNotifier->notifyArrival();
         return true;
 }
 

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggMuxStream.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -1,3 +1,33 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
 #pragma once
 
 #include "OggPage.h"
@@ -2,9 +32,10 @@
 #include "IOggCallback.h"
+#include "INotifyArrival.h"
 #include <deque>
 using namespace std;
-class OggMuxStream
+class LIBOOOGG_API OggMuxStream
         :	public IOggCallback
 {
 public:
-	OggMuxStream(void);
+	OggMuxStream(INotifyArrival* inNotifier);
         virtual ~OggMuxStream(void);
@@ -24,5 +55,6 @@
 protected:
         bool mIsEOS;
         deque<OggPage*> mPageQueue;
+	INotifyArrival* mNotifier;
 
 };

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.cpp	2004-05-26 10:50:06 UTC (rev 6764)
@@ -1,8 +1,39 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
 #include "StdAfx.h"
 #include "oggpageinterleaver.h"
 
-OggPageInterleaver::OggPageInterleaver(IOggCallback* inFileWriter)
+OggPageInterleaver::OggPageInterleaver(IOggCallback* inFileWriter, INotifyComplete* inNotifier)
         :	mFileWriter(inFileWriter)
+	,	mNotifier(inNotifier)
 {
 
 }
@@ -12,10 +43,14 @@
 }
 
 OggMuxStream* OggPageInterleaver::newStream() {
-	OggMuxStream* retStream = new OggMuxStream;
+	OggMuxStream* retStream = new OggMuxStream(this);
         mInputStreams.push_back(retStream);
         return retStream;
 }
+
+void OggPageInterleaver::notifyArrival() {
+	processData();
+}
 void OggPageInterleaver::processData() {
         /*
                 IF ALL EOS THEN

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/OggPageInterleaver.h	2004-05-26 10:50:06 UTC (rev 6764)
@@ -1,13 +1,45 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
 #pragma once
 #include "IOggCallback.h"
+#include "INotifyComplete.h"
 #include "OggMuxStream.h"
 #include <vector>
 using namespace std;
-class OggPageInterleaver
+class LIBOOOGG_API OggPageInterleaver
+	:	public INotifyArrival
 {
 public:
 
-	OggPageInterleaver(IOggCallback* inFileWriter);
+	OggPageInterleaver(IOggCallback* inFileWriter, INotifyComplete* inNotifier);
         virtual ~OggPageInterleaver(void);
 
         virtual OggMuxStream* newStream();
@@ -18,7 +50,10 @@
 
         virtual void writeLowest();
 
+	virtual void notifyArrival();
+
 protected:
         vector<OggMuxStream*> mInputStreams;
         IOggCallback* mFileWriter;
+	INotifyComplete* mNotifier;
 };

Modified: trunk/oggdsf/src/lib/core/ogg/libOOOgg/libOOOgg.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/ogg/libOOOgg/libOOOgg.vcproj	2004-05-26 10:09:30 UTC (rev 6763)
+++ trunk/oggdsf/src/lib/core/ogg/libOOOgg/libOOOgg.vcproj	2004-05-26 10:50:06 UTC (rev 6764)
@@ -121,6 +121,12 @@
                                 RelativePath="FLACMath.cpp">
                         </File>
                         <File
+				RelativePath="INotifyArrival.cpp">
+			</File>
+			<File
+				RelativePath="INotifyComplete.cpp">
+			</File>
+			<File
                                 RelativePath="IOggCallback.cpp">
                         </File>
                         <File
@@ -206,6 +212,12 @@
                                 RelativePath="FLACMath.h">
                         </File>
                         <File
+				RelativePath="INotifyArrival.h">
+			</File>
+			<File
+				RelativePath="INotifyComplete.h">
+			</File>
+			<File
                                 RelativePath="IOggCallback.h">
                         </File>
                         <File

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list