[xiph-commits] r8266 - in trunk/oggdsf: docs sln/oggdsf_all src/lib/codecs/helper/libfishsound/win32 src/lib/codecs/vorbis/filters/dsfVorbisDecoder src/lib/core/directshow src/lib/core/directshow/dsfAbstractAudioDecoder src/lib/core/directshow/dsfOggDemux src/lib/core/directshow/dsfSeeking src/lib/core/directshow/libDirectshowAbstracts

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Tue Nov 23 02:48:12 PST 2004


Author: illiminable
Date: 2004-11-23 02:48:12 -0800 (Tue, 23 Nov 2004)
New Revision: 8266

Added:
   trunk/oggdsf/docs/man_installation.txt
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.h
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.h
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/ReadMe.txt
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/directshowabstractsdllstuff.h
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/libDirectshowAbstracts.vcproj
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.cpp
   trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.h
Modified:
   trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
   trunk/oggdsf/src/lib/codecs/helper/libfishsound/win32/libfishsound.vcproj
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h
   trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeFilter.h
   trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.h
Log:
* Start of factoring some of the abstract filter libraries to one place.

Added: trunk/oggdsf/docs/man_installation.txt
===================================================================

Modified: trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
===================================================================
--- trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-11-23 10:48:12 UTC (rev 8266)
@@ -1152,35 +1152,6 @@
 	ProjectSection(ProjectDependencies) = postProject
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracCommon", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\DiracCommon\DiracCommon.vcproj", "{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracMotionEst", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\DiracMotionEst\DiracMotionEst.vcproj", "{C6A615BF-D4EB-4D50-9638-2C715E0695C6}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracDecoder", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\DiracDecoder\DiracDecoder.vcproj", "{89EC2AEB-8284-4213-874B-29D549893FC9}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracEncoder", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\DiracEncoder\DiracEncoder.vcproj", "{9076B578-583A-493D-96C4-776DCEC0FFBD}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EncodeDirac", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\EncodeDirac\EncodeDirac.vcproj", "{547FE1E9-70EF-48D4-B45B-2FF39B39855D}"
-	ProjectSection(ProjectDependencies) = postProject
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21} = {A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}
-		{9076B578-583A-493D-96C4-776DCEC0FFBD} = {9076B578-583A-493D-96C4-776DCEC0FFBD}
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6} = {C6A615BF-D4EB-4D50-9638-2C715E0695C6}
-	EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DecodeDirac", "..\..\src\lib\codecs\dirac\lib\libdirac\win\VS2003\DecodeDirac\DecodeDirac.vcproj", "{CCA690F8-1356-4BD5-9152-8E0A6496842D}"
-	ProjectSection(ProjectDependencies) = postProject
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21} = {A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}
-		{89EC2AEB-8284-4213-874B-29D549893FC9} = {89EC2AEB-8284-4213-874B-29D549893FC9}
-	EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfDiracDecodeSource", "..\..\src\lib\codecs\dirac\filters\dsfDiracDecodeSource\dsfDiracDecodeSource.vcproj", "{2DDC7218-82D9-403E-BCE8-0D535266D19D}"
 	ProjectSection(ProjectDependencies) = postProject
 		{4CBC0173-27E6-4218-AE06-5EFDCA7B2547} = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
