[xiph-commits] r8277 - in trunk/oggdsf: build/oggcodecs docs sln/oggdsf_all src/lib/codecs/vorbis/filters/dsfVorbisDecoder src/lib/codecs/vorbis/filters/dsfVorbisEncoder

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Wed Nov 24 21:17:43 PST 2004


Author: illiminable
Date: 2004-11-24 21:17:42 -0800 (Wed, 24 Nov 2004)
New Revision: 8277

Added:
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/fish_cdecl.h
Modified:
   trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
   trunk/oggdsf/docs/refactor.txt
   trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/fish_cdecl.h
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.h
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/dsfVorbisEncoder.vcproj
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h
Log:
* Moved the vorbis encoder filter to the new abstraact filters.

Modified: trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
===================================================================
--- trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-11-25 05:17:42 UTC (rev 8277)
@@ -100,6 +100,12 @@
         "Entry"
         {
         "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
+        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
         "OwnerKey" = "8:_408749AC43894882BEEBFF43737E505B"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -142,12 +148,6 @@
         "Entry"
         {
         "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
-        "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
         "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -184,12 +184,6 @@
         "Entry"
         {
         "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
-        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_46A378A9B03E4612A645053EDB884C20"
         "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -286,6 +280,12 @@
         "Entry"
         {
         "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
+        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
         "OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -340,12 +340,6 @@
         "Entry"
         {
         "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
-        "OwnerKey" = "8:_B721259605524EFE965E8E131C1558D5"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
         "OwnerKey" = "8:_AC8962A7F212481095173AB7C8C89025"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -400,12 +394,6 @@
         "Entry"
         {
         "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
-        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_655D5383153A6AB10D15352A7EABCC7A"
         "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
         "MsmSig" = "8:_UNDEFINED"
         }
@@ -531,12 +519,6 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_B721259605524EFE965E8E131C1558D5"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
         "MsmKey" = "8:_C6ED1B8B0AAC495E9D25CDE58FC9E711"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
@@ -961,7 +943,7 @@
         "Name" = "8:Microsoft Visual Studio"
         "ProductName" = "8:oggcodecs"
         "ProductCode" = "8:{EDCBAB86-104A-4A03-B7D6-DFD783573933}"
-        "PackageCode" = "8:{4203124D-69B4-452A-84A5-5E61391379F3}"
+        "PackageCode" = "8:{8917B814-607E-4991-84A4-A5FA5C4138D0}"
         "UpgradeCode" = "8:{1A644FEB-7597-4FAB-AADE-C2C7C64C5984}"
         "RestartWWWService" = "11:FALSE"
         "RemovePreviousVersions" = "11:TRUE"
@@ -3317,34 +3299,6 @@
                 {
                 }
             }
-            "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_B721259605524EFE965E8E131C1558D5"
-            {
-            "SourcePath" = "8:..\\..\\src\\lib\\helper\\libilliCore\\Debug\\libilliCore.dll"
-            "TargetName" = "8:"
-            "Tag" = "8:"
-            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
-            "Condition" = "8:"
-            "Transitive" = "11:FALSE"
-            "Vital" = "11:TRUE"
-            "ReadOnly" = "11:FALSE"
-            "Hidden" = "11:FALSE"
-            "System" = "11:FALSE"
-            "Permanent" = "11:FALSE"
-            "SharedLegacy" = "11:FALSE"
-            "PackageAs" = "3:1"
-            "Register" = "3:1"
-            "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
-            "IsolateTo" = "8:"
-            "ProjectOutputGroupRegister" = "3:1"
-            "OutputConfiguration" = "8:"
-            "OutputGroupCanonicalName" = "8:Built"
-            "OutputProjectGuid" = "8:{2DA569EC-3E22-4BC9-A242-C7A56EB9C6F4}"
-            "ShowKeyOutput" = "11:TRUE"
-                "ExcludeFilters"
-                {
-                }
-            }
             "{8062640A-2EEE-46E9-AB67-688E9A886E9F}:_C6ED1B8B0AAC495E9D25CDE58FC9E711"
             {
             "SourcePath" = "8:..\\..\\src\\tools\\OOOggValidate\\Debug\\OOOggValidate.exe"

Modified: trunk/oggdsf/docs/refactor.txt
===================================================================
--- trunk/oggdsf/docs/refactor.txt	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/docs/refactor.txt	2004-11-25 05:17:42 UTC (rev 8277)
@@ -2,8 +2,6 @@
 
 Fix the hardcoded buffer parameters in the decoders
 
-Fix the leaks caused by the accept media types.
-
 Move dsfSeeking to the Abstract DS library for all
 
 Finish converting the encoders to new abstraacts
@@ -13,4 +11,28 @@
 Make some of the small libraries static (libilliCore, libOOOggSeeking
 , libVorbisComment, libOOOgg??, libCMMLTags, winCMMLParse)
 
-Check the size by making the runtimes static
\ No newline at end of file
+Check the size by making the runtimes static
+
+Check return values for TransformData (should be HRESULTS now... but won't cause compile error
+  because previously was long which is equivalent)
+
+Why is the vorbis encoder still on __cdecl... that's a sure fire way for stack corruption.
+
+Check case of includes in all libs that may be cross platform
+
+Check magic number usage.
+
+Check exposure of IMediaSeeking on Filters, input pins and encoders... should only be on
+  render filters that wish to seek and output pins.
+
+Do something with the various _cdecl.h files floating around to consolidate them (ie fishsound and theora)
+
+Sort all the GUIDs and format blocks to a common place.
+
+DONE::::
+
+Fix the leaks caused by the accept media types.
+
+Change type of mUptoFrame everywhere to __int64
+
+Check use of mHR which is scattered about the enc/dec filters.
\ No newline at end of file

Modified: trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
===================================================================
--- trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-11-25 05:17:42 UTC (rev 8277)
@@ -108,10 +108,9 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfVorbisEncoder", "..\..\src\lib\codecs\vorbis\filters\dsfVorbisEncoder\dsfVorbisEncoder.vcproj", "{D74A626E-C8CB-4787-913E-2E637FC04F2B}"
 	ProjectSection(ProjectDependencies) = postProject
 		{223ACC19-608E-4E1B-A054-067F0CACB272} = {223ACC19-608E-4E1B-A054-067F0CACB272}
-		{4906E533-2864-4840-ABC1-00CD844623EB} = {4906E533-2864-4840-ABC1-00CD844623EB}
-		{A882A968-3013-4A27-B653-E18CF5C791FE} = {A882A968-3013-4A27-B653-E18CF5C791FE}
 		{4CBC0173-27E6-4218-AE06-5EFDCA7B2547} = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
 		{AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4} = {AE0ABDB0-AE3B-4C38-843B-3408A6B87BA4}
+		{EA7091BB-9906-41DF-9738-F4858A136086} = {EA7091BB-9906-41DF-9738-F4858A136086}
 		{2DA569EC-3E22-4BC9-A242-C7A56EB9C6F4} = {2DA569EC-3E22-4BC9-A242-C7A56EB9C6F4}
 	EndProjectSection
 EndProject

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/fish_cdecl.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/fish_cdecl.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/fish_cdecl.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -43,3 +43,5 @@
 int __cdecl fish_sound_get_interleave (FishSound * fsound);
 
 int __cdecl fish_sound_set_interleave (FishSound * fsound, int interleave);
+
+long __cdecl fish_sound_get_frameno (FishSound * fsound);

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp	2004-11-25 05:17:42 UTC (rev 8277)
@@ -60,9 +60,10 @@
 } 
 
 VorbisEncodeFilter::VorbisEncodeFilter(void)
-	:	AbstractAudioEncodeFilter(NAME("Vorbis Encoder"), CLSID_VorbisEncodeFilter, AbstractAudioEncodeFilter::VORBIS)
+	:	AbstractTransformFilter(NAME("Vorbis Encoder"), CLSID_VorbisEncodeFilter)
 {
 	bool locWasConstructed = ConstructPins();
+	//Error checks ??
 }
 
 VorbisEncodeFilter::~VorbisEncodeFilter(void)
@@ -71,14 +72,34 @@
 
 bool VorbisEncodeFilter::ConstructPins() 
 {
+	//Inputs Audio / PCM / WaveFormatEx
+	//Outputs Audio / Vorbis / Vorbis
 
-	CMediaType* locOutputMediaType = new CMediaType(&MEDIATYPE_Audio);
-	locOutputMediaType->subtype = MEDIASUBTYPE_Vorbis;
-	locOutputMediaType->formattype = FORMAT_Vorbis;
+	//Vector to hold our set of media types we want to accept.
+	vector<CMediaType*> locAcceptableTypes;
+
+	//Setup the media types for the output pin.
+	CMediaType* locAcceptMediaType = new CMediaType(&MEDIATYPE_Audio);		//Deleted in pin destructor
+	locAcceptMediaType->subtype = MEDIASUBTYPE_Vorbis;
+	locAcceptMediaType->formattype = FORMAT_Vorbis;
+	
+	locAcceptableTypes.push_back(locAcceptMediaType);
+
 	//Output pin must be done first because it's passed to the input pin.
-	mOutputPin = new VorbisEncodeOutputPin(this, m_pLock, locOutputMediaType);
+	mOutputPin = new VorbisEncodeOutputPin(this, m_pLock, locAcceptableTypes);			//Deleted in base class destructor
 
+	//Clear out the vector, now we've already passed it to the output pin.
+	locAcceptableTypes.clear();
+
+	//Setup the media Types for the input pin.
+	locAcceptMediaType = NULL;
+	locAcceptMediaType = new CMediaType(&MEDIATYPE_Audio);			//Deleted by pin
+
+	locAcceptMediaType->subtype = MEDIASUBTYPE_PCM;
+	locAcceptMediaType->formattype = FORMAT_WaveFormatEx;
+
+	locAcceptableTypes.push_back(locAcceptMediaType);
 	
-	mInputPin = new VorbisEncodeInputPin(this, m_pLock, mOutputPin);
+	mInputPin = new VorbisEncodeInputPin(this, m_pLock, mOutputPin, locAcceptableTypes);	//Deleted in base class filter destructor.
 	return true;
 }
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -31,29 +31,70 @@
 
 #pragma once
 
+//Local Includes
 #include "vorbisencoderdllstuff.h"
-#include "AbstractAudioEncodeFilter.h"
 
+//External Includes
+#include "AbstractTransformFilter.h"
+
 //Forward Declarations
 struct sVorbisFormatBlock;
 class VorbisEncodeInputPin;
 class VorbisEncodeOutputPin;
 
 class VorbisEncodeFilter
-	:	public AbstractAudioEncodeFilter
+	:	public AbstractTransformFilter
 {
 public:
+	//Friend Classes
 	friend class VorbisEncodeInputPin;
 	friend class VorbisEncodeOutputPin;
+
+	//Constructors
 	VorbisEncodeFilter(void);
 	virtual ~VorbisEncodeFilter(void);
 
+	//COM Creator function
 	static CUnknown* WINAPI VorbisEncodeFilter::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
 
-	//PURE VIRTUAL IMPLEMENTATION
+protected:
+
+	//Implementation of pure virtuals from AbstractTransformFilter
 	virtual bool ConstructPins();
 
-protected:
+	//Member data
 	sVorbisFormatBlock mVorbisFormatBlock;
 	
 };
+
+
+//Old imp
+//*************************************
+//#pragma once
+//
+//#include "vorbisencoderdllstuff.h"
+//#include "AbstractAudioEncodeFilter.h"
+//
+////Forward Declarations
+//struct sVorbisFormatBlock;
+//class VorbisEncodeInputPin;
+//class VorbisEncodeOutputPin;
+//
+//class VorbisEncodeFilter
+//	:	public AbstractAudioEncodeFilter
+//{
+//public:
+//	friend class VorbisEncodeInputPin;
+//	friend class VorbisEncodeOutputPin;
+//	VorbisEncodeFilter(void);
+//	virtual ~VorbisEncodeFilter(void);
+//
+//	static CUnknown* WINAPI VorbisEncodeFilter::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
+//
+//	//PURE VIRTUAL IMPLEMENTATION
+//	virtual bool ConstructPins();
+//
+//protected:
+//	sVorbisFormatBlock mVorbisFormatBlock;
+//	
+//};

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp	2004-11-25 05:17:42 UTC (rev 8277)
@@ -29,12 +29,16 @@
 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 //===========================================================================
 
+
+
 #include "StdAfx.h"
-#include "vorbisencodeinputpin.h"
+#include "VorbisEncodeInputPin.h"
 
-VorbisEncodeInputPin::VorbisEncodeInputPin(AbstractAudioEncodeFilter* inParentFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin)
-	:	AbstractAudioEncodeInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("VorbisEncodeInputPin"), L"PCM In")
+VorbisEncodeInputPin::VorbisEncodeInputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, AbstractTransformOutputPin* inOutputPin, vector<CMediaType*> inAcceptableMediaTypes)
+	:	AbstractTransformInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("VorbisEncodeInputPin"), L"PCM In", inAcceptableMediaTypes)
 	,	mFishSound(NULL)
+	,	mWaveFormat(NULL)
+	,	mUptoFrame(0)
 {
 	
 }
@@ -46,23 +50,13 @@
 
 
 //PURE VIRTUALS
-long VorbisEncodeInputPin::encodeData(unsigned char* inBuf, long inNumBytes) {
-
-
-
+HRESULT VorbisEncodeInputPin::TransformData(unsigned char* inBuf, long inNumBytes) 
+{
 	
 	float* locFloatBuf = new float[inNumBytes/2];
 	short locTempShort = 0;
 	float locTempFloat = 0;
 
-	//__int64 locGranPos = 0;
-	//locGranPos = fish_sound_get_frameno(mFishSound);
-	//Removed the hack
-	//fish_sound_command(mFishSound, 7, &locGranPos, sizeof(__int64));
-	//
-
-	//mUptoFrame = locGranPos;
-	//__int64 locTemp = ((FishSoundVorbisInfo*)mFishSound->codec_data)->vd.pcm_returned;
 	for (int i = 0; i < inNumBytes; i += 2) {
 		locTempShort = *((short*)(inBuf + i));
 		locTempFloat = (float)locTempShort;
@@ -102,7 +96,8 @@
 	return true;
 
 }
-void VorbisEncodeInputPin::DestroyCodec() {
+void VorbisEncodeInputPin::DestroyCodec() 
+{
 	fish_sound_delete(mFishSound);
 	mFishSound = NULL;
 }
@@ -116,7 +111,7 @@
 	VorbisEncodeFilter* locFilter = reinterpret_cast<VorbisEncodeFilter*>(locThis->m_pFilter);
 	
 
-	//Time stamps are granule pos not directshow times
+	//Time stamps are granule pos not directshow times - granule pos in vorbis is equivalent to frame number
 
 	LONGLONG locFrameStart = locThis->mUptoFrame;
 	LONGLONG locFrameEnd	= locThis->mUptoFrame
@@ -150,7 +145,7 @@
 
 			//Add a reference so it isn't deleted en route.
 			//locSample->AddRef();
-			HRESULT locHR = locThis->mOutputPin->mDataQueue->Receive(locSample);						//->DownstreamFilter()->Receive(locSample);
+			HRESULT locHR = ((VorbisEncodeOutputPin*)(locThis->mOutputPin))->mDataQueue->Receive(locSample);						//->DownstreamFilter()->Receive(locSample);
 			if (locHR != S_OK) {
 				
 			} else {
@@ -165,11 +160,171 @@
 
 
 HRESULT VorbisEncodeInputPin::SetMediaType(const CMediaType* inMediaType) {
-	AbstractAudioEncodeInputPin::SetMediaType(inMediaType);
+	if (	(inMediaType->subtype == MEDIASUBTYPE_PCM) &&
+			(inMediaType->formattype == FORMAT_WaveFormatEx)) {
 
+		mWaveFormat = (WAVEFORMATEX*)inMediaType->pbFormat;
+		//mParentFilter->mAudioFormat = AbstractAudioDecodeFilter::VORBIS;
+	} else {
+		//Failed... should never be here !
+		throw 0;
+	}
+	//This is here and not the constructor because we need audio params from the
+	// input pin to construct properly.
 	ConstructCodec();
 
+	return CBaseInputPin::SetMediaType(inMediaType);
 
+	
+
+
 	return S_OK;
 	
-}
\ No newline at end of file
+}
+
+//Old impl
+//************************************
+//#include "StdAfx.h"
+//#include "vorbisencodeinputpin.h"
+//
+//VorbisEncodeInputPin::VorbisEncodeInputPin(AbstractAudioEncodeFilter* inParentFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin)
+//	:	AbstractAudioEncodeInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("VorbisEncodeInputPin"), L"PCM In")
+//	,	mFishSound(NULL)
+//{
+//	
+//}
+//
+//VorbisEncodeInputPin::~VorbisEncodeInputPin(void)
+//{
+//	DestroyCodec();
+//}
+//
+//
+////PURE VIRTUALS
+//long VorbisEncodeInputPin::encodeData(unsigned char* inBuf, long inNumBytes) {
+//
+//
+//
+//	
+//	float* locFloatBuf = new float[inNumBytes/2];
+//	short locTempShort = 0;
+//	float locTempFloat = 0;
+//
+//	//__int64 locGranPos = 0;
+//	//locGranPos = fish_sound_get_frameno(mFishSound);
+//	//Removed the hack
+//	//fish_sound_command(mFishSound, 7, &locGranPos, sizeof(__int64));
+//	//
+//
+//	//mUptoFrame = locGranPos;
+//	//__int64 locTemp = ((FishSoundVorbisInfo*)mFishSound->codec_data)->vd.pcm_returned;
+//	for (int i = 0; i < inNumBytes; i += 2) {
+//		locTempShort = *((short*)(inBuf + i));
+//		locTempFloat = (float)locTempShort;
+//		locTempFloat /= 32767.0;
+//		locFloatBuf[i/2] = locTempFloat;;
+//	}
+//	//FIX::: The 2 is the size of a sample ie 16 bits
+//	long locErr = fish_sound_encode(mFishSound, (float**)locFloatBuf, inNumBytes/(mFishInfo.channels*2));
+//	delete[] locFloatBuf;
+//	//FIX::: Do something here ?
+//	if (locErr < 0) {
+//	
+//	} else {
+//	
+//	}
+//	return locErr;
+//}
+//bool VorbisEncodeInputPin::ConstructCodec() {
+//	mFishInfo.channels = mWaveFormat->nChannels;
+//	mFishInfo.format = FISH_SOUND_VORBIS;
+//	mFishInfo.samplerate = mWaveFormat->nSamplesPerSec;
+//    
+//	mFishInfo.format = FISH_SOUND_VORBIS;
+//	mFishSound = fish_sound_new (FISH_SOUND_ENCODE, &mFishInfo);
+//
+//	//Change to fill in vorbis format block so muxer can work
+//	((VorbisEncodeFilter*)mParentFilter)->mVorbisFormatBlock.numChannels = mWaveFormat->nChannels;
+//	((VorbisEncodeFilter*)mParentFilter)->mVorbisFormatBlock.samplesPerSec = mWaveFormat->nSamplesPerSec;
+//	//
+//
+//	int i = 1;
+//	//FIX::: Use new API for interleave setting
+//	fish_sound_command(mFishSound, FISH_SOUND_SET_INTERLEAVE, &i, sizeof(int));
+//
+//	fish_sound_set_encoded_callback (mFishSound, VorbisEncodeInputPin::VorbisEncoded, this);
+//	//FIX::: Proper return value
+//	return true;
+//
+//}
+//void VorbisEncodeInputPin::DestroyCodec() {
+//	fish_sound_delete(mFishSound);
+//	mFishSound = NULL;
+//}
+//
+//
+////Encoded callback
+//int VorbisEncodeInputPin::VorbisEncoded (FishSound* inFishSound, unsigned char* inPacketData, long inNumBytes, void* inThisPointer) 
+//{
+//
+//	VorbisEncodeInputPin* locThis = reinterpret_cast<VorbisEncodeInputPin*> (inThisPointer);
+//	VorbisEncodeFilter* locFilter = reinterpret_cast<VorbisEncodeFilter*>(locThis->m_pFilter);
+//	
+//
+//	//Time stamps are granule pos not directshow times
+//
+//	LONGLONG locFrameStart = locThis->mUptoFrame;
+//	LONGLONG locFrameEnd	= locThis->mUptoFrame
+//							= fish_sound_get_frameno(locThis->mFishSound);
+//	//Get a pointer to a new sample stamped with our time
+//	IMediaSample* locSample;
+//	HRESULT locHR = locThis->mOutputPin->GetDeliveryBuffer(&locSample, &locFrameStart, &locFrameEnd, NULL);
+//
+//	if (FAILED(locHR)) {
+//		//We get here when the application goes into stop mode usually.
+//		return locHR;
+//	}	
+//	
+//	BYTE* locBuffer = NULL;
+//
+//	
+//	//Make our pointers set to point to the samples buffer
+//	locSample->GetPointer(&locBuffer);
+//
+//	
+//
+//	if (locSample->GetSize() >= inNumBytes) {
+//
+//		memcpy((void*)locBuffer, (const void*)inPacketData, inNumBytes);
+//		
+//		//Set the sample parameters.
+//		locThis->SetSampleParams(locSample, inNumBytes, &locFrameStart, &locFrameEnd);
+//
+//		{
+//			CAutoLock locLock(locThis->m_pLock);
+//
+//			//Add a reference so it isn't deleted en route.
+//			//locSample->AddRef();
+//			HRESULT locHR = locThis->mOutputPin->mDataQueue->Receive(locSample);						//->DownstreamFilter()->Receive(locSample);
+//			if (locHR != S_OK) {
+//				
+//			} else {
+//			}
+//		}
+//
+//		return 0;
+//	} else {
+//		throw 0;
+//	}
+//}
+//
+//
+//HRESULT VorbisEncodeInputPin::SetMediaType(const CMediaType* inMediaType) {
+//	AbstractAudioEncodeInputPin::SetMediaType(inMediaType);
+//
+//	ConstructCodec();
+//
+//
+//	return S_OK;
+//	
+//}
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -31,38 +31,84 @@
 
 #pragma once
 
-#include "AbstractAudioEncodeInputPin.h"
+#include "AbstractTransformInputPin.h"
 #include "VorbisEncodeInputPin.h"
 
 #include "VorbisEncodeFilter.h"
 
 extern "C" {
-#include <fishsound/fishsound.h>
-//#include <../src/libfishsound/private.h>
+//#include <fishsound/fishsound.h>
+#include "fish_cdecl.h"
 }
 
 class VorbisEncodeInputPin
-	:	public AbstractAudioEncodeInputPin
+	:	public AbstractTransformInputPin
 {
 public:
-	VorbisEncodeInputPin(AbstractAudioEncodeFilter* inFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin);
+	VorbisEncodeInputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, AbstractTransformOutputPin* inOutputPin, vector<CMediaType*> inAcceptableMediaTypes);
 	virtual ~VorbisEncodeInputPin(void);
 
-	static int VorbisEncodeInputPin::VorbisEncoded (FishSound* inFishSound, unsigned char* inPacketData, long inNumBytes, void* inThisPointer) ;
-	//PURE VIRTUALS
-	virtual long encodeData(unsigned char* inBuf, long inNumBytes);
+	static int __cdecl VorbisEncoded (FishSound* inFishSound, unsigned char* inPacketData, long inNumBytes, void* inThisPointer) ;
+	
+	virtual HRESULT SetMediaType(const CMediaType* inMediaType);
+
+protected:
+
+	//Implementation of codec specific pure virtuals from AbstractTransformInputPin
+	virtual HRESULT TransformData(unsigned char* inBuf, long inNumBytes);
 	virtual bool ConstructCodec();
 	virtual void DestroyCodec();
-	virtual HRESULT SetMediaType(const CMediaType* inMediaType);
 
-protected:
+	//Member data
 	HRESULT mHR;
 	bool mBegun;
-	//VorbisDecodeOutputPin* mOutputPin;
-	//__int64 mUptoFrame;
+	WAVEFORMATEX* mWaveFormat;
+	__int64 mUptoFrame;
 
+	//Fishsound member data
 	FishSound* mFishSound;
-	FishSoundInfo mFishInfo; 
+	FishSoundInfo mFishInfo; 	
 
 	
 };
+
+
+//Old imp
+//****************************************************
+//#pragma once
+//
+//#include "AbstractAudioEncodeInputPin.h"
+//#include "VorbisEncodeInputPin.h"
+//
+//#include "VorbisEncodeFilter.h"
+//
+//extern "C" {
+//#include <fishsound/fishsound.h>
+////#include <../src/libfishsound/private.h>
+//}
+//
+//class VorbisEncodeInputPin
+//	:	public AbstractAudioEncodeInputPin
+//{
+//public:
+//	VorbisEncodeInputPin(AbstractAudioEncodeFilter* inFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin);
+//	virtual ~VorbisEncodeInputPin(void);
+//
+//	static int VorbisEncodeInputPin::VorbisEncoded (FishSound* inFishSound, unsigned char* inPacketData, long inNumBytes, void* inThisPointer) ;
+//	//PURE VIRTUALS
+//	virtual long encodeData(unsigned char* inBuf, long inNumBytes);
+//	virtual bool ConstructCodec();
+//	virtual void DestroyCodec();
+//	virtual HRESULT SetMediaType(const CMediaType* inMediaType);
+//
+//protected:
+//	HRESULT mHR;
+//	bool mBegun;
+//	//VorbisDecodeOutputPin* mOutputPin;
+//	//__int64 mUptoFrame;
+//
+//	FishSound* mFishSound;
+//	FishSoundInfo mFishInfo; 
+//
+//	
+//};

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp	2004-11-25 05:17:42 UTC (rev 8277)
@@ -29,11 +29,12 @@
 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 //===========================================================================
 
+
 #include "StdAfx.h"
-#include "vorbisencodeoutputpin.h"
+#include "VorbisEncodeOutputPin.h"
 
-VorbisEncodeOutputPin::VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter,CCritSec* inFilterLock, CMediaType* inOutputMediaType)
-	:	AbstractAudioEncodeOutputPin(inParentFilter, inFilterLock,NAME("VorbisDecodeOutputPin"), L"Vorbis Out", inOutputMediaType)
+VorbisEncodeOutputPin::VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter,CCritSec* inFilterLock, vector<CMediaType*> inAcceptableMediaTypes)
+	:	AbstractTransformOutputPin(inParentFilter, inFilterLock,NAME("VorbisDecodeOutputPin"), L"Vorbis Out", 65536, 5, inAcceptableMediaTypes)
 {
 }
 
@@ -41,11 +42,51 @@
 {
 }
 
-bool VorbisEncodeOutputPin::FillFormatBuffer(BYTE* inFormatBuffer) {
-	VorbisEncodeFilter* locParentFilter = (VorbisEncodeFilter*)mParentFilter;
-	memcpy((void*)inFormatBuffer, (const void*) &(locParentFilter->mVorbisFormatBlock), sizeof(sVorbisFormatBlock));
-	return true;
+HRESULT VorbisEncodeOutputPin::CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition)
+{
+	if (inPosition == 0) {
+		sVorbisFormatBlock* locVorbisFormat = (sVorbisFormatBlock*)outMediaType->AllocFormatBuffer(sizeof(sVorbisFormatBlock));
+		//TODO::: Check for null ?
+
+		memcpy((void*)locVorbisFormat, (const void*) &(((VorbisEncodeFilter*)mParentFilter)->mVorbisFormatBlock), sizeof(sVorbisFormatBlock));
+		return S_OK;
+	} else {
+        return S_FALSE;
+	}
 }
-unsigned long VorbisEncodeOutputPin::FormatBufferSize() {
-	return sizeof(sVorbisFormatBlock);
-}
+
+
+//bool VorbisEncodeOutputPin::FillFormatBuffer(BYTE* inFormatBuffer) {
+//	VorbisEncodeFilter* locParentFilter = (VorbisEncodeFilter*)mParentFilter;
+//	memcpy((void*)inFormatBuffer, (const void*) &(locParentFilter->mVorbisFormatBlock), sizeof(sVorbisFormatBlock));
+//	return true;
+//}
+//unsigned long VorbisEncodeOutputPin::FormatBufferSize() {
+//	return sizeof(sVorbisFormatBlock);
+//}
+
+
+
+
+//Old imp
+//*********************************************
+//#include "StdAfx.h"
+//#include "vorbisencodeoutputpin.h"
+//
+//VorbisEncodeOutputPin::VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter,CCritSec* inFilterLock, CMediaType* inOutputMediaType)
+//	:	AbstractAudioEncodeOutputPin(inParentFilter, inFilterLock,NAME("VorbisDecodeOutputPin"), L"Vorbis Out", inOutputMediaType)
+//{
+//}
+//
+//VorbisEncodeOutputPin::~VorbisEncodeOutputPin(void)
+//{
+//}
+//
+//bool VorbisEncodeOutputPin::FillFormatBuffer(BYTE* inFormatBuffer) {
+//	VorbisEncodeFilter* locParentFilter = (VorbisEncodeFilter*)mParentFilter;
+//	memcpy((void*)inFormatBuffer, (const void*) &(locParentFilter->mVorbisFormatBlock), sizeof(sVorbisFormatBlock));
+//	return true;
+//}
+//unsigned long VorbisEncodeOutputPin::FormatBufferSize() {
+//	return sizeof(sVorbisFormatBlock);
+//}

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -32,23 +32,54 @@
 #pragma once
 
 #include "vorbisencoderdllstuff.h"
-#include "AbstractAudioEncodeOutputPin.h"
+#include "AbstractTransformOutputPin.h"
 
 class VorbisEncodeFilter;
 struct sVorbisFormatBlock;
 
 class VorbisEncodeOutputPin
-	:	public	AbstractAudioEncodeOutputPin
+	:	public	AbstractTransformOutputPin
 {
 public:
-	VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter, CCritSec* inFilterLock, CMediaType* inOutputMediaType);
+
+	friend class VorbisEncodeInputPin;
+
+	VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter, CCritSec* inFilterLock, vector<CMediaType*> inAcceptabletMediaTypes);
 	virtual ~VorbisEncodeOutputPin(void);
 
 	//PURE VIRTUAL IMPLEMENTATION
