[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