@@ -1225,6 +1196,34 @@
 		{2DA569EC-3E22-4BC9-A242-C7A56EB9C6F4} = {2DA569EC-3E22-4BC9-A242-C7A56EB9C6F4}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DecodeDirac", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\DecodeDirac\DecodeDirac.vcproj", "{CCA690F8-1356-4BD5-9152-8E0A6496842D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracCommon", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\DiracCommon\DiracCommon.vcproj", "{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracDecoder", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\DiracDecoder\DiracDecoder.vcproj", "{89EC2AEB-8284-4213-874B-29D549893FC9}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracEncoder", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\DiracEncoder\DiracEncoder.vcproj", "{9076B578-583A-493D-96C4-776DCEC0FFBD}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiracMotionEst", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\DiracMotionEst\DiracMotionEst.vcproj", "{C6A615BF-D4EB-4D50-9638-2C715E0695C6}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EncodeDirac", "..\..\src\lib\codecs\dirac\lib\libdirac\windows\VS2003\EncodeDirac\EncodeDirac.vcproj", "{547FE1E9-70EF-48D4-B45B-2FF39B39855D}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libDirectshowAbstracts", "..\..\src\lib\core\directshow\libDirectshowAbstracts\libDirectshowAbstracts.vcproj", "{EA7091BB-9906-41DF-9738-F4858A136086}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfiguration) = preSolution
 		Debug = Debug
@@ -2224,102 +2223,6 @@
 		{32228390-D24D-40CD-A31E-E4E1CF94C308}.Release_SSE.Build.0 = Release|Win32
 		{32228390-D24D-40CD-A31E-E4E1CF94C308}.Release_SSE2.ActiveCfg = Release|Win32
 		{32228390-D24D-40CD-A31E-E4E1CF94C308}.Release_SSE2.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug.ActiveCfg = Debug|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug.Build.0 = Debug|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug Unicode.ActiveCfg = Debug|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug Unicode.Build.0 = Debug|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.MakeFile.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.MakeFile.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release Unicode.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release Unicode.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_NoDotNET.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE.Build.0 = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE2.ActiveCfg = Release|Win32
-		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE2.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug.ActiveCfg = Debug|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug.Build.0 = Debug|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug Unicode.ActiveCfg = Debug|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug Unicode.Build.0 = Debug|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.MakeFile.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.MakeFile.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release Unicode.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release Unicode.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_NoDotNET.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE.Build.0 = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE2.ActiveCfg = Release|Win32
-		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE2.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug.ActiveCfg = Debug|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug.Build.0 = Debug|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug Unicode.ActiveCfg = Debug|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug Unicode.Build.0 = Debug|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.MakeFile.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.MakeFile.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release Unicode.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release Unicode.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_NoDotNET.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE.Build.0 = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE2.ActiveCfg = Release|Win32
-		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE2.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug.ActiveCfg = Debug|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug.Build.0 = Debug|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug Unicode.ActiveCfg = Debug|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug Unicode.Build.0 = Debug|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.MakeFile.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.MakeFile.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release Unicode.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release Unicode.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_NoDotNET.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE.Build.0 = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE2.ActiveCfg = Release|Win32
-		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE2.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug.ActiveCfg = Debug|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug.Build.0 = Debug|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug Unicode.ActiveCfg = Debug|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug Unicode.Build.0 = Debug|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.MakeFile.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.MakeFile.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release Unicode.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release Unicode.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_NoDotNET.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE.Build.0 = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE2.ActiveCfg = Release|Win32
-		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE2.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug.ActiveCfg = Debug|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug.Build.0 = Debug|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug Unicode.ActiveCfg = Debug|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug Unicode.Build.0 = Debug|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.MakeFile.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.MakeFile.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release Unicode.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release Unicode.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_NoDotNET.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_NoDotNET.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE.Build.0 = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE2.ActiveCfg = Release|Win32
-		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE2.Build.0 = Release|Win32
 		{2DDC7218-82D9-403E-BCE8-0D535266D19D}.Debug.ActiveCfg = Debug|Win32
 		{2DDC7218-82D9-403E-BCE8-0D535266D19D}.Debug.Build.0 = Debug|Win32
 		{2DDC7218-82D9-403E-BCE8-0D535266D19D}.Debug Unicode.ActiveCfg = Debug|Win32
@@ -2440,6 +2343,118 @@
 		{F3ECBC6B-ED14-4E76-8513-1BCDCF8F412E}.Release_SSE.Build.0 = Release|Win32
 		{F3ECBC6B-ED14-4E76-8513-1BCDCF8F412E}.Release_SSE2.ActiveCfg = Release|Win32
 		{F3ECBC6B-ED14-4E76-8513-1BCDCF8F412E}.Release_SSE2.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug.ActiveCfg = Debug|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug.Build.0 = Debug|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug Unicode.ActiveCfg = Debug|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Debug Unicode.Build.0 = Debug|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.MakeFile.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.MakeFile.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release Unicode.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release Unicode.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_NoDotNET.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE.Build.0 = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE2.ActiveCfg = Release|Win32
+		{CCA690F8-1356-4BD5-9152-8E0A6496842D}.Release_SSE2.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug.ActiveCfg = Debug|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug.Build.0 = Debug|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug Unicode.ActiveCfg = Debug|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Debug Unicode.Build.0 = Debug|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.MakeFile.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.MakeFile.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release Unicode.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release Unicode.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_NoDotNET.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE.Build.0 = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE2.ActiveCfg = Release|Win32
+		{A45B7D48-9E8D-4475-BED4-CBE3E3CCAD21}.Release_SSE2.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug.ActiveCfg = Debug|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug.Build.0 = Debug|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug Unicode.ActiveCfg = Debug|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Debug Unicode.Build.0 = Debug|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.MakeFile.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.MakeFile.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release Unicode.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release Unicode.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_NoDotNET.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE.Build.0 = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE2.ActiveCfg = Release|Win32
+		{89EC2AEB-8284-4213-874B-29D549893FC9}.Release_SSE2.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug.ActiveCfg = Debug|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug.Build.0 = Debug|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug Unicode.ActiveCfg = Debug|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Debug Unicode.Build.0 = Debug|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.MakeFile.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.MakeFile.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release Unicode.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release Unicode.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_NoDotNET.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE.Build.0 = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE2.ActiveCfg = Release|Win32
+		{9076B578-583A-493D-96C4-776DCEC0FFBD}.Release_SSE2.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug.ActiveCfg = Debug|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug.Build.0 = Debug|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug Unicode.ActiveCfg = Debug|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Debug Unicode.Build.0 = Debug|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.MakeFile.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.MakeFile.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release Unicode.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release Unicode.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_NoDotNET.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE.Build.0 = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE2.ActiveCfg = Release|Win32
+		{C6A615BF-D4EB-4D50-9638-2C715E0695C6}.Release_SSE2.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug.ActiveCfg = Debug|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug.Build.0 = Debug|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug Unicode.ActiveCfg = Debug|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Debug Unicode.Build.0 = Debug|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.MakeFile.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.MakeFile.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release Unicode.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release Unicode.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_NoDotNET.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE.Build.0 = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE2.ActiveCfg = Release|Win32
+		{547FE1E9-70EF-48D4-B45B-2FF39B39855D}.Release_SSE2.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Debug.ActiveCfg = Debug|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Debug.Build.0 = Debug|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Debug Unicode.ActiveCfg = Debug|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Debug Unicode.Build.0 = Debug|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.MakeFile.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.MakeFile.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release Unicode.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release Unicode.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_NoDotNET.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_NoDotNET.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_SSE.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_SSE.Build.0 = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_SSE2.ActiveCfg = Release|Win32
+		{EA7091BB-9906-41DF-9738-F4858A136086}.Release_SSE2.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionItems) = postSolution
 	EndGlobalSection

Modified: trunk/oggdsf/src/lib/codecs/helper/libfishsound/win32/libfishsound.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/helper/libfishsound/win32/libfishsound.vcproj	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/codecs/helper/libfishsound/win32/libfishsound.vcproj	2004-11-23 10:48:12 UTC (rev 8266)
@@ -34,7 +34,7 @@
 				StringPooling="TRUE"
 				RuntimeLibrary="2"
 				BufferSecurityCheck="FALSE"
-				EnableFunctionLevelLinking="TRUE"
+				EnableFunctionLevelLinking="FALSE"
 				PrecompiledHeaderFile="./libfishsound.pch"
 				AssemblerListingLocation="./"
 				ObjectFile="./"

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -56,13 +56,6 @@
 	virtual ~VorbisDecodeInputPin(void);
 	static int __cdecl VorbisDecoded (FishSound* inFishSound, float** inPCM, long inFrames, void* inThisPointer);
 
-
-	//STDMETHODIMP NewSegment(REFERENCE_TIME tStart,  REFERENCE_TIME tStop, double dRate);
-
-
-	//STDMETHODIMP Receive(IMediaSample *pSample);
-	//virtual HRESULT CheckMediaType(const CMediaType *inMediaType);
-	//virtual HRESULT GetMediaType(int inPosition, CMediaType *outMediaType);
 	virtual HRESULT SetMediaType(const CMediaType* inMediaType);
 
 	//VIRTUAL FUNCTIONS - AbstractAudioDecodeInputPin
@@ -70,35 +63,13 @@
 	virtual bool ConstructCodec();
 	virtual void DestroyCodec();
 
-
-	
-	//STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator);
-	//STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps);
-	//virtual void ResetFrameCount();
-
-	//STDMETHODIMP EndOfStream(void);
-	//STDMETHODIMP BeginFlush();
-	//STDMETHODIMP EndFlush();
-
-
-
-	//STDMETHODIMP EndOfStream(void);
-
 	long decodeData(unsigned char* inBuf, long inNumBytes);
 
-
-
-	//virtual HRESULT CompleteConnect(IPin *pReceivePin);
-
 protected:
 
 	HRESULT mHR;
 	bool mBegun;
-	//VorbisDecodeOutputPin* mOutputPin;
-	//__int64 mUptoFrame;
 
-	//fstream debugLog;
-
 	FishSound* mFishSound;
 	FishSoundInfo mFishInfo; 
 

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeFilter.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeFilter.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -89,8 +89,6 @@
 	//Member Data
 	AbstractAudioDecodeInputPin* mInputPin;
 	AbstractAudioDecodeOutputPin* mOutputPin;
-
-	
 };
 
 

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeInputPin.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAbstractAudioDecoder/AbstractAudioDecodeInputPin.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -229,6 +229,7 @@
 	CAutoLock locLock(mStreamLock);
 	ResetFrameCount();
 