-	virtual bool FillFormatBuffer(BYTE* inFormatBuffer);
-	virtual unsigned long FormatBufferSize();
+	//virtual bool FillFormatBuffer(BYTE* inFormatBuffer);
+	//virtual unsigned long FormatBufferSize();
 
 
 protected:
+	virtual HRESULT CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition);
 	
 };
+
+
+//Old impl
+//*********************************************
+//#pragma once
+//
+//#include "vorbisencoderdllstuff.h"
+//#include "AbstractAudioEncodeOutputPin.h"
+//
+//class VorbisEncodeFilter;
+//struct sVorbisFormatBlock;
+//
+//class VorbisEncodeOutputPin
+//	:	public	AbstractAudioEncodeOutputPin
+//{
+//public:
+//	VorbisEncodeOutputPin(VorbisEncodeFilter* inParentFilter, CCritSec* inFilterLock, CMediaType* inOutputMediaType);
+//	virtual ~VorbisEncodeOutputPin(void);
+//
+//	//PURE VIRTUAL IMPLEMENTATION
+//	virtual bool FillFormatBuffer(BYTE* inFormatBuffer);
+//	virtual unsigned long FormatBufferSize();
+//
+//
+//protected:
+//	
+//};

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/dsfVorbisEncoder.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/dsfVorbisEncoder.vcproj	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/dsfVorbisEncoder.vcproj	2004-11-25 05:17:42 UTC (rev 8277)
@@ -19,7 +19,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\core\directshow\dsfSeeking;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\libDirectshowAbstracts;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\helper\libilliCore"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DSFVORBISENCODER_EXPORTS"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -28,7 +28,7 @@
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="4"
-				CallingConvention="0"/>
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool
@@ -80,7 +80,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\core\directshow\dsfSeeking;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\libDirectshowAbstracts;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\helper\libilliCore"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFVORBISENCODER_EXPORTS"
 				StringPooling="TRUE"
 				RuntimeLibrary="2"
@@ -89,7 +89,7 @@
 				WarningLevel="4"
 				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="0"
-				CallingConvention="0"/>
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool
@@ -143,7 +143,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\core\directshow\dsfSeeking;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\libDirectshowAbstracts;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\helper\libilliCore"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFVORBISENCODER_EXPORTS"
 				StringPooling="TRUE"
 				RuntimeLibrary="2"
@@ -153,7 +153,7 @@
 				WarningLevel="4"
 				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="0"
-				CallingConvention="0"/>
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool
@@ -207,7 +207,7 @@
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="TRUE"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\core\directshow\dsfSeeking;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\libDirectshowAbstracts;..\..\..\..\core\ogg\libOOOgg;..\..\..\helper\libfishsound\include;..\..\..\helper\libfishsound\win32;..\..\..\..\helper\libilliCore"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFVORBISENCODER_EXPORTS"
 				StringPooling="TRUE"
 				RuntimeLibrary="2"
@@ -217,7 +217,7 @@
 				WarningLevel="4"
 				Detect64BitPortabilityProblems="TRUE"
 				DebugInformationFormat="0"
-				CallingConvention="0"/>
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool
@@ -309,6 +309,9 @@
 			Name="Header Files"
 			Filter="h;hpp;hxx;hm;inl;inc">
 			<File