+	//BUG::: Why is this on the base pin and not the baseinputpin ?
 	CBasePin::NewSegment(tStart, tStop, dRate);
 	return mParentFilter->mOutputPin->DeliverNewSegment(tStart, tStop, dRate);
 }

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -220,18 +220,18 @@
 
 STDMETHODIMP OggDemuxSourceFilter::GetCapabilities(DWORD* inCapabilities) {
 	if (mSeekTable->enabled())  {
-		//debugLog<<"GetCaps "<<mSeekingCap<<endl;
+		debugLog<<"GetCaps "<<mSeekingCap<<endl;
 		*inCapabilities = mSeekingCap;
 		return S_OK;
 	} else {
-		
+		debugLog<<"Get Caps failed !!!!!!!"<<endl;
 		*inCapabilities = 0;
 		return S_OK;;
 	}
 }
 STDMETHODIMP OggDemuxSourceFilter::GetDuration(LONGLONG* outDuration) {
 	if (mSeekTable->enabled())  {
-		//debugLog<<"GetDuration = " << mSeekTable->fileDuration()<<" ds units"<<endl;
+		debugLog<<"GetDuration = " << mSeekTable->fileDuration()<<" ds units"<<endl;
 		*outDuration = mSeekTable->fileDuration();
 		return S_OK;
 	} else {
@@ -240,12 +240,9 @@
 
 }
 
-
-
-
 	 
 STDMETHODIMP OggDemuxSourceFilter::CheckCapabilities(DWORD *pCapabilities){
-	//debugLog<<"CheckCaps	: Not imp"<<endl;
+	debugLog<<"CheckCaps	: Not impl"<<endl;
 	return E_NOTIMPL;
 }
 STDMETHODIMP OggDemuxSourceFilter::IsFormatSupported(const GUID *pFormat){
@@ -266,7 +263,7 @@
 	return S_OK;
 }
 STDMETHODIMP OggDemuxSourceFilter::SetTimeFormat(const GUID *pFormat){
-	//debugLog<<"SetTimeForamt : NOT IMPL"<<endl;
+	debugLog<<"SetTimeForamt : NOT IMPL"<<endl;
 	return E_NOTIMPL;
 }
 STDMETHODIMP OggDemuxSourceFilter::GetTimeFormat( GUID *pFormat){
@@ -276,7 +273,7 @@
 STDMETHODIMP OggDemuxSourceFilter::GetStopPosition(LONGLONG *pStop){
 	if (mSeekTable->enabled())  {
 
-		//debugLog<<"GetStopPos = " << mSeekTable->fileDuration()<<" ds units"<<endl;
+		debugLog<<"GetStopPos = " << mSeekTable->fileDuration()<<" ds units"<<endl;
 		*pStop = mSeekTable->fileDuration();
 		return S_OK;
 	} else {
@@ -285,21 +282,21 @@
 	}
 }
 STDMETHODIMP OggDemuxSourceFilter::GetCurrentPosition(LONGLONG *pCurrent){
-	//debugLog<<"GetCurrentPos = NOT_IMPL"<<endl;
+	debugLog<<"GetCurrentPos = NOT_IMPL"<<endl;
 	return E_NOTIMPL;
 	//debugLog <<"GetCurrPos = HARD CODED = 6 secs"<< endl;
 	 *pCurrent = 6 * UNITS;
 	return S_OK;
 }
 STDMETHODIMP OggDemuxSourceFilter::ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat){
-	//debugLog<<"ConvertTimeForamt : NOT IMPL"<<endl;
+	debugLog<<"ConvertTimeForamt : NOT IMPL"<<endl;
 	return E_NOTIMPL;
 }
 STDMETHODIMP OggDemuxSourceFilter::SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags){
 
 
 	CAutoLock locLock(m_pLock);
-	debugLog<<"Set Positions"<<endl;
+	debugLog<<"Set Positions "<<*pCurrent<<" to "<<*pStop<<" with flags "<<dwCurrentFlags<<" and "<<dwStopFlags<<endl;
 	if (mSeekTable->enabled())  {
 		//debugLog<<"SetPos : Current = "<<*pCurrent<<" Flags = "<<dwCurrentFlags<<" Stop = "<<*pStop<<" dwStopFlags = "<<dwStopFlags<<endl;
 		//debugLog<<"       : Delivering begin flush..."<<endl;
@@ -361,7 +358,7 @@
 		//	mStreamMapper->getOggStream(i)->setLastEndGranPos(mSeekTable->getRealStartPos());
 		//}
 	} else {
-		//debugLog<<"Seek not IMPL"<<endl;
+		debugLog<<"Seek not IMPL"<<endl;
 		return E_NOTIMPL;
 	}
 	
@@ -382,7 +379,7 @@
 	return S_OK;
 }
 STDMETHODIMP OggDemuxSourceFilter::GetPositions(LONGLONG *pCurrent, LONGLONG *pStop){
-	//debugLog<<"Getpos : Not IMPL"<<endl;
+	debugLog<<"Getpos : Not IMPL"<<endl;
 	//debugLog<<"GetPos : Current = HARDCODED 2 secs , Stop = "<<mSeekTable->fileDuration()/UNITS <<" secs."<<endl;
 	return E_NOTIMPL;
 	*pCurrent = 2 * UNITS;
@@ -392,15 +389,16 @@
 STDMETHODIMP OggDemuxSourceFilter::GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest){
 	//debugLog<<"****GetAvailable : NOT IMPL"<<endl;
 	if (mSeekTable->enabled())  {
-		//debugLog<<"Get Avail ok"<<endl;
+		debugLog<<"Get Avail ok"<<endl;
 		*pEarliest = 0;
+		debugLog<<"+++++ Duration is "<<mSeekTable->fileDuration()<<endl;
 		*pLatest = mSeekTable->fileDuration();
 	} else {
 		return E_NOTIMPL;
 	}
 }
 STDMETHODIMP OggDemuxSourceFilter::SetRate(double dRate){
-	//debugLog<<"Set RATE : NOT IMPL"<<endl;
+	debugLog<<"Set RATE : NOT IMPL"<<endl;
 	return E_NOTIMPL;
 	//debugLog<<"SetRate : "<<dRate<<endl;
 	return S_OK;;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -11,12 +11,12 @@
 	mSeekingCap =		AM_SEEKING_CanSeekAbsolute |
 						AM_SEEKING_CanSeekForwards |
 						AM_SEEKING_CanSeekBackwards |
-						AM_SEEKING_CanGetCurrentPos |
+						//AM_SEEKING_CanGetCurrentPos |
 						AM_SEEKING_CanGetStopPos |
 						AM_SEEKING_CanGetDuration;
 
-	//string x = "g:\\logs\\seeker.log";
-	//seekDebug.open(x.c_str(), ios_base::out);
+	string x = "g:\\logs\\seeker.log";
+	seekDebug.open(x.c_str(), ios_base::out);
 
 }
 