+				RelativePath=".\fish_cdecl.h">
+			</File>
+			<File
 				RelativePath="stdafx.h">
 			</File>
 			<File

Added: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/fish_cdecl.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/fish_cdecl.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/fish_cdecl.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -0,0 +1,47 @@
+#include <fishsound/constants.h>
+typedef struct {
+  int samplerate;
+  int channels;
+  int format;
+} FishSoundInfo;
+typedef struct {
+  int format;
+  const char * name;     
+  const char * extension;
+} FishSoundFormat;
+
+typedef void * FishSound;
+typedef int (__cdecl *FishSoundDecoded) (FishSound * fsound, float ** pcm,
+				 long frames, void * user_data);
+typedef int (__cdecl *FishSoundEncoded) (FishSound * fsound, unsigned char * buf,
+				 long bytes, void * user_data);
+int __cdecl fish_sound_identify (unsigned char * buf, long bytes);
+
+FishSound * __cdecl fish_sound_new (int mode, FishSoundInfo * fsinfo);
+
+int __cdecl fish_sound_set_decoded_callback (FishSound * fsound,
+				     FishSoundDecoded decoded,
+				     void * user_data);
+
+int __cdecl fish_sound_set_encoded_callback (FishSound * fsound,
+				     FishSoundEncoded encoded,
+				     void * user_data);
+
+long __cdecl fish_sound_decode (FishSound * fsound, unsigned char * buf, long bytes);
+
+long __cdecl fish_sound_encode (FishSound * fsound, float ** pcm, long frames);
+
+long __cdecl fish_sound_flush (FishSound * fsound);
+
+int __cdecl fish_sound_reset (FishSound * fsound);
+
+int __cdecl fish_sound_delete (FishSound * fsound);
+
+int __cdecl fish_sound_command (FishSound * fsound, int command, void * data,
+			int datasize);
+
+int __cdecl fish_sound_get_interleave (FishSound * fsound);
+
+int __cdecl fish_sound_set_interleave (FishSound * fsound, int interleave);
+
+long __cdecl fish_sound_get_frameno (FishSound * fsound);

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h	2004-11-24 11:59:35 UTC (rev 8276)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h	2004-11-25 05:17:42 UTC (rev 8277)
@@ -31,13 +31,13 @@
 
 #pragma once
 