@@ -28,12 +28,12 @@
 	mSeekingCap =		AM_SEEKING_CanSeekAbsolute |
 						AM_SEEKING_CanSeekForwards |
 						AM_SEEKING_CanSeekBackwards |
-						AM_SEEKING_CanGetCurrentPos |
+						//AM_SEEKING_CanGetCurrentPos |
 						AM_SEEKING_CanGetStopPos |
 						AM_SEEKING_CanGetDuration;
 	
-	//string x = "g:\\logs\\seeker.log";
-	//seekDebug.open(x.c_str(), ios_base::out);
+	string x = "g:\\logs\\seeker.log";
+	seekDebug.open(x.c_str(), ios_base::out);
 	
 
 }
@@ -57,7 +57,7 @@
 		mSeekDelegate->Release();
 		mSeekDelegate = NULL;
 	}
-	//seekDebug.close();
+	seekDebug.close();
 }
 //IMediaSeeking Interface
 STDMETHODIMP BasicSeekable::GetCapabilities(DWORD* inCapabilities) {
@@ -79,10 +79,10 @@
 	//return S_OK;
 	
 	if (mSeekDelegate != NULL) {
-		//seekDebug<<"GetCaps : Passed on..."<<endl;
+		seekDebug<<"GetCaps : Passed on..."<<endl;
 		return mSeekDelegate->GetCapabilities(inCapabilities);
 	} else {
-		//seekDebug<<"GetCaps : NULL Delegate"<<endl;
+		seekDebug<<"GetCaps : NULL Delegate"<<endl;
 		//This is probably wrong.
 		return E_NOTIMPL;
 	}
@@ -104,10 +104,10 @@
 
 
 	if (mSeekDelegate != NULL) {
-		//seekDebug<<"CheckCaps : Passed on..."<<endl;
+		seekDebug<<"CheckCaps : Passed on..."<<endl;
 		return mSeekDelegate->CheckCapabilities(outCapabilities);
 	} else {
-		//seekDebug<<"CheckCaps : NULL Delegate"<<endl;
+		seekDebug<<"CheckCaps : NULL Delegate"<<endl;
 		//This is probably wrong.
 		return E_NOTIMPL;
 	}

Modified: trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSeeking/BasicSeekable.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -1,88 +1,51 @@
 #pragma once
+
+//Local Includes
 #include "dsfseeking.h"
+
+//STL Includes
 #include <fstream>
 using namespace std;
+
 class DSFSEEKING_API BasicSeekable
+	//Base classes.
 	:	public IMediaSeeking
 {
 public:
+	//Constructors
 	BasicSeekable(void);
 	BasicSeekable(IMediaSeeking* inDelegate);
 	virtual ~BasicSeekable(void);
 
+	//Delegate Control Methods.
 	bool SetDelegate(IMediaSeeking* inDelegate);
 	bool ReleaseDelegate();
-
-
-	//
+	
 	//IMediaSeeking Interface
-	 virtual STDMETHODIMP GetCapabilities(DWORD *pCapabilities);
-	 virtual STDMETHODIMP CheckCapabilities(DWORD *pCapabilities);
-	 virtual STDMETHODIMP IsFormatSupported(const GUID *pFormat);
-	 virtual STDMETHODIMP QueryPreferredFormat(GUID *pFormat);
-	 virtual STDMETHODIMP SetTimeFormat(const GUID *pFormat);
-	 virtual STDMETHODIMP GetTimeFormat( GUID *pFormat);
-	 virtual STDMETHODIMP GetDuration(LONGLONG *pDuration);
-	 virtual STDMETHODIMP GetStopPosition(LONGLONG *pStop);
-	 virtual STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
-	 virtual STDMETHODIMP ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat);
-	 virtual STDMETHODIMP SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
-	 virtual STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop);
-	 virtual STDMETHODIMP GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest);
-	 virtual STDMETHODIMP SetRate(double dRate);
-	 virtual STDMETHODIMP GetRate(double *dRate);
-	 virtual STDMETHODIMP GetPreroll(LONGLONG *pllPreroll);
-	 virtual STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat);
-	//
+	virtual STDMETHODIMP GetCapabilities(DWORD *pCapabilities);
+	virtual STDMETHODIMP CheckCapabilities(DWORD *pCapabilities);
+	virtual STDMETHODIMP IsFormatSupported(const GUID *pFormat);
+	virtual STDMETHODIMP QueryPreferredFormat(GUID *pFormat);
+	virtual STDMETHODIMP SetTimeFormat(const GUID *pFormat);
+	virtual STDMETHODIMP GetTimeFormat( GUID *pFormat);
+	virtual STDMETHODIMP GetDuration(LONGLONG *pDuration);
+	virtual STDMETHODIMP GetStopPosition(LONGLONG *pStop);
+	virtual STDMETHODIMP GetCurrentPosition(LONGLONG *pCurrent);
+	virtual STDMETHODIMP ConvertTimeFormat(LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat);
+	virtual STDMETHODIMP SetPositions(LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags);
+	virtual STDMETHODIMP GetPositions(LONGLONG *pCurrent, LONGLONG *pStop);
+	virtual STDMETHODIMP GetAvailable(LONGLONG *pEarliest, LONGLONG *pLatest);
+	virtual STDMETHODIMP SetRate(double dRate);
+	virtual STDMETHODIMP GetRate(double *dRate);
+	virtual STDMETHODIMP GetPreroll(LONGLONG *pllPreroll);
+	virtual STDMETHODIMP IsUsingTimeFormat(const GUID *pFormat);
 
-
-
-	
-
-
-
-
-
-
-	//STDMETHODIMP QueryInterface( REFIID iid, void **ppvObject) {
-	//	debugLog <<"Querying interface."<<endl;
-	//	if (iid == IID_IMediaSeeking) {
-	//		debugLog <<"Querying interface for IMedaSeeking"<<endl;
-	//		*ppvObject = (IMediaSeeking*)this;
-	//		debugLog<<"Address of this is "<<(int)this<<endl<<"Address of IMediaSeeking is "<<(int)(*ppvObject)<<endl;
-	//		return S_OK;
-	//	} else {
-	//		debugLog <<"Failure !!!"<<endl;
-	//		return S_FALSE;
-	//	}
-	//	
-	//}
-	//STDMETHODIMP_(ULONG) AddRef() {
-	//	debugLog <<"Ref count was "<<mRefCount<<endl;
-	//	return ++mRefCount;
-	//}
-	//STDMETHODIMP_(ULONG) Release() {
-	//	debugLog <<"Ref count was "<<mRefCount<<endl;
-	//	mRefCount--;
-	//	if (mRefCount <=0) {
-	//		
-	//		delete this;
-	//		return mRefCount;
-	//	} else {
-	//		return mRefCount;
-	//	}
-
-	//}
-
 protected:
+	//Member data
 	IMediaSeeking* mSeekDelegate;
-
-	//REFERENCE_TIME mSeekTimeBase;
 	HRESULT mHR;
-
-	//fstream seekDebug;
-
 	DWORD mSeekingCap;
 
-
+	//Debug only.
+	fstream seekDebug;
 };

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,96 @@
+//===========================================================================
+//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.
+//===========================================================================
+
+//
+// AbstracttransformFilter.cpp :	Abstract Filter Class for transform filters.
+//
+
+
+#include "StdAfx.h"
+#include "AbstractTransformFilter.h"
+
+//Constructors
+AbstractTransformFilter::AbstractTransformFilter(TCHAR* inFilterName, REFCLSID inFilterGUID)
+	//Base Classes
+	:	CBaseFilter(inFilterName, NULL, m_pLock, inFilterGUID)
+
+	//Member initialisations
+	,	mInputPin(NULL)
+	,	mOutputPin(NULL)
+	
+{
+	//Create the filter lock.
+	m_pLock = new CCritSec;		//Deleted in destructor... check what is happening in the base class.
+}
+
+AbstractTransformFilter::~AbstractTransformFilter(void)
+{
+	DestroyPins();
+	delete m_pLock;		//Deleting filter lock
+}
+
+void AbstractTransformFilter::DestroyPins() 
+{
+	delete mOutputPin;
+	delete mInputPin;
+}
+
+//If you want to handle an interface, do it here.
+STDMETHODIMP AbstractTransformFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv) 
+{
+
+	//May just get rid of this !!
+	return CBaseFilter::NonDelegatingQueryInterface(riid, ppv);
+}
+
+CBasePin* AbstractTransformFilter::GetPin(int inPinNo) 
+{
+	//Pin Constants
+	const int INPUT_PIN = 0;
+	const int OUTPUT_PIN = 1;
+	
+	//Return the pin.
+	switch (inPinNo) {
+		case INPUT_PIN:		
+			return mInputPin;
+		case OUTPUT_PIN:
+			return mOutputPin;
+		default:
+			return NULL;
+	};
+}
+
+int AbstractTransformFilter::GetPinCount(void) 
+{
+	const long NUM_PINS = 2;
+	return NUM_PINS;
+}	
+

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformFilter.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,79 @@
+//===========================================================================
+//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
+
+//Local Includes
+#include "directshowabstractsdllstuff.h"
+
+//External Includes
+#include "BasicSeekable.h"
+
+//Forward Declarations
+class AbstractTransformInputPin;
+class AbstractTransformOutputPin;
+
+
+class AbstractTransformFilter
+	//Parent Classes
+	:	public CBaseFilter	
+			//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/cbasefilterclass.asp
+{
+public:
+	//Friend Classes
+	friend class AbstractTransformInputPin;
+	friend class AbstractTransformOutputPin;
+
+	//COM Setup
+	DECLARE_IUNKNOWN
+	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+	
+
+	//Constructors
+	AbstractTransformFilter(TCHAR* inFilterName, REFCLSID inFilterGUID);
+	virtual ~AbstractTransformFilter(void);
+	
+	//Pin Access Methods
+	CBasePin* GetPin(int inPinNo);
+	int GetPinCount(void);
+
+	//Pin Creation Method.
+	virtual bool ConstructPins() = 0;
+
+protected:
+	//Pin destruction method.
+	virtual void DestroyPins();
+
+	//Pin Member Data
+	AbstractTransformInputPin* mInputPin;
+	AbstractTransformOutputPin* mOutputPin;
+};
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,235 @@
+//===========================================================================
+//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 "AbstractTransformInputPin.h"
+
+
+AbstractTransformInputPin::AbstractTransformInputPin (AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, AbstractTransformOutputPin* inOutputPin, CHAR* inObjectName, LPCWSTR inPinDisplayName, vector<CMediaType*> inAcceptMediaTypes)
+	:	CBaseInputPin (inObjectName, inParentFilter, inFilterLock, &mHR, inPinDisplayName)
+	,	mOutputPin (inOutputPin)
+	,	mParentFilter (inParentFilter)
+	
+	,	mBegun (false)
+
+
+{
+	
+	//ConstructCodec();
+	//debugLog.open("g:\\logs\\aad.log", ios_base::out);
+
+	//TODO::: Put in init list.
+	mAcceptableMediaTypes = inAcceptMediaTypes;
+	mStreamLock = new CCritSec;			//Deleted in destructor.
+
+}
+
+STDMETHODIMP AbstractTransformInputPin::NonDelegatingQueryInterface(REFIID riid, void **ppv)
+{
+	//TODO::: This really shouldn't be exposed on an input pin
+	if (riid == IID_IMediaSeeking) {
+		*ppv = (IMediaSeeking*)this;
+		((IUnknown*)*ppv)->AddRef();
+		return NOERROR;
+	}
+
+	return CBaseInputPin::NonDelegatingQueryInterface(riid, ppv); 
+}
+
+HRESULT AbstractTransformInputPin::BreakConnect() 
+{
+	CAutoLock locLock(m_pLock);
+	//Release the seeking delegate
+	ReleaseDelegate();
+	return CBaseInputPin::BreakConnect();
+}
+HRESULT AbstractTransformInputPin::CompleteConnect (IPin *inReceivePin) 
+{
+	CAutoLock locLock(m_pLock);
+	
+	IMediaSeeking* locSeeker = NULL;
+	inReceivePin->QueryInterface(IID_IMediaSeeking, (void**)&locSeeker);
+	SetDelegate(locSeeker);
+	return CBaseInputPin::CompleteConnect(inReceivePin);
+}
+AbstractTransformInputPin::~AbstractTransformInputPin(void)
+{
+	//DestroyCodec();
+	//debugLog.close();
+	delete mStreamLock;
+
+}
+
+
+//void AbstractTransformInputPin::ResetFrameCount() 
+//{
+//	mUptoFrame = 0;
+//	
+//}
+//void AbstractTransformInputPin::ResetTimeBases() 
+//{
+//	mLastSeenStartGranPos = 0;
+//}
+bool AbstractTransformInputPin::SetSampleParams(IMediaSample* outMediaSample, unsigned long inDataSize, REFERENCE_TIME* inStartTime, REFERENCE_TIME* inEndTime) 
+{
+	outMediaSample->SetTime(inStartTime, inEndTime);
+	outMediaSample->SetMediaTime(NULL, NULL);
+	outMediaSample->SetActualDataLength(inDataSize);
+	outMediaSample->SetPreroll(FALSE);
+	outMediaSample->SetDiscontinuity(FALSE);
+	outMediaSample->SetSyncPoint(TRUE);
+	return true;
+}
+
+
+STDMETHODIMP AbstractTransformInputPin::Receive(IMediaSample* inSample) 
+{
+	CAutoLock locLock(mStreamLock);
+
+	HRESULT locHR = CheckStreaming();
+
+	if (locHR == S_OK) {
+		BYTE* locBuff = NULL;
+		locHR = inSample->GetPointer(&locBuff);
+
+		if (locHR != S_OK) {
+			//TODO::: Do a debug dump or something here with specific error info.
+			return locHR;
+		} else {
+
+
+			////Is any of this needed ???
+			////New start time hacks
+			//REFERENCE_TIME locStart = 0;
+			//REFERENCE_TIME locEnd = 0;
+
+			////More work arounds for that stupid granule pos scheme in theora!
+			//REFERENCE_TIME locTimeBase = 0;
+			//REFERENCE_TIME locDummy = 0;
+			//inSample->GetMediaTime(&locTimeBase, &locDummy);
+			//mSeekTimeBase = locTimeBase;
+			////
+
+			//inSample->GetTime(&locStart, &locEnd);
+			////Error chacks needed here
+			////debugLog<<"Receive : Start    = "<<locStart<<endl;
+			////debugLog<<"Receive : End      = "<<locEnd<<endl;
+			////debugLog<<"Receive : Timebase = "<<locTimeBase<<endl;
+			//
+			////QUERY::: Why are we doing this ???
+			////			Wouldn't it be better to only resset the frame count when we seek (ie in NewSegment)
+			////			then we just use m_tStart as the time base until another seek.
+			//if ((mLastSeenStartGranPos != locStart) && (locStart != -1)) {
+			//	//debugLog<<"Receive : RESETTING FRAME COUNT !!"<<endl;
+			//	ResetFrameCount();
+			//}
+			////debugLog<<endl;
+			//mLastSeenStartGranPos = locStart;
+			////End of additions
+			
+			//TODO::: Why using this convention... why not use HRESULT ???
+			HRESULT locResult = TransformData(locBuff, inSample->GetActualDataLength());
+			if (locResult == S_OK) {
+
+				//aadDebug<<"Receive Decode : OK"<<endl;
+				return S_OK;
+			} else {
+				//aadDebug<<"Receive Decode : *** FAILED *** "<<locResult<<endl;
+				return S_FALSE;
+			}
+		}
+	} else {
+		//debugLog<<"NOT STREAMING.... "<<endl;
+		return locHR;
+	}
+	
+	return S_OK;
+}
+
+HRESULT AbstractTransformInputPin::CheckMediaType(const CMediaType *inMediaType) {
+	//TO DO::: Neaten this up.
+	for (int i = 0; i < mAcceptableMediaTypes.size(); i++) {
+		if	(		(inMediaType->majortype == mAcceptableMediaTypes[i]->majortype) 
+				&&	(inMediaType->subtype == mAcceptableMediaTypes[i]->subtype) 
+				&&	(inMediaType->formattype == mAcceptableMediaTypes[i]->formattype)
+			)
+		{
+			return S_OK;
+		} 
+	}
+	//If it matched none... return false.
+	return S_FALSE;
+}
+
+STDMETHODIMP AbstractTransformInputPin::EndOfStream(void) {
+	CAutoLock locLock(mStreamLock);
+	
+	return mParentFilter->mOutputPin->DeliverEndOfStream();
+}
+
+STDMETHODIMP AbstractTransformInputPin::BeginFlush() {
+	CAutoLock locLock(m_pLock);
+
+	CBaseInputPin::BeginFlush();
+	return mParentFilter->mOutputPin->DeliverBeginFlush();
+}
+STDMETHODIMP AbstractTransformInputPin::EndFlush() {
+	CAutoLock locLock(m_pLock);
+
+	mParentFilter->mOutputPin->DeliverEndFlush();
+	return CBaseInputPin::EndFlush();
+}
+
+STDMETHODIMP AbstractTransformInputPin::NewSegment(REFERENCE_TIME inStartTime, REFERENCE_TIME inStopTime, double inRate) {
+	CAutoLock locLock(mStreamLock);
+	//ResetFrameCount();
+
+	//This is called on BasePin and not BaseInputPin because the implementation is not overriden in BaseOutputPin.
+	CBasePin::NewSegment(inStartTime, inStopTime, inRate);
+	return mParentFilter->mOutputPin->DeliverNewSegment(inStartTime, inStopTime, inRate);
+}
+
+HRESULT AbstractTransformInputPin::GetMediaType(int inPosition, CMediaType *outMediaType) 
+{
+	//TODO::: Check for NULL Pointer.
+	if (inPosition < 0) {
+		return E_INVALIDARG;
+	} else 	if (inPosition < mAcceptableMediaTypes.size()) {
+		outMediaType->SetType(&(mAcceptableMediaTypes[inPosition]->majortype));
+		outMediaType->SetSubtype(&(mAcceptableMediaTypes[inPosition]->subtype));
+		//Don't set the format data here... its up to the connecting output pin
+		// to do this, and we will verify it in CheckMediaType
+		return S_OK;
+	} else {
+		return VFW_S_NO_MORE_ITEMS;
+	}
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformInputPin.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,112 @@
+//===========================================================================
+//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
+
+//Local Includes
+#include "directshowabstractsdllstuff.h"
+
+//External Includes
+#include "BasicSeekable.h"
+
+//STL Includes
+#include <vector>
+//Debug only !
+#include <fstream>
+//
+using namespace std;
+
+
+
+//Forward Declarations
+class AbstractTransformOutputPin;
+class AbstractTransformFilter;
+
+class AbstractTransformInputPin 
+	//Base Classes
+	:	public CBaseInputPin
+			//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/cbaseinputpinclass.asp
+	,	public BasicSeekable
+{
+public:
+	//Friend Classes
+	friend class AbstractTransformOutputPin;
+
+	//COM Setup
+	DECLARE_IUNKNOWN
+	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+		
+	//Constructors	
+	AbstractTransformInputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, AbstractTransformOutputPin* inOutputPin, CHAR* inObjectName, LPCWSTR inPinDisplayName, vector<CMediaType*> inAcceptMediaType);
+	virtual ~AbstractTransformInputPin(void);
+
+	//Pure Virtuals for codec specific methods
+	virtual HRESULT TransformData(unsigned char* inBuf, long inNumBytes) = 0;
+	virtual bool ConstructCodec() = 0;
+	virtual void DestroyCodec() = 0;
+	
+	//Pin Conenction Methods
+	virtual HRESULT BreakConnect();
+	virtual HRESULT CompleteConnect(IPin *inReceivePin);
+
+	//Media Type control methods
+	virtual HRESULT CheckMediaType(const CMediaType *inMediaType);
+	virtual HRESULT GetMediaType(int inPosition, CMediaType *outMediaType);
+	virtual HRESULT SetMediaType(const CMediaType* inMediaType) = 0;
+
+	//TODO::: Should be virtual ??
+	STDMETHODIMP Receive(IMediaSample *pSample);
+
+	//Stream Messaging methods
+	virtual STDMETHODIMP EndOfStream(void);
+	virtual STDMETHODIMP BeginFlush();
+	virtual STDMETHODIMP EndFlush();
+	virtual STDMETHODIMP NewSegment(REFERENCE_TIME inStartTime, REFERENCE_TIME inStopTime, double inRate);
+
+protected:
+	//Constants and Enumerations
+	static const short SIZE_16_BITS = 2;
+	static const signed short SINT_MAX = 32767;
+	static const signed short SINT_MIN = -32768;
+
+	virtual bool SetSampleParams(IMediaSample* outMediaSample, unsigned long inDataSize, REFERENCE_TIME* inStartTime, REFERENCE_TIME* inEndTime);
+
+	HRESULT mHR;
+	bool mBegun;
+
+	//TODO::: Couldn't this be gotten from the parent filter if we make them friends ??
+	AbstractTransformOutputPin* mOutputPin;
+	AbstractTransformFilter* mParentFilter;
+	vector<CMediaType*> mAcceptableMediaTypes;
+
+	//fstream debugLog;
+	CCritSec* mStreamLock;
+};

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,252 @@
+//===========================================================================
+//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 "AbstractTransformOutputPin.h"
+
+
+AbstractTransformOutputPin::AbstractTransformOutputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, CHAR* inObjectName, LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, vector<CMediaType*> mAcceptableMediaTypes)
+	//Base Classes
+	:	CBaseOutputPin(inObjectName, inParentFilter, inFilterLock, &mHR, inPinDisplayName)
+
+	//Member initialisation
+	,	mParentFilter(inParentFilter)
+	,	mDataQueue(NULL)
+	
+	,	mDesiredBufferSize(inBuffSize)
+	,	mDesiredBufferCount(inNumBuffs)
+
+	,	mActualBufferSize(0)
+	,	mActualBufferCount(0)
+
+{
+
+}
+AbstractTransformOutputPin::~AbstractTransformOutputPin(void)
+{	
+	ReleaseDelegate();
+	delete mDataQueue;
+	mDataQueue = NULL;
+}
+
+STDMETHODIMP AbstractTransformOutputPin::NonDelegatingQueryInterface(REFIID riid, void **ppv) {
+	if (riid == IID_IMediaSeeking) {
+		*ppv = (IMediaSeeking*)this;
+		((IUnknown*)*ppv)->AddRef();
+		return NOERROR;
+	}
+
+	return CBaseOutputPin::NonDelegatingQueryInterface(riid, ppv); 
+}
+
+HRESULT AbstractTransformOutputPin::DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES* inPropertyRequest) 
+{
+	HRESULT locHR = S_OK;
+
+	ALLOCATOR_PROPERTIES locReqAlloc;
+	ALLOCATOR_PROPERTIES locActualAlloc;
+	
+	if (inPropertyRequest->cbAlign <= 0) {
+		locReqAlloc.cbAlign = 1;
+	} else {
+		locReqAlloc.cbAlign = inPropertyRequest->cbAlign;
+	}
+
+	if (inPropertyRequest->cbBuffer < mDesiredBufferSize) {
+		locReqAlloc.cbBuffer = mDesiredBufferSize;
+	} else {
+		locReqAlloc.cbBuffer = inPropertyRequest->cbBuffer;
+	}
+
+	if (inPropertyRequest->cbPrefix < 0) {
+			locReqAlloc.cbPrefix = 0;
+	} else {
+		locReqAlloc.cbPrefix = inPropertyRequest->cbPrefix;
+	}
+	
+	if (inPropertyRequest->cBuffers < mDesiredBufferCount) {
+		locReqAlloc.cBuffers = mDesiredBufferCount;
+	} else {
+		locReqAlloc.cBuffers = inPropertyRequest->cBuffers;
+	}
+	
+	locHR = inAllocator->SetProperties(&locReqAlloc, &locActualAlloc);
+
+	if (locHR != S_OK) {
+		//TODO::: Handle a fail state here.
+		return locHR;
+	} else {
+		//TODO::: Need to save this pointer to decommit in destructor ???
+		locHR = inAllocator->Commit();
+
+		if (locHR == S_OK) {
+			mActualBufferCount = locActualAlloc.cBuffers;
+			mActualBufferSize = locActualAlloc.cbBuffer;
+		} else {
+			//TODO::: Handle commit failure.
+		}
+	
+		return locHR;
+	}
+}
+HRESULT AbstractTransformOutputPin::CheckMediaType(const CMediaType *inMediaType) 
+{
+
+	for (int i = 0;  i < mAcceptableMediaTypes.size(); i++) {
+		if	(		(inMediaType->majortype == mAcceptableMediaTypes[i]->majortype) 
+				&& 	(inMediaType->subtype == mAcceptableMediaTypes[i]->subtype) 
+				&&	(inMediaType->formattype == mAcceptableMediaTypes[i]->formattype)
+			) 
+		{
+			return S_OK;
+		
+		}
+	}
+
+	//If it was none of them return false.
+	return S_FALSE;
+
+
+	//if (	(inMediaType->majortype == MEDIATYPE_Audio) && 
+	//		(inMediaType->subtype == MEDIASUBTYPE_PCM) && 
+	//		(inMediaType->formattype == FORMAT_WaveFormatEx)) {
+	//	return S_OK;
+	//} else {
+	//	return S_FALSE;
+	//}
+	
+}
+
+void AbstractTransformOutputPin::FillMediaType(CMediaType* outMediaType, int inPosition) 
+{
+	//We are gauranteed that inPosition is within the range of the vector (See GetMediaType)
+	// If you override the mediaformat functions you must ensure this yourself before calling.
+
+	outMediaType->SetType(&(mAcceptableMediaTypes[inPosition]->majortype));
+	outMediaType->SetSubtype(&(mAcceptableMediaTypes[inPosition]->subtype));
+	outMediaType->SetFormatType(&(mAcceptableMediaTypes[inPosition]->formattype));
+
+	//If you want something different you need to override this yourself.
+	// Sample size of 0 means variable size... so that is almost always acceptable.
+	outMediaType->SetTemporalCompression(FALSE);
+	outMediaType->SetSampleSize(0);
+
+}
+
+
+HRESULT AbstractTransformOutputPin::GetMediaType(int inPosition, CMediaType *outMediaType) 
+{
+
+	if (inPosition < 0) {
+		return E_INVALIDARG;
+	}
+
+	if (inPosition < mAcceptableMediaTypes.size()) {
+		FillMediaType(outMediaType, inPosition);
+		CreateAndFillFormatBuffer(outMediaType, inPosition);
+		return S_OK;
+	} else {
+		return VFW_S_NO_MORE_ITEMS;
+	}
+
+
+	//if (inPosition == 0) {
+	//	FillMediaType(outMediaType);
+	//	WAVEFORMATEX* locWaveFormat = (WAVEFORMATEX*)outMediaType->AllocFormatBuffer(sizeof(WAVEFORMATEX));
+	//	FillWaveFormatExBuffer(locWaveFormat);
+	//	return S_OK;
+	//} else {
+	//	return VFW_S_NO_MORE_ITEMS;
+	//}
+}
+
+HRESULT AbstractTransformOutputPin::DeliverNewSegment(REFERENCE_TIME inStartTime, REFERENCE_TIME inStopTime, double inRate) 
+{
+	mDataQueue->NewSegment(inStartTime, inStopTime, inRate);
+	return S_OK;
+}
+HRESULT AbstractTransformOutputPin::DeliverEndOfStream(void) 
+{
+	//Lock ?????
+	mDataQueue->EOS();
+    return S_OK;
+}
+
+HRESULT AbstractTransformOutputPin::DeliverEndFlush(void) 
+{
+	CAutoLock locLock(m_pLock);
+	
+	mDataQueue->EndFlush();
+    return S_OK;
+}
+
+HRESULT AbstractTransformOutputPin::DeliverBeginFlush(void) 
+{
+	CAutoLock locLock(m_pLock);
+	
+	mDataQueue->BeginFlush();
+    return S_OK;
+}
+
+HRESULT AbstractTransformOutputPin::CompleteConnect(IPin *inReceivePin) 
+{
+	CAutoLock locLock(m_pLock);
+	HRESULT locHR = S_OK;
+
+	//Here when another pin connects to us, we internally connect the seek delegate
+	// from this output pin onto the input pin... and we release it on breakconnect.
+	//
+	IMediaSeeking* locSeeker = NULL;
+	mParentFilter->mInputPin->NonDelegatingQueryInterface(IID_IMediaSeeking, (void**)&locSeeker);
+	SetDelegate(locSeeker);
+	
+	mDataQueue = new COutputQueue (inReceivePin, &locHR, FALSE, FALSE, 1, TRUE, mActualBufferCount);			//Deleted in destructor
+
+	if (FAILED(locHR)) {
+		//Handle data Q failure
+		
+	}
+	
+	return CBaseOutputPin::CompleteConnect(inReceivePin);
+}
+
+HRESULT AbstractTransformOutputPin::BreakConnect(void) 
+{
+	CAutoLock locLock(m_pLock);
+
+	delete mDataQueue;
+	mDataQueue = NULL;
+
+	HRESULT locHR = CBaseOutputPin::BreakConnect();
+	ReleaseDelegate();
+
+	return locHR;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,97 @@
+//===========================================================================
+//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
+
+//Local Includes
+#include "directshowabstractsdllstuff.h"
+
+//External Includes
+#include "BasicSeekable.h"
+
+//STL Includes
+#include <vector>
+using namespace std;
+
+//Forward Declarations
+class AbstractTransformFilter;
+
+class AbstractTransformOutputPin 
+	//Base Classes
+	:	public CBaseOutputPin
+			//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/cbaseoutputpinclass.asp
+	,	public BasicSeekable
+{
+public:
+	//COM Initialisation
+	DECLARE_IUNKNOWN
+	STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
+
+	//Constructors
+	AbstractTransformOutputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, CHAR* inObjectName, LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, vector<CMediaType*> inAcceptableMediaTypes);
+	virtual ~AbstractTransformOutputPin(void);
+
+	//Buffer control method
+	virtual HRESULT DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES *inReqAllocProps);
+
+	//Media Type control methods.
+	virtual HRESULT CheckMediaType(const CMediaType *inMediaType);
+	virtual HRESULT GetMediaType(int inPosition, CMediaType *outMediaType);
+
+	//Pure virtuals for codec specific format data
+	virtual HRESULT CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition) = 0;
+
+	//Virtuals for data queue delegation
+	virtual HRESULT BreakConnect(void);
+	virtual HRESULT CompleteConnect (IPin *inReceivePin);
+	virtual HRESULT DeliverNewSegment(REFERENCE_TIME inStartTime, REFERENCE_TIME inStopTime, double inRate);
+	virtual HRESULT DeliverEndOfStream(void);
+	virtual HRESULT DeliverEndFlush(void);
+	virtual HRESULT DeliverBeginFlush(void);
+	
+protected:
+	//Helper methods
+	void FillMediaType(CMediaType* outMediaType, int inPosition);
+	//Member data
+	AbstractTransformFilter* mParentFilter;
+	COutputQueue* mDataQueue;
+
+	vector<CMediaType*> mAcceptableMediaTypes;
+
+	int mDesiredBufferSize;
+	int mDesiredBufferCount;
+	int mActualBufferSize;
+	int mActualBufferCount;
+
+	HRESULT mHR;
+};
+
+

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/ReadMe.txt
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/ReadMe.txt	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/ReadMe.txt	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,29 @@
+========================================================================
+    STATIC LIBRARY : libDirectshowAbstracts Project Overview
+========================================================================
+
+AppWizard has created this libDirectshowAbstracts library project for you. 
+This file contains a summary of what you will find in each of the files that
+make up your libDirectshowAbstracts application.
+
+
+libDirectshowAbstracts.vcproj
+    This is the main project file for VC++ projects generated using an Application Wizard. 
+    It contains information about the version of Visual C++ that generated the file, and 
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+
+/////////////////////////////////////////////////////////////////////////////
+
+StdAfx.h, StdAfx.cpp
+    These files are used to build a precompiled header (PCH) file
+    named libDirectshowAbstracts.pch and a precompiled types file named StdAfx.obj.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/directshowabstractsdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/directshowabstractsdllstuff.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/directshowabstractsdllstuff.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,35 @@
+//===========================================================================
+//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 <streams.h>
+#include <pullpin.h>
+#include <initguid.h>

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/libDirectshowAbstracts.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/libDirectshowAbstracts.vcproj	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/libDirectshowAbstracts.vcproj	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="libDirectshowAbstracts"
+	ProjectGUID="{EA7091BB-9906-41DF-9738-F4858A136086}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="&quot;c:\dxsdk\Samples\C++\DirectShow\BaseClasses&quot;;..\dsfSeeking"
+				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="$(OutDir)/libDirectshowAbstracts.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="4"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="&quot;c:\dxsdk\Samples\C++\DirectShow\BaseClasses&quot;;..\dsfSeeking"
+				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLibrarianTool"
+				OutputFile="$(OutDir)/libDirectshowAbstracts.lib"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+			<File
+				RelativePath=".\AbstractTransformFilter.cpp">
+			</File>
+			<File
+				RelativePath=".\AbstractTransformInputPin.cpp">
+			</File>
+			<File
+				RelativePath=".\AbstractTransformOutputPin.cpp">
+			</File>
+			<File
+				RelativePath=".\stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc;xsd"
+			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+			<File
+				RelativePath=".\AbstractTransformFilter.h">
+			</File>
+			<File
+				RelativePath=".\AbstractTransformInputPin.h">
+			</File>
+			<File
+				RelativePath=".\AbstractTransformOutputPin.h">
+			</File>
+			<File
+				RelativePath=".\directshowabstractsdllstuff.h">
+			</File>
+			<File
+				RelativePath=".\stdafx.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+		</Filter>
+		<File
+			RelativePath=".\ReadMe.txt">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.cpp	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.cpp	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// libDirectshowAbstracts.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file

Added: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.h	2004-11-23 10:08:10 UTC (rev 8265)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/stdafx.h	2004-11-23 10:48:12 UTC (rev 8266)
@@ -0,0 +1,15 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+
+// TODO: reference additional headers your program requires here
+
+#include "AbstractTransformInputPin.h"
+#include "AbstractTransformOutputPin.h"
+#include "AbstractTransformFilter.h"



More information about the commits mailing list