-#ifdef DSFABSTRACOGGAUDIODECODER_EXPORTS
-#pragma message("----> Exporting from Abstract Library...")
-#define ABS_AUDIO_DEC_API __declspec(dllexport)
-#else
-#pragma message("<---- Importing from Abstract Library...")
-#define ABS_AUDIO_DEC_API __declspec(dllimport)
-#endif
+//#ifdef DSFABSTRACOGGAUDIODECODER_EXPORTS
+//#pragma message("----> Exporting from Abstract Library...")
+//#define ABS_AUDIO_DEC_API __declspec(dllexport)
+//#else
+//#pragma message("<---- Importing from Abstract Library...")
+//#define ABS_AUDIO_DEC_API __declspec(dllimport)
+//#endif
 
 struct sVorbisFormatBlock {
 	unsigned long vorbisVersion;
@@ -48,9 +48,9 @@
 	unsigned char numChannels;
 };
 
-#include "AbstractAudioEncodeFilter.h"
-#include "AbstractAudioEncodeInputPin.h"
-#include "AbstractAudioEncodeOutputPin.h"
+#include "AbstractTransformFilter.h"
+#include "AbstractTransformInputPin.h"
+#include "AbstractTransformOutputPin.h"
 #include "VorbisEncodeInputPin.h"
 #include "VorbisEncodeOutputPin.h"
 #include "VorbisEncodeFilter.h"



More information about the commits mailing list