[xiph-commits] r17302 - in trunk/oggdsf: build/NSIS/Release src/lib/codecs/flac/filters/dsfFLACDecoder src/lib/codecs/flac/filters/dsfFLACEncoder src/lib/codecs/speex/filters/dsfSpeexDecoder src/lib/codecs/speex/filters/dsfSpeexEncoder src/lib/codecs/theora/filters/dsfTheoraDecoder src/lib/codecs/theora/filters/dsfTheoraEncoder src/lib/codecs/vorbis/filters/dsfVorbisDecoder src/lib/codecs/vorbis/filters/dsfVorbisEncoder src/lib/codecs/webm/webmdshow/libmkvparser src/lib/codecs/webm/webmdshow/vp8decoder src/lib/codecs/webm/webmdshow/vp8encoder src/lib/codecs/webm/webmdshow/webmmux src/lib/codecs/webm/webmdshow/webmsplit src/lib/core/directshow/dsfOggDemux2 src/lib/core/directshow/dsfOggMux src/lib/core/directshow/libDirectshowAbstracts src/lib/helper/common src/lib/plugin/AxPlayer
cristianadam at svn.xiph.org
cristianadam at svn.xiph.org
Mon Jun 21 14:11:20 PDT 2010
Author: cristianadam
Date: 2010-06-21 14:11:20 -0700 (Mon, 21 Jun 2010)
New Revision: 17302
Added:
trunk/oggdsf/src/lib/helper/common/FlacTypes.h
trunk/oggdsf/src/lib/helper/common/OggTypes.h
trunk/oggdsf/src/lib/helper/common/SpeexTypes.h
trunk/oggdsf/src/lib/helper/common/TheoraTypes.h
trunk/oggdsf/src/lib/helper/common/VorbisTypes.h
Modified:
trunk/oggdsf/build/NSIS/Release/opencodecs.nsi
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.h
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACdecoderdllstuff.h
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeFilter.h
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.h
trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.h
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/speexdecoderdllstuff.h
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeFilter.h
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.h
trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/speexencoderdllstuff.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/stdafx.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeFilter.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.h
trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/theoraencoderdllstuff.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/vorbisdecoderdllstuff.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/VorbisEncodeOutputPin.cpp
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h
trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h
trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.cpp
trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.hpp
trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8decoder/vp8decoder_2005.vcproj
trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8encoder/vp8encoder_2005.vcproj
trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmmux/webmmux_2005.vcproj
trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmsplit/webmsplit_2005.vcproj
trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/ds_guids.h
trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp
trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h
trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj
Log:
Enabled Xiph.Org Vorbis decoder in WebM's libmkvparser.
Vorbis decoder filter can connect to Vorbis Encoder filter (TODO: do the same for Theora, Speex, and, Flac)
Tidied up common types between encoders and decoders.
Modified: trunk/oggdsf/build/NSIS/Release/opencodecs.nsi
===================================================================
--- trunk/oggdsf/build/NSIS/Release/opencodecs.nsi 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/build/NSIS/Release/opencodecs.nsi 2010-06-21 21:11:20 UTC (rev 17302)
@@ -172,7 +172,7 @@
FunctionEnd
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Section "Oggcodecs Core Files" SEC_CORE
+Section "Open Codecs Core Files" SEC_CORE
SectionIn 1 RO
SetShellVarContext all
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -105,19 +105,19 @@
return pNewObject;
}
-sFLACFormatBlock* FLACDecodeFilter::getFLACFormatBlock()
+FLACFORMAT* FLACDecodeFilter::getFLACFormatBlock()
{
return mFLACFormatBlock;
}
void FLACDecodeFilter::setFLACFormatBlock(BYTE* inFormatBlock)
{
delete mFLACFormatBlock;
- mFLACFormatBlock = new sFLACFormatBlock; //Deleted in destructor.
+ mFLACFormatBlock = new FLACFORMAT; //Deleted in destructor.
const unsigned char FLAC_CHANNEL_MASK = 14; //00001110
const unsigned char FLAC_BPS_START_MASK = 1; //00000001
const unsigned char FLAC_BPS_END_MASK = 240; //11110000
- mFLACFormatBlock = new sFLACFormatBlock;
+ mFLACFormatBlock = new FLACFORMAT;
//Fix the format block data... use header version and other version.
//mFLACFormatBlock->FLACVersion = FLACMath::charArrToULong(mCodecHeaders->getPacket(1)->packetData() + 28);
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACDecodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -55,11 +55,11 @@
static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
void setFLACFormatBlock(BYTE* inFormatBlock) ;
- sFLACFormatBlock* getFLACFormatBlock();
+ FLACFORMAT* getFLACFormatBlock();
protected:
//Implemenation of Pue Virtuals from AbstractTransformFilter
virtual bool ConstructPins();
- sFLACFormatBlock* mFLACFormatBlock;
+ FLACFORMAT* mFLACFormatBlock;
};
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACdecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACdecoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACDecoder/FLACdecoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -32,13 +32,9 @@
#pragma once
+#include "common/FlacTypes.h"
+#include "common/OggTypes.h"
-struct sFLACFormatBlock {
- unsigned short numChannels;
- unsigned long numBitsPerSample;
- unsigned long samplesPerSec;
-};
-
#include "AbstractTransformFilter.h"
#include "AbstractTransformInputPin.h"
#include "AbstractTransformOutputPin.h"
@@ -46,32 +42,6 @@
#include "FLACDecodeInputPin.h"
#include "FLACDecodeOutputPin.h"
-
-
-
-// {3376086C-D6F9-4ce4-8B89-33CD570106B5}
-DEFINE_GUID(CLSID_FLACDecodeFilter,
-0x3376086c, 0xd6f9, 0x4ce4, 0x8b, 0x89, 0x33, 0xcd, 0x57, 0x1, 0x6, 0xb5);
-
-//// {1CDC48AC-4C24-4b8b-982B-7007A29D83C4}
-//DEFINE_GUID(FORMAT_FLAC,
-//0x1cdc48ac, 0x4c24, 0x4b8b, 0x98, 0x2b, 0x70, 0x7, 0xa2, 0x9d, 0x83, 0xc4);
-//
-//// {3913F0AB-E7ED-41c4-979B-1D1FDD983C07}
-//DEFINE_GUID(MEDIASUBTYPE_FLAC,
-//0x3913f0ab, 0xe7ed, 0x41c4, 0x97, 0x9b, 0x1d, 0x1f, 0xdd, 0x98, 0x3c, 0x7);
-
-// {60891713-C24F-4767-B6C9-6CA05B3338FC}
-DEFINE_GUID(MEDIATYPE_OggPacketStream,
-0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
-
-// {95388704-162C-42a9-8149-C3577C12AAF9}
-DEFINE_GUID(FORMAT_OggIdentHeader,
-0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
-
-// {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
-DEFINE_GUID(IID_IOggDecoder,
-0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
const REGPINTYPES FLACDecodeOutputTypes = {
&MEDIATYPE_Audio,
&MEDIASUBTYPE_PCM
@@ -108,8 +78,6 @@
}
};
-
-
const REGFILTER2 FLACDecodeFilterReg = {
1,
MERIT_NORMAL,
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -40,7 +40,7 @@
#include "AbstractTransformFilter.h"
//Forward Declarations
-struct sFLACFormatBlock;
+struct FLACFORMAT;
class FLACEncodeInputPin;
class FLACEncodeOutputPin;
@@ -94,6 +94,6 @@
//Implementation from AbstractTransformFilter
virtual bool ConstructPins();
- sFLACFormatBlock mFLACFormatBlock;
+ FLACFORMAT mFLACFormatBlock;
};
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -90,7 +90,7 @@
FLACEncodeFilter* locParentFilter = (FLACEncodeFilter*)mParentFilter; //View only don't delete.
locParentFilter->mFLACFormatBlock.numBitsPerSample = mWaveFormat->wBitsPerSample;
locParentFilter->mFLACFormatBlock.numChannels = mWaveFormat->nChannels;
- locParentFilter->mFLACFormatBlock.sampleRate = mWaveFormat->nSamplesPerSec;
+ locParentFilter->mFLACFormatBlock.samplesPerSec = mWaveFormat->nSamplesPerSec;
mWaveFormat = NULL;
@@ -170,7 +170,7 @@
mFLACEncoderSettings = locSettings;
mFLACEncoderSettings.setAudioParameters( ((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock.numChannels
- , ((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock.sampleRate
+ , ((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock.samplesPerSec
, ((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock.numBitsPerSample);
return AbstractTransformInputPin::CompleteConnect(inReceivePin);
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -54,10 +54,10 @@
HRESULT FLACEncodeOutputPin::CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition)
{
if (inPosition == 0) {
- sFLACFormatBlock* locFLACFormat = (sFLACFormatBlock*)outMediaType->AllocFormatBuffer(sizeof(sFLACFormatBlock));
+ FLACFORMAT* locFLACFormat = (FLACFORMAT*)outMediaType->AllocFormatBuffer(sizeof(FLACFORMAT));
//TODO::: Check for null ?
- memcpy((void*)locFLACFormat, (const void*) &(((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock), sizeof(sFLACFormatBlock));
+ memcpy((void*)locFLACFormat, (const void*) &(((FLACEncodeFilter*)mParentFilter)->mFLACFormatBlock), sizeof(FLACFORMAT));
return S_OK;
} else {
return S_FALSE;
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -35,7 +35,7 @@
#include "AbstractTransformOutputPin.h"
class FLACEncodeFilter;
-struct sFLACFormatBlock;
+struct FLACFORMAT;
class FLACEncodeOutputPin
: public AbstractTransformOutputPin
Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -31,13 +31,8 @@
#pragma once
-struct sFLACFormatBlock {
- unsigned short numChannels;
- unsigned long numBitsPerSample;
- unsigned long sampleRate;
+#include "common/FlacTypes.h"
-};
-
#include "AbstractTransformFilter.h"
#include "AbstractTransformInputPin.h"
#include "AbstractTransformOutputPin.h"
@@ -55,34 +50,6 @@
#endif
#endif
-// {EE66A998-4E5C-4e23-A0F3-97C40D87EC48}
-static const GUID CLSID_PropsFLACEncoder =
-{ 0xee66a998, 0x4e5c, 0x4e23, { 0xa0, 0xf3, 0x97, 0xc4, 0xd, 0x87, 0xec, 0x48 } };
-
-// {DF9C0DC3-1924-4bfe-8DC1-1084453A0F8F}
-static const GUID IID_IFLACEncodeSettings =
-{ 0xdf9c0dc3, 0x1924, 0x4bfe, { 0x8d, 0xc1, 0x10, 0x84, 0x45, 0x3a, 0xf, 0x8f } };
-
-
-
-//// {3913F0AB-E7ED-41c4-979B-1D1FDD983C07}
-//DEFINE_GUID(MEDIASUBTYPE_FLAC,
-//0x3913f0ab, 0xe7ed, 0x41c4, 0x97, 0x9b, 0x1d, 0x1f, 0xdd, 0x98, 0x3c, 0x7);
-
-// {2C409DB0-95BF-47ba-B0F5-587256F1EDCF}
-DEFINE_GUID(MEDIASUBTYPE_OggFLAC_1_0,
-0x2c409db0, 0x95bf, 0x47ba, 0xb0, 0xf5, 0x58, 0x72, 0x56, 0xf1, 0xed, 0xcf);
-
-// {77E3A6A3-2A24-43fa-B929-00747E4B560B}
-DEFINE_GUID(CLSID_FLACEncodeFilter,
-0x77e3a6a3, 0x2a24, 0x43fa, 0xb9, 0x29, 0x0, 0x74, 0x7e, 0x4b, 0x56, 0xb);
-
-
-// {1CDC48AC-4C24-4b8b-982B-7007A29D83C4}
-DEFINE_GUID(FORMAT_FLAC,
-0x1cdc48ac, 0x4c24, 0x4b8b, 0x98, 0x2b, 0x70, 0x7, 0xa2, 0x9d, 0x83, 0xc4);
-
-
const REGPINTYPES FLACEncodeInputTypes = {
&MEDIATYPE_Audio,
&MEDIASUBTYPE_PCM
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -187,14 +187,14 @@
//QUERY::: Do we need these ? Aren't we all friedns here ??
//RESULT::: Keep them, set function must be kept... get could go... but keep for consistency
-sSpeexFormatBlock* SpeexDecodeFilter::getSpeexFormatBlock()
+SPEEXFORMAT* SpeexDecodeFilter::getSpeexFormatBlock()
{
return mSpeexFormatInfo;
}
void SpeexDecodeFilter::setSpeexFormat(BYTE* inFormatBlock)
{
delete mSpeexFormatInfo;
- mSpeexFormatInfo = new sSpeexFormatBlock;
+ mSpeexFormatInfo = new SPEEXFORMAT;
mSpeexFormatInfo->speexVersion = iLE_Math::charArrToULong(inFormatBlock + 28);
mSpeexFormatInfo->numChannels = iLE_Math::charArrToULong(inFormatBlock + 48);
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -37,7 +37,7 @@
#include <libilliCore/iLE_Math.h>
//Forward Declarations
-struct sSpeexFormatBlock;
+struct SPEEXFORMAT;
class SpeexDecodeInputPin;
class SpeexDecodeOutputPin;
@@ -70,7 +70,7 @@
//TODO::: Do we need these ? Aren't they all friends ?? Should set be public?
///Gets the speex format block
- virtual sSpeexFormatBlock* getSpeexFormatBlock();
+ virtual SPEEXFORMAT* getSpeexFormatBlock();
///Sets the speex format block
virtual void setSpeexFormat(BYTE* inFormatBlock);
@@ -84,5 +84,5 @@
virtual bool ConstructPins();
//Format Block
- sSpeexFormatBlock* mSpeexFormatInfo;
+ SPEEXFORMAT* mSpeexFormatInfo;
};
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/speexdecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/speexdecoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/speexdecoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -32,32 +32,5 @@
#pragma once
-// {7605E26C-DE38-4b82-ADD8-FE2568CC0B25}
-DEFINE_GUID(CLSID_SpeexDecodeFilter,
-0x7605e26c, 0xde38, 0x4b82, 0xad, 0xd8, 0xfe, 0x25, 0x68, 0xcc, 0xb, 0x25);
-
-// {60891713-C24F-4767-B6C9-6CA05B3338FC}
-DEFINE_GUID(MEDIATYPE_OggPacketStream,
-0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
-
-// {95388704-162C-42a9-8149-C3577C12AAF9}
-DEFINE_GUID(FORMAT_OggIdentHeader,
-0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
-
-// {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
-DEFINE_GUID(IID_IOggDecoder,
-0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
-
-// {83D7F506-53ED-4f15-B6D8-7D8E9E72A918}
-DEFINE_GUID(IID_IOggOutputPin,
-0x83d7f506, 0x53ed, 0x4f15, 0xb6, 0xd8, 0x7d, 0x8e, 0x9e, 0x72, 0xa9, 0x18);
-
-struct sSpeexFormatBlock
-{
- unsigned long speexVersion;
- unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned long numChannels;
-};
+#include "common/SpeexTypes.h"
+#include "common/OggTypes.h"
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -40,7 +40,7 @@
#include "AbstractTransformFilter.h"
//Forward Declarations
-struct sSpeexFormatBlock;
+struct SPEEXFORMAT;
class SpeexEncodeInputPin;
class SpeexEncodeOutputPin;
@@ -90,6 +90,6 @@
virtual bool ConstructPins();
//Member data
- sSpeexFormatBlock mSpeexFormatBlock;
+ SPEEXFORMAT mSpeexFormatBlock;
};
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -52,10 +52,10 @@
HRESULT SpeexEncodeOutputPin::CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition)
{
if (inPosition == 0) {
- sSpeexFormatBlock* locSpeexFormat = (sSpeexFormatBlock*)outMediaType->AllocFormatBuffer(sizeof(sSpeexFormatBlock));
+ SPEEXFORMAT* locSpeexFormat = (SPEEXFORMAT*)outMediaType->AllocFormatBuffer(sizeof(SPEEXFORMAT));
//TODO::: Check for null ?
- memcpy((void*)locSpeexFormat, (const void*) &(((SpeexEncodeFilter*)mParentFilter)->mSpeexFormatBlock), sizeof(sSpeexFormatBlock));
+ memcpy((void*)locSpeexFormat, (const void*) &(((SpeexEncodeFilter*)mParentFilter)->mSpeexFormatBlock), sizeof(SPEEXFORMAT));
return S_OK;
} else {
return S_FALSE;
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -36,7 +36,7 @@
#include "AbstractTransformOutputPin.h"
class SpeexEncodeFilter;
-struct sSpeexFormatBlock;
+struct SPEEXFORMAT;
class SpeexEncodeOutputPin
: public AbstractTransformOutputPin
Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/speexencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/speexencoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/speexencoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -35,15 +35,8 @@
#include <pullpin.h>
#include <initguid.h>
-struct sSpeexFormatBlock {
- unsigned long speexVersion;
- unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned long numChannels;
+#include "common/SpeexTypes.h"
-};
#include "AbstractTransformFilter.h"
#include "AbstractTransformInputPin.h"
#include "AbstractTransformOutputPin.h"
@@ -61,26 +54,6 @@
#endif
#endif
-// {ED79AEC0-68AD-4be6-B06E-B4D3C8101624}
-DEFINE_GUID(CLSID_PropsSpeexEncoder,
-0xed79aec0, 0x68ad, 0x4be6, 0xb0, 0x6e, 0xb4, 0xd3, 0xc8, 0x10, 0x16, 0x24);
-
-// {479038D2-57FF-41ee-B397-FB98199BF1E8}
-DEFINE_GUID(IID_ISpeexEncodeSettings,
-0x479038d2, 0x57ff, 0x41ee, 0xb3, 0x97, 0xfb, 0x98, 0x19, 0x9b, 0xf1, 0xe8);
-
-
-// {7036C2FE-A209-464c-97AB-95B9260EDBF7}
-DEFINE_GUID(CLSID_SpeexEncodeFilter,
-0x7036c2fe, 0xa209, 0x464c, 0x97, 0xab, 0x95, 0xb9, 0x26, 0xe, 0xdb, 0xf7);
-
-// {25A9729D-12F6-420e-BD53-1D631DC217DF}
-DEFINE_GUID(MEDIASUBTYPE_Speex,
-0x25a9729d, 0x12f6, 0x420e, 0xbd, 0x53, 0x1d, 0x63, 0x1d, 0xc2, 0x17, 0xdf);
-
-// {78701A27-EFB5-4157-9553-38A7854E3E81}
-DEFINE_GUID(FORMAT_Speex,
-0x78701a27, 0xefb5, 0x4157, 0x95, 0x53, 0x38, 0xa7, 0x85, 0x4e, 0x3e, 0x81);
//This structure defines the type of input we accept on the input pin... Stream/Annodex
const REGPINTYPES SpeexEncodeInputTypes = {
@@ -120,8 +93,6 @@
}
};
-
-
const REGFILTER2 SpeexEncodeFilterReg = {
1,
MERIT_DO_NOT_USE,
@@ -129,5 +100,3 @@
SpeexEncodePinReg
};
-
-
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -1157,7 +1157,7 @@
// return FALSE;
//}
-sTheoraFormatBlock* TheoraDecodeFilter::GetTheoraFormatBlock()
+THEORAFORMAT* TheoraDecodeFilter::GetTheoraFormatBlock()
{
return m_theoraFormatInfo;
}
@@ -1165,7 +1165,7 @@
void TheoraDecodeFilter::SetTheoraFormat(BYTE* inFormatBlock)
{
delete m_theoraFormatInfo;
- m_theoraFormatInfo = new sTheoraFormatBlock; //Deelted in destructor.
+ m_theoraFormatInfo = new THEORAFORMAT; //Deelted in destructor.
// TODO: replace code blow with th_decode_headerin
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/TheoraDecodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -87,7 +87,7 @@
virtual void ResetFrameCount();
//Helpers
- sTheoraFormatBlock* GetTheoraFormatBlock();
+ THEORAFORMAT* GetTheoraFormatBlock();
void SetTheoraFormat(BYTE* inFormatBlock);
HRESULT CheckOutputType(const CMediaType* inMediaType);
@@ -153,5 +153,5 @@
__int64 m_lastSeenStartGranPos;
//Format Block
- sTheoraFormatBlock* m_theoraFormatInfo;
+ THEORAFORMAT* m_theoraFormatInfo;
};
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/stdafx.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/stdafx.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -48,3 +48,7 @@
#include <atlbase.h>
#include <atlcom.h>
+
+#include <streams.h>
+#include <pullpin.h>
+#include <dvdmedia.h>
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecodedllstuff.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -30,6 +30,7 @@
//===========================================================================
#include "stdafx.h"
+#include <initguid.h>
#include "Theoradecoderdllstuff.h"
#include "common/util.h"
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraDecoder/theoradecoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -31,57 +31,5 @@
#pragma once
-#include <streams.h>
-#include <pullpin.h>
-#include <initguid.h>
-#include <dvdmedia.h>
-
-#ifndef THEORADECODER_DLL
- #define LIBOOOGG_API
-#else
- #ifdef LIBOOOGG_EXPORTS
- #define LIBOOOGG_API __declspec(dllexport)
- #else
- #define LIBOOOGG_API __declspec(dllimport)
- #endif
-#endif
-
-// TheoraDecodeFilter {05187161-5C36-4324-A734-22BF37509F2D}
-static const GUID CLSID_TheoraDecodeFilter =
-{ 0x5187161, 0x5c36, 0x4324, { 0xa7, 0x34, 0x22, 0xbf, 0x37, 0x50, 0x9f, 0x2d } };
-
-// OggPacketStream {60891713-C24F-4767-B6C9-6CA05B3338FC}
-static const GUID MEDIATYPE_OggPacketStream =
-{ 0x60891713, 0xc24f, 0x4767, { 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc } };
-
-// OggIdentHeader {95388704-162C-42a9-8149-C3577C12AAF9}
-static const GUID FORMAT_OggIdentHeader =
-{ 0x95388704, 0x162c, 0x42a9, { 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9 } };
-
-// IOggDecoder {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
-static const GUID IID_IOggDecoder =
-{ 0x43f0f818, 0x10b0, 0x4c86, { 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62 } };
-
-// IOggOutputPin {83D7F506-53ED-4f15-B6D8-7D8E9E72A918}
-static const GUID IID_IOggOutputPin =
-{ 0x83d7f506, 0x53ed, 0x4f15, { 0xb6, 0xd8, 0x7d, 0x8e, 0x9e, 0x72, 0xa9, 0x18 } };
-
-struct sTheoraFormatBlock
-{
- unsigned long theoraVersion;
- unsigned long outerFrameWidth;
- unsigned long outerFrameHeight;
- unsigned long pictureWidth;
- unsigned long pictureHeight;
- unsigned long frameRateNumerator;
- unsigned long frameRateDenominator;
- unsigned long aspectNumerator;
- unsigned long aspectDenominator;
- unsigned long maxKeyframeInterval;
- unsigned long targetBitrate;
- unsigned char targetQuality;
- unsigned char xOffset;
- unsigned char yOffset;
- unsigned char colourSpace;
- unsigned char pixelFormat;
-};
+#include "common/OggTypes.h"
+#include "common/TheoraTypes.h"
\ No newline at end of file
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -37,7 +37,7 @@
//Forward Declarations
-//struct sTheoraFormatBlock;
+//struct THEORAFORMAT;
class TheoraEncodeInputPin;
class TheoraEncodeOutputPin;
@@ -109,7 +109,7 @@
virtual bool ConstructPins();
//Member data
- sTheoraFormatBlock mTheoraFormatBlock;
+ THEORAFORMAT mTheoraFormatBlock;
bool mUsingQualityMode;
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -43,20 +43,20 @@
//bool TheoraEncodeOutputPin::FillFormatBuffer(BYTE* inFormatBuffer) {
// TheoraEncodeFilter* locParentFilter = (TheoraEncodeFilter*)mParentFilter;
-// memcpy((void*)inFormatBuffer, (const void*) &(locParentFilter->mTheoraFormatBlock), sizeof(sTheoraFormatBlock));
+// memcpy((void*)inFormatBuffer, (const void*) &(locParentFilter->mTheoraFormatBlock), sizeof(THEORAFORMAT));
// return true;
//}
//unsigned long TheoraEncodeOutputPin::FormatBufferSize() {
-// return sizeof(sTheoraFormatBlock);
+// return sizeof(THEORAFORMAT);
//}
HRESULT TheoraEncodeOutputPin::CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition)
{
if (inPosition == 0) {
- sTheoraFormatBlock* locTheoraFormat = (sTheoraFormatBlock*)outMediaType->AllocFormatBuffer(sizeof(sTheoraFormatBlock));
+ THEORAFORMAT* locTheoraFormat = (THEORAFORMAT*)outMediaType->AllocFormatBuffer(sizeof(THEORAFORMAT));
//TODO::: Check for null ?
- memcpy((void*)locTheoraFormat, (const void*) &(((TheoraEncodeFilter*)mParentFilter)->mTheoraFormatBlock), sizeof(sTheoraFormatBlock));
+ memcpy((void*)locTheoraFormat, (const void*) &(((TheoraEncodeFilter*)mParentFilter)->mTheoraFormatBlock), sizeof(THEORAFORMAT));
return S_OK;
} else {
return S_FALSE;
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/TheoraEncodeOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -35,7 +35,7 @@
class TheoraEncodeFilter;
-struct sTheoraFormatBlock;
+struct THEORAFORMAT;
class TheoraEncodeOutputPin
: public AbstractTransformOutputPin
Modified: trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/theoraencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/theoraencoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/theora/filters/dsfTheoraEncoder/theoraencoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -48,26 +48,8 @@
#endif
#endif
-// {121EA765-6D3F-4519-9686-A0BA6E5281A2}
-DEFINE_GUID(CLSID_PropsTheoraEncoder,
-0x121ea765, 0x6d3f, 0x4519, 0x96, 0x86, 0xa0, 0xba, 0x6e, 0x52, 0x81, 0xa2);
+#include "common/TheoraTypes.h"
-// {4F063B3A-B397-4c22-AFF4-2F8DB96D292A}
-DEFINE_GUID(IID_ITheoraEncodeSettings,
-0x4f063b3a, 0xb397, 0x4c22, 0xaf, 0xf4, 0x2f, 0x8d, 0xb9, 0x6d, 0x29, 0x2a);
-
-// {5C769985-C3E1-4f95-BEE7-1101C465F5FC}
-DEFINE_GUID(CLSID_TheoraEncodeFilter,
-0x5c769985, 0xc3e1, 0x4f95, 0xbe, 0xe7, 0x11, 0x1, 0xc4, 0x65, 0xf5, 0xfc);
-
-// {D124B2B1-8968-4ae8-B288-FE16EA34B0CE}
-DEFINE_GUID(MEDIASUBTYPE_Theora,
-0xd124b2b1, 0x8968, 0x4ae8, 0xb2, 0x88, 0xfe, 0x16, 0xea, 0x34, 0xb0, 0xce);
-
-// {A99F116C-DFFA-412c-95DE-725F99874826}
-DEFINE_GUID(FORMAT_Theora,
-0xa99f116c, 0xdffa, 0x412c, 0x95, 0xde, 0x72, 0x5f, 0x99, 0x87, 0x48, 0x26);
-
const REGPINTYPES TheoraEncodeInputTypes = {
&MEDIATYPE_Video,
&MEDIASUBTYPE_YV12
@@ -115,21 +97,3 @@
TheoraEncodePinReg
};
-
-struct sTheoraFormatBlock {
- unsigned long theoraVersion;
- unsigned long outerFrameWidth;
- unsigned long outerFrameHeight;
- unsigned long pictureWidth;
- unsigned long pictureHeight;
- unsigned long frameRateNumerator;
- unsigned long frameRateDenominator;
- unsigned long aspectNumerator;
- unsigned long aspectDenominator;
- unsigned long maxKeyframeInterval;
- unsigned long targetBitrate;
- unsigned char targetQuality;
- unsigned char xOffset;
- unsigned char yOffset;
- unsigned char colourSpace;
-};
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -1,6 +1,6 @@
//===========================================================================
//Copyright (C) 2003-2006 Zentaro Kavanagh
-//Copyrithg (C) 2009 Cristian Adam
+//Copyright (C) 2009-2010 Cristian Adam
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
@@ -75,7 +75,7 @@
FALSE, //Cannot have more than one instance of this pin
&GUID_NULL, //Connects to filter (obsoleted)
NULL, //Connects to pin (obsoleted)
- 1, //upport two media type
+ 1, //Support two media type
&m_inputMediaTypes //Pointer to media type (Audio/Vorbis or Audio/Speex)
} ,
@@ -108,15 +108,13 @@
}
#endif
-//*************************************************************************************************
-VorbisDecodeFilter::VorbisDecodeFilter()
- : AbstractTransformFilter(NAME("Vorbis Decoder"), CLSID_VorbisDecodeFilter)
- , mVorbisFormatInfo(NULL)
+VorbisDecodeFilter::VorbisDecodeFilter() :
+AbstractTransformFilter(NAME("Vorbis Decoder"), CLSID_VorbisDecodeFilter),
+mVorbisFormatInfo(NULL)
{
LOG(logINFO) << L"VorbisDecodeFilter object created!" << std::endl;
- bool locWasConstructed = ConstructPins();
- //TODO::: Error check !
+ ConstructPins();
}
STDMETHODIMP VorbisDecodeFilter::NonDelegatingQueryInterface(REFIID riid, void **ppv)
@@ -135,48 +133,53 @@
// *outAllowTranscode = VARIANT_TRUE;
// return S_OK;
//}
+
bool VorbisDecodeFilter::ConstructPins()
{
- //Vector to hold our set of media types we want to accept.
- vector<CMediaType*> locAcceptableTypes;
+ // Vector to hold our set of media types we want to accept.
+ MediaTypesList acceptableTypes;
- //Setup the media types for the output pin.
- CMediaType* locAcceptMediaType = new CMediaType(&MEDIATYPE_Audio); //Deleted in pin destructor
- locAcceptMediaType->subtype = MEDIASUBTYPE_PCM;
- locAcceptMediaType->formattype = FORMAT_WaveFormatEx;
-
- locAcceptableTypes.push_back(locAcceptMediaType);
+ // Setup the media types for the output pin, media types are deleted in pin destructor
+ CMediaType* mediaType = new CMediaType(&MEDIATYPE_Audio);
+ mediaType->subtype = MEDIASUBTYPE_PCM;
+ mediaType->formattype = FORMAT_WaveFormatEx;
+ acceptableTypes.push_back(mediaType);
- //Second one the same type... they are actually different one is the extensible format. See CreateAndFill
- locAcceptMediaType = new CMediaType(&MEDIATYPE_Audio); //Deleted in pin destructor
- locAcceptMediaType->subtype = MEDIASUBTYPE_PCM;
- locAcceptMediaType->formattype = FORMAT_WaveFormatEx;
-
- locAcceptableTypes.push_back(locAcceptMediaType);
+ //Second one the same type... they are actually different one is the extensible
+ // format. See CreateAndFill
+ mediaType = new CMediaType(&MEDIATYPE_Audio);
+ mediaType->subtype = MEDIASUBTYPE_PCM;
+ mediaType->formattype = FORMAT_WaveFormatEx;
+ acceptableTypes.push_back(mediaType);
- //Output pin must be done first because it's passed to the input pin.
- mOutputPin = new VorbisDecodeOutputPin(this, m_pLock, locAcceptableTypes); //Deleted in base class destructor
+ // Output pin must be done first because it's passed to the input pin.
+ // Deleted in base class destructor
+ mOutputPin = new VorbisDecodeOutputPin(this, m_pLock, acceptableTypes);
- //Clear out the vector, now we've already passed it to the output pin.
- locAcceptableTypes.clear();
+ // Clear out the vector, now we've already passed it to the output pin.
+ acceptableTypes.clear();
//Setup the media Types for the input pin.
- locAcceptMediaType = NULL;
- locAcceptMediaType = new CMediaType(&MEDIATYPE_OggPacketStream); //Deleted by pin
+ // OggPacketStream received from Ogg Demuxer filter
+ mediaType = new CMediaType(&MEDIATYPE_OggPacketStream);
+ mediaType->subtype = MEDIASUBTYPE_None;
+ mediaType->formattype = FORMAT_OggIdentHeader;
+ acceptableTypes.push_back(mediaType);
- locAcceptMediaType->subtype = MEDIASUBTYPE_None;
- locAcceptMediaType->formattype = FORMAT_OggIdentHeader;
-
- locAcceptableTypes.push_back(locAcceptMediaType);
+ // Vorbis stream received from Vorbis Encoder
+ mediaType = new CMediaType(&MEDIATYPE_Audio);
+ mediaType->subtype = MEDIASUBTYPE_Vorbis;
+ mediaType->formattype = FORMAT_Vorbis;
+ acceptableTypes.push_back(mediaType);
- mInputPin = new VorbisDecodeInputPin(this, m_pLock, mOutputPin, locAcceptableTypes); //Deleted in base class filter destructor.
+ //Deleted in base class filter destructor.
+ mInputPin = new VorbisDecodeInputPin(this, m_pLock, mOutputPin, acceptableTypes);
return true;
}
VorbisDecodeFilter::~VorbisDecodeFilter(void)
{
LOG(logINFO) << L"VorbisDecodeFilter destroyed!" << std::endl;
-
delete mVorbisFormatInfo;
}
@@ -192,17 +195,20 @@
return pNewObject;
}
-//QUERY::: Do we need these ? Aren't we all friedns here ??
-//RESULT::: Keep them, set function must be kept... get could go... but keep for consistency
-sVorbisFormatBlock* VorbisDecodeFilter::getVorbisFormatBlock()
+VORBISFORMAT* VorbisDecodeFilter::getVorbisFormatBlock()
{
return mVorbisFormatInfo;
}
+
void VorbisDecodeFilter::setVorbisFormat(BYTE* inFormatBlock)
{
+ if (!inFormatBlock)
+ {
+ return;
+ }
+
delete mVorbisFormatInfo;
- mVorbisFormatInfo = new sVorbisFormatBlock; //Deleted in destructor.
- //*mVorbisFormatInfo = *inFormatBlock;
+ mVorbisFormatInfo = new VORBISFORMAT;
mVorbisFormatInfo->vorbisVersion = iLE_Math::charArrToULong(inFormatBlock + 7);
mVorbisFormatInfo->numChannels = inFormatBlock[11];
@@ -211,6 +217,25 @@
mVorbisFormatInfo->avgBitsPerSec = iLE_Math::charArrToULong(inFormatBlock + 20);
mVorbisFormatInfo->minBitsPerSec = iLE_Math::charArrToULong(inFormatBlock + 24);
+ PrintVorbisFormatInfo();
+}
+
+void VorbisDecodeFilter::setVorbisFormat(VORBISFORMAT* vorbisFormat)
+{
+ if (!vorbisFormat)
+ {
+ return;
+ }
+
+ delete mVorbisFormatInfo;
+ mVorbisFormatInfo = new VORBISFORMAT;
+
+ *mVorbisFormatInfo = *vorbisFormat;
+ PrintVorbisFormatInfo();
+}
+
+void VorbisDecodeFilter::PrintVorbisFormatInfo()
+{
LOG(logINFO) << "Vorbis Version: " << mVorbisFormatInfo->vorbisVersion
<< " Channels: " << mVorbisFormatInfo->numChannels
<< " SamplesPerSec: " << mVorbisFormatInfo->samplesPerSec
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -1,6 +1,6 @@
//===========================================================================
//Copyright (C) 2003-2006 Zentaro Kavanagh
-//Copyright (C) 2009 Cristian Adam
+//Copyright (C) 2009-2010 Cristian Adam
//
//Redistribution and use in source and binary forms, with or without
//modification, are permitted provided that the following conditions
@@ -38,15 +38,13 @@
//#include "wmpservices.h"
//Forward Declarations
-struct sVorbisFormatBlock;
+struct VORBISFORMAT;
class VorbisDecodeInputPin;
class VorbisDecodeOutputPin;
//Class Interface
-class VorbisDecodeFilter
- //Base Classes
- : public AbstractTransformFilter
- //, public IWMPTranscodePolicy
+class VorbisDecodeFilter: public AbstractTransformFilter
+ //, public IWMPTranscodePolicy
{
public:
//Friends
@@ -54,8 +52,8 @@
friend class VorbisDecodeOutputPin;
//Constructors and Destructors
- VorbisDecodeFilter(void);
- virtual ~VorbisDecodeFilter(void);
+ VorbisDecodeFilter();
+ virtual ~VorbisDecodeFilter();
static const wchar_t* NAME;
static const AMOVIESETUP_MEDIATYPE m_inputMediaTypes;
@@ -69,13 +67,12 @@
//IWMPTranscodePolicy interface -- it's documented... but it doesn't really exist.
//HRESULT allowTranscode(VARIANT_BOOL* outAllowTranscode);
-
///COM CreateInstance Function
static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
- //FIX::: Do we need these ? Aren't they all friends ??
- virtual sVorbisFormatBlock* getVorbisFormatBlock();
+ virtual VORBISFORMAT* getVorbisFormatBlock();
virtual void setVorbisFormat(BYTE* inFormatBlock);
+ virtual void setVorbisFormat(VORBISFORMAT* vorbisFormat);
#ifdef WINCE
virtual LPAMOVIESETUP_FILTER GetSetupData();
@@ -85,8 +82,10 @@
//VIRTUAL FUNCTIONS - AbstractTransformFilter
virtual bool ConstructPins();
+ void PrintVorbisFormatInfo();
+
//Format Block
- sVorbisFormatBlock* mVorbisFormatInfo;
+ VORBISFORMAT* mVorbisFormatInfo;
static const bool USE_CORRECT_VORBIS_CHANNEL_MAPPING = true;
};
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -118,108 +118,107 @@
{
CAutoLock locLock(mStreamLock);
- HRESULT hr = CheckStreaming();
+ HRESULT hr = CheckStreaming();
- if (hr != S_OK)
+ if (hr != S_OK)
{
//Not streaming - Bail out.
return S_FALSE;
}
- BYTE* buffer = NULL;
- hr = inSample->GetPointer(&buffer);
+ BYTE* buffer = NULL;
+ hr = inSample->GetPointer(&buffer);
- if (hr != S_OK)
+ if (hr != S_OK)
{
LOG(logERROR) << __FUNCTIONW__ << " inSample->GetPointer failed, error code: 0x" << std::hex << hr;
- return hr;
- }
+ return hr;
+ }
- REFERENCE_TIME tStart = -1;
- REFERENCE_TIME tStop = -1;
- __int64 sampleDuration = 0;
- inSample->GetTime(&tStart, &tStop);
+ REFERENCE_TIME tStart = -1;
+ REFERENCE_TIME tStop = -1;
+ __int64 sampleDuration = 0;
+ inSample->GetTime(&tStart, &tStop);
- hr = TransformData(buffer, inSample->GetActualDataLength());
- if (hr != S_OK)
+ hr = TransformData(buffer, inSample->GetActualDataLength());
+ if (hr != S_OK)
{
- return S_FALSE;
- }
- if (tStop > 0)
+ return S_FALSE;
+ }
+ if (tStop > 0)
{
- //Can dump it all downstream now
- IMediaSample* sample;
- unsigned long bytesCopied = 0;
- unsigned long bytesToCopy = 0;
+ //Can dump it all downstream now
+ IMediaSample* sample;
+ unsigned long bytesCopied = 0;
+ unsigned long bytesToCopy = 0;
- tStart = convertGranuleToTime(tStop) - (((mDecodedByteCount / mFrameSize) * UNITS) / mSampleRate);
-
- REFERENCE_TIME globalOffset = 0;
- //Handle stream offsetting
- if (!mSentStreamOffset && (mOggOutputPinInterface != NULL))
+ REFERENCE_TIME globalOffset = 0;
+ //Handle stream offsetting
+ if (!mSentStreamOffset && (mOggOutputPinInterface != NULL))
{
- mOggOutputPinInterface->notifyStreamBaseTime(tStart);
- mSentStreamOffset = true;
- }
+ mOggOutputPinInterface->notifyStreamBaseTime(tStart);
+ mSentStreamOffset = true;
+ }
- if (mOggOutputPinInterface != NULL)
+ if (mOggOutputPinInterface != NULL)
{
- globalOffset = mOggOutputPinInterface->getGlobalBaseTime();
- }
+ tStart = convertGranuleToTime(tStop) - (((mDecodedByteCount / mFrameSize) * UNITS) / mSampleRate);
+ globalOffset = mOggOutputPinInterface->getGlobalBaseTime();
+ }
- do
+ do
{
- HRESULT hr = mOutputPin->GetDeliveryBuffer(&sample, NULL, NULL, NULL);
- if (hr != S_OK)
+ HRESULT hr = mOutputPin->GetDeliveryBuffer(&sample, NULL, NULL, NULL);
+ if (hr != S_OK)
{
- return hr;
- }
+ return hr;
+ }
- BYTE* locBuffer = NULL;
- hr = sample->GetPointer(&locBuffer);
-
- if (hr != S_OK)
+ BYTE* locBuffer = NULL;
+ hr = sample->GetPointer(&locBuffer);
+
+ if (hr != S_OK)
{
- return hr;
- }
+ return hr;
+ }
LOG(logDEBUG4) << __FUNCTIONW__ << " Sample Size: " << sample->GetSize();
- bytesToCopy = sample->GetSize();
-
+ bytesToCopy = sample->GetSize();
+
if (mDecodedByteCount - bytesCopied < sample->GetSize())
{
bytesToCopy = mDecodedByteCount - bytesCopied;
}
LOG(logDEBUG4) << __FUNCTIONW__ << " Bytes to copy: " << bytesToCopy;
- LOG(logDEBUG4) << __FUNCTIONW__ << " Actual Buffer count = " << mOutputPin->actualBufferCount();
- //bytesCopied += bytesToCopy;
+ LOG(logDEBUG4) << __FUNCTIONW__ << " Actual Buffer count = " << mOutputPin->actualBufferCount();
+ //bytesCopied += bytesToCopy;
- sampleDuration = (((bytesToCopy/mFrameSize) * UNITS) / mSampleRate);
- tStop = tStart + sampleDuration;
+ sampleDuration = (((bytesToCopy/mFrameSize) * UNITS) / mSampleRate);
+ tStop = tStart + sampleDuration;
- //Adjust the time stamps for rate and seeking
- REFERENCE_TIME adjustedStart = (tStart * RATE_DENOMINATOR) / mRateNumerator;
- REFERENCE_TIME adjustedStop = (tStop * RATE_DENOMINATOR) / mRateNumerator;
- adjustedStart -= (m_tStart + globalOffset);
- adjustedStop -= (m_tStart + globalOffset);
+ //Adjust the time stamps for rate and seeking
+ REFERENCE_TIME adjustedStart = (tStart * RATE_DENOMINATOR) / mRateNumerator;
+ REFERENCE_TIME adjustedStop = (tStop * RATE_DENOMINATOR) / mRateNumerator;
+ adjustedStart -= (m_tStart + globalOffset);
+ adjustedStop -= (m_tStart + globalOffset);
- __int64 seekStripOffset = 0;
- if (adjustedStop < 0)
+ __int64 seekStripOffset = 0;
+ if (adjustedStop < 0)
{
- sample->Release();
- }
+ sample->Release();
+ }
else
{
- if (adjustedStart < 0)
+ if (adjustedStart < 0)
{
- seekStripOffset = (-adjustedStart) * mSampleRate;
- seekStripOffset *= mFrameSize;
- seekStripOffset /= UNITS;
- seekStripOffset += (mFrameSize - (seekStripOffset % mFrameSize));
- __int64 strippedDuration = (((seekStripOffset/mFrameSize) * UNITS) / mSampleRate);
- adjustedStart += strippedDuration;
- }
+ seekStripOffset = (-adjustedStart) * mSampleRate;
+ seekStripOffset *= mFrameSize;
+ seekStripOffset /= UNITS;
+ seekStripOffset += (mFrameSize - (seekStripOffset % mFrameSize));
+ __int64 strippedDuration = (((seekStripOffset/mFrameSize) * UNITS) / mSampleRate);
+ adjustedStart += strippedDuration;
+ }
LOG(logDEBUG4) << __FUNCTIONW__ << " Seek strip offset: " << seekStripOffset;
@@ -229,37 +228,37 @@
}
else
{
- //memcpy((void*)locBuffer, (const void*)&mDecodedBuffer[bytesCopied + seekStripOffset], bytesToCopy - seekStripOffset);
+ //memcpy((void*)locBuffer, (const void*)&mDecodedBuffer[bytesCopied + seekStripOffset], bytesToCopy - seekStripOffset);
reorderChannels(locBuffer, &mDecodedBuffer[bytesCopied + seekStripOffset], bytesToCopy - seekStripOffset);
- sample->SetTime(&adjustedStart, &adjustedStop);
- sample->SetMediaTime(&tStart, &tStop);
- sample->SetSyncPoint(TRUE);
- sample->SetActualDataLength(bytesToCopy - seekStripOffset);
- hr = ((VorbisDecodeOutputPin*)(mOutputPin))->mDataQueue->Receive(sample);
- if (hr != S_OK)
+ sample->SetTime(&adjustedStart, &adjustedStop);
+ sample->SetMediaTime(&tStart, &tStop);
+ sample->SetSyncPoint(TRUE);
+ sample->SetActualDataLength(bytesToCopy - seekStripOffset);
+ hr = ((VorbisDecodeOutputPin*)(mOutputPin))->mDataQueue->Receive(sample);
+ if (hr != S_OK)
{
- return hr;
- }
- tStart += sampleDuration;
+ return hr;
+ }
+ tStart += sampleDuration;
}
- }
- bytesCopied += bytesToCopy;
+ }
+ bytesCopied += bytesToCopy;
-
- } while(bytesCopied < mDecodedByteCount);
- mDecodedByteCount = 0;
-
- }
- return S_OK;
+ } while(bytesCopied < mDecodedByteCount);
+
+ mDecodedByteCount = 0;
+
+ }
+ return S_OK;
}
void VorbisDecodeInputPin::reorderChannels(unsigned char* inDestBuffer, const unsigned char* inSourceBuffer, unsigned long inNumBytes)
{
//memcpy((void*)locBuffer, (const void*)&mDecodedBuffer[bytesCopied + seekStripOffset], bytesToCopy - seekStripOffset);
- if (((VorbisDecodeFilter*)m_pFilter)->USE_CORRECT_VORBIS_CHANNEL_MAPPING &&
+ if (GetFilter()->USE_CORRECT_VORBIS_CHANNEL_MAPPING &&
(mNumChannels == 6 || mNumChannels == 3 || mNumChannels == 5))
{
//We only have to reorder the channels if we are using the extended format, we have declared that we want to map correctly
@@ -334,15 +333,28 @@
return S_OK;
}
+VorbisDecodeFilter* VorbisDecodeInputPin::GetFilter()
+{
+ return static_cast<VorbisDecodeFilter*>(mParentFilter);
+}
HRESULT VorbisDecodeInputPin::SetMediaType(const CMediaType* inMediaType)
{
//FIX:::Error checking
-
if (CheckMediaType(inMediaType) == S_OK)
{
- ((VorbisDecodeFilter*)mParentFilter)->setVorbisFormat(inMediaType->pbFormat);
- LOG(logDEBUG) << "Set media type";
+ if (inMediaType->majortype == MEDIATYPE_OggPacketStream &&
+ inMediaType->formattype == FORMAT_OggIdentHeader &&
+ inMediaType->cbFormat == VORBIS_IDENT_HEADER_SIZE)
+ {
+ GetFilter()->setVorbisFormat(inMediaType->pbFormat);
+ }
+ else if (inMediaType->majortype == MEDIATYPE_Audio &&
+ inMediaType->subtype == MEDIASUBTYPE_Vorbis &&
+ inMediaType->formattype == FORMAT_Vorbis)
+ {
+ GetFilter()->setVorbisFormat(reinterpret_cast<VORBISFORMAT*>(inMediaType->pbFormat));
+ }
}
else
{
@@ -355,19 +367,21 @@
{
if (AbstractTransformInputPin::CheckMediaType(inMediaType) == S_OK)
{
- if (inMediaType->cbFormat == VORBIS_IDENT_HEADER_SIZE)
+ if (inMediaType->majortype == MEDIATYPE_OggPacketStream &&
+ inMediaType->formattype == FORMAT_OggIdentHeader &&
+ inMediaType->cbFormat == VORBIS_IDENT_HEADER_SIZE)
{
- if (strncmp((char*)inMediaType->pbFormat, "\001vorbis", 7) == 0)
+ if (strncmp((char*)inMediaType->pbFormat, "\001vorbis", 7) != 0)
{
- //TODO::: Possibly verify version
- LOG(logDEBUG) << "Check media type ok";
- return S_OK;
+ LOG(logDEBUG) << "Check media type failed";
+ return S_FALSE;
}
}
+ LOG(logDEBUG) << "Check media type ok";
+ return S_OK;
}
-
LOG(logDEBUG) << "Check media type failed";
- return S_FALSE;
+ return S_FALSE;
}
HRESULT VorbisDecodeInputPin::GetAllocatorRequirements(ALLOCATOR_PROPERTIES *outRequestedProps)
@@ -495,6 +509,13 @@
mOggOutputPinInterface = NULL;
}
LOG(logDEBUG) << "Complete Connect";
-
+
+ if (GetFilter()->getVorbisFormatBlock())
+ {
+ mNumChannels = GetFilter()->getVorbisFormatBlock()->numChannels;
+ mFrameSize = mNumChannels * SIZE_16_BITS;
+ mSampleRate = GetFilter()->getVorbisFormatBlock()->samplesPerSec;
+ }
+
return AbstractTransformInputPin::CompleteConnect(inReceivePin);
}
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -46,6 +46,7 @@
#include "VorbisDecoder.h"
#endif
+class VorbisDecodeFilter;
class VorbisDecodeOutputPin;
class VorbisDecodeInputPin
@@ -109,7 +110,7 @@
void reorderChannels(unsigned char* inDestBuffer, const unsigned char* inSourceBuffer, unsigned long inNumBytes);
-
+ VorbisDecodeFilter* GetFilter();
//TODO::: Are these needed?
bool mBegun;
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -36,19 +36,19 @@
#include "Vorbisdecodeoutputpin.h"
VorbisDecodeOutputPin::VorbisDecodeOutputPin(VorbisDecodeFilter* inParentFilter, CCritSec* inFilterLock,
- vector<CMediaType*> inAcceptableMediaTypes) :
+ const MediaTypesList& inAcceptableMediaTypes) :
AbstractTransformOutputPin(inParentFilter, inFilterLock, NAME("VorbisDecodeOutputPin"),
- L"PCM Out", 65535, 20, inAcceptableMediaTypes)
+ L"PCM Out", 65535, 20, inAcceptableMediaTypes)
{
}
-VorbisDecodeOutputPin::~VorbisDecodeOutputPin(void)
+VorbisDecodeOutputPin::~VorbisDecodeOutputPin()
{
}
HRESULT VorbisDecodeOutputPin::DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES *inReqAllocProps)
{
- sVorbisFormatBlock* formatBlock = static_cast<VorbisDecodeFilter*>(m_pFilter)->getVorbisFormatBlock();
+ VORBISFORMAT* formatBlock = static_cast<VorbisDecodeFilter*>(m_pFilter)->getVorbisFormatBlock();
if (formatBlock)
{
mDesiredBufferSize = formatBlock->numChannels * formatBlock->samplesPerSec * 2;
@@ -105,8 +105,14 @@
formatEx->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
- formatEx->Format.nChannels = (WORD)((VorbisDecodeFilter*)m_pFilter)->mVorbisFormatInfo->numChannels;
- formatEx->Format.nSamplesPerSec = ((VorbisDecodeFilter*)m_pFilter)->mVorbisFormatInfo->samplesPerSec;
+ formatEx->Format.nChannels = 0;
+ formatEx->Format.nSamplesPerSec = 0;
+ if (GetFilter()->mVorbisFormatInfo)
+ {
+ formatEx->Format.nChannels = (WORD)GetFilter()->mVorbisFormatInfo->numChannels;
+ formatEx->Format.nSamplesPerSec = GetFilter()->mVorbisFormatInfo->samplesPerSec;
+ }
+
formatEx->Format.wBitsPerSample = 16;
formatEx->Samples.wValidBitsPerSample = 16;
@@ -158,8 +164,13 @@
WAVEFORMATEX* waveFormat = (WAVEFORMATEX*)mediaType.AllocFormatBuffer(sizeof(WAVEFORMATEX));
waveFormat->wFormatTag = WAVE_FORMAT_PCM;
- waveFormat->nChannels = static_cast<VorbisDecodeFilter*>(m_pFilter)->mVorbisFormatInfo->numChannels;
- waveFormat->nSamplesPerSec = static_cast<VorbisDecodeFilter*>(m_pFilter)->mVorbisFormatInfo->samplesPerSec;
+ waveFormat->nChannels = 0;
+ waveFormat->nSamplesPerSec = 0;
+ if (GetFilter()->mVorbisFormatInfo)
+ {
+ waveFormat->nChannels = GetFilter()->mVorbisFormatInfo->numChannels;
+ waveFormat->nSamplesPerSec = GetFilter()->mVorbisFormatInfo->samplesPerSec;
+ }
waveFormat->wBitsPerSample = 16;
waveFormat->nBlockAlign = waveFormat->nChannels * (waveFormat->wBitsPerSample >> 3);
waveFormat->nAvgBytesPerSec = (waveFormat->nChannels * (waveFormat->wBitsPerSample >> 3)) * waveFormat->nSamplesPerSec;
@@ -169,4 +180,9 @@
}
return S_FALSE;
+}
+
+VorbisDecodeFilter* VorbisDecodeOutputPin::GetFilter()
+{
+ return static_cast<VorbisDecodeFilter*>(m_pFilter);
}
\ No newline at end of file
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -40,25 +40,25 @@
#endif
class VorbisDecodeFilter;
-class VorbisDecodeOutputPin :
- public AbstractTransformOutputPin
+class VorbisDecodeOutputPin : public AbstractTransformOutputPin
{
+ friend class VorbisDecodeInputPin;
+
public:
-
static const unsigned long NUM_BUFFERS = 16;
- friend class VorbisDecodeInputPin;
-
DECLARE_IUNKNOWN
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
- VorbisDecodeOutputPin(VorbisDecodeFilter* inParentFilter,CCritSec* inFilterLock, vector<CMediaType*> inAcceptableMediaTypes);
- virtual ~VorbisDecodeOutputPin(void);
+ VorbisDecodeOutputPin(VorbisDecodeFilter* inParentFilter, CCritSec* inFilterLock,
+ const MediaTypesList& inAcceptableMediaTypes);
+ virtual ~VorbisDecodeOutputPin();
+
protected:
virtual HRESULT CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition);
virtual HRESULT DecideBufferSize(IMemAllocator* inAllocator, ALLOCATOR_PROPERTIES *inReqAllocProps);
private:
HRESULT FillMediaType(CMediaType& mediaType, bool useWaveFormatEx);
+ VorbisDecodeFilter* GetFilter();
};
-
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/vorbisdecoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/vorbisdecoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/vorbisdecoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -32,32 +32,5 @@
#pragma once
-// {05A1D945-A794-44ef-B41A-2F851A117155}
-DEFINE_GUID(CLSID_VorbisDecodeFilter,
-0x5a1d945, 0xa794, 0x44ef, 0xb4, 0x1a, 0x2f, 0x85, 0x1a, 0x11, 0x71, 0x55);
-
-// {60891713-C24F-4767-B6C9-6CA05B3338FC}
-DEFINE_GUID(MEDIATYPE_OggPacketStream,
-0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
-
-// {95388704-162C-42a9-8149-C3577C12AAF9}
-DEFINE_GUID(FORMAT_OggIdentHeader,
-0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
-
-// {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
-DEFINE_GUID(IID_IOggDecoder,
-0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
-
-// {83D7F506-53ED-4f15-B6D8-7D8E9E72A918}
-DEFINE_GUID(IID_IOggOutputPin,
-0x83d7f506, 0x53ed, 0x4f15, 0xb6, 0xd8, 0x7d, 0x8e, 0x9e, 0x72, 0xa9, 0x18);
-
-struct sVorbisFormatBlock
-{
- unsigned long vorbisVersion;
- unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned char numChannels;
-};
+#include "common/VorbisTypes.h"
+#include "common/OggTypes.h"
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -69,8 +69,7 @@
VorbisEncodeFilter::VorbisEncodeFilter(void)
: AbstractTransformFilter(NAME("Xiph.Org Vorbis Encoder"), CLSID_VorbisEncodeFilter)
{
- bool locWasConstructed = ConstructPins();
- //Error checks ??
+ ConstructPins();
}
VorbisEncodeFilter::~VorbisEncodeFilter(void)
@@ -104,7 +103,7 @@
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.
@@ -114,12 +113,9 @@
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, locAcceptableTypes); //Deleted in base class filter destructor.
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeFilter.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -40,7 +40,7 @@
#include "AbstractTransformFilter.h"
//Forward Declarations
-struct sVorbisFormatBlock;
+struct VORBISFORMAT;
class VorbisEncodeInputPin;
class VorbisEncodeOutputPin;
@@ -85,5 +85,5 @@
virtual bool ConstructPins();
//Member data
- sVorbisFormatBlock mVorbisFormatBlock;
+ VORBISFORMAT mVorbisFormatBlock;
};
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -54,10 +54,10 @@
HRESULT VorbisEncodeOutputPin::CreateAndFillFormatBuffer(CMediaType* outMediaType, int inPosition)
{
if (inPosition == 0) {
- sVorbisFormatBlock* locVorbisFormat = (sVorbisFormatBlock*)outMediaType->AllocFormatBuffer(sizeof(sVorbisFormatBlock));
+ VORBISFORMAT* locVorbisFormat = (VORBISFORMAT*)outMediaType->AllocFormatBuffer(sizeof(VORBISFORMAT));
//TODO::: Check for null ?
- memcpy((void*)locVorbisFormat, (const void*) &(((VorbisEncodeFilter*)mParentFilter)->mVorbisFormatBlock), sizeof(sVorbisFormatBlock));
+ memcpy((void*)locVorbisFormat, (const void*) &(((VorbisEncodeFilter*)mParentFilter)->mVorbisFormatBlock), sizeof(VORBISFORMAT));
return S_OK;
} else {
return S_FALSE;
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -35,7 +35,7 @@
#include "AbstractTransformOutputPin.h"
class VorbisEncodeFilter;
-struct sVorbisFormatBlock;
+struct VORBISFORMAT;
class VorbisEncodeOutputPin
: public AbstractTransformOutputPin
Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/vorbisencoderdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -35,14 +35,7 @@
#include <pullpin.h>
#include <initguid.h>
-struct sVorbisFormatBlock {
- unsigned long vorbisVersion;
- unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned char numChannels;
-};
+#include "common/VorbisTypes.h"
#include "AbstractTransformFilter.h"
#include "AbstractTransformInputPin.h"
@@ -61,28 +54,6 @@
#endif
#endif
-// {A538F05F-DC08-4bf9-994F-18A86CCA6CC4}
-DEFINE_GUID(CLSID_PropsVorbisEncoder,
-0xa538f05f, 0xdc08, 0x4bf9, 0x99, 0x4f, 0x18, 0xa8, 0x6c, 0xca, 0x6c, 0xc4);
-
-
-// {5C94FE86-B93B-467f-BFC3-BD6C91416F9B}
-DEFINE_GUID(CLSID_VorbisEncodeFilter,
-0x5c94fe86, 0xb93b, 0x467f, 0xbf, 0xc3, 0xbd, 0x6c, 0x91, 0x41, 0x6f, 0x9b);
-
-// {8A0566AC-42B3-4ad9-ACA3-93B906DDF98A}
-DEFINE_GUID(MEDIASUBTYPE_Vorbis,
-0x8a0566ac, 0x42b3, 0x4ad9, 0xac, 0xa3, 0x93, 0xb9, 0x6, 0xdd, 0xf9, 0x8a);
-
-// {44E04F43-58B3-4de1-9BAA-8901F852DAE4}
-DEFINE_GUID(FORMAT_Vorbis,
-0x44e04f43, 0x58b3, 0x4de1, 0x9b, 0xaa, 0x89, 0x1, 0xf8, 0x52, 0xda, 0xe4);
-
-
-// {A4C6A887-7BD3-4b33-9A57-A3EB10924D3A}
-DEFINE_GUID(IID_IVorbisEncodeSettings,
-0xa4c6a887, 0x7bd3, 0x4b33, 0x9a, 0x57, 0xa3, 0xeb, 0x10, 0x92, 0x4d, 0x3a);
-
const REGPINTYPES VorbisEncodeInputTypes = {
&MEDIATYPE_Audio,
&MEDIASUBTYPE_PCM
@@ -120,8 +91,6 @@
}
};
-
-
const REGFILTER2 VorbisEncodeFilterReg = {
1,
MERIT_DO_NOT_USE,
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -203,17 +203,17 @@
//TODO: if we decide source filter should attempt to also
//connect to Xiph Ogg Vorbis decoder filter:
- //mt.majortype = VorbisTypes::MEDIATYPE_OggPacketStream;
- //mt.subtype = MEDIASUBTYPE_None;
- //mt.bFixedSizeSamples = FALSE;
- //mt.bTemporalCompression = FALSE;
- //mt.lSampleSize = 0;
- //mt.formattype = VorbisTypes::FORMAT_OggIdentHeader;
- //mt.pUnk = 0;
- //mt.cbFormat = id_len;
- //mt.pbFormat = const_cast<BYTE*>(id_hdr);
- //
- //mtv.Add(mt);
+ mt.majortype = VorbisTypes::MEDIATYPE_OggPacketStream;
+ mt.subtype = MEDIASUBTYPE_None;
+ mt.bFixedSizeSamples = FALSE;
+ mt.bTemporalCompression = FALSE;
+ mt.lSampleSize = 0;
+ mt.formattype = VorbisTypes::FORMAT_OggIdentHeader;
+ mt.pUnk = 0;
+ mt.cbFormat = id_len;
+ mt.pbFormat = const_cast<BYTE*>(id_hdr);
+
+ mtv.Add(mt);
}
@@ -242,8 +242,8 @@
}
-#if 0 //if we decide to support Xiph Ogg Vorbis decoder filter:
-HRESULT AudioStream::SetConnectionMediaType(const AM_MEDIA_TYPE&)
+#if 1 //if we decide to support Xiph Ogg Vorbis decoder filter:
+HRESULT AudioStream::SetConnectionMediaType(const AM_MEDIA_TYPE& mt)
{
if (mt.majortype == VorbisTypes::MEDIATYPE_OggPacketStream)
m_preroll = &AudioStream::SendOggIdentPacket;
@@ -432,7 +432,7 @@
}
-#if 0 //if we decide to support Xiph Ogg Vorbis decoder filter
+#if 1 //if we decide to support Xiph Ogg Vorbis decoder filter
bool AudioStream::SendPreroll(IMediaSample* pSample)
{
assert(m_preroll);
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.hpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.hpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/libmkvparser/mkvparserstreamaudio.hpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -25,7 +25,7 @@
void GetMediaTypes(CMediaTypes&) const;
HRESULT QueryAccept(const AM_MEDIA_TYPE*) const;
-#if 0 //if we decide to support Xiph Ogg Vorbis decoder filter:
+#if 1 //if we decide to support Xiph Ogg Vorbis decoder filter:
HRESULT SetConnectionMediaType(const AM_MEDIA_TYPE&);
#endif
@@ -39,7 +39,7 @@
void GetVorbisMediaTypes(CMediaTypes&) const;
-#if 0 //if we decide to support Xiph Ogg Vorbis decoder filter:
+#if 1 //if we decide to support Xiph Ogg Vorbis decoder filter:
bool SendPreroll(IMediaSample*);
bool (AudioStream::*m_preroll)(IMediaSample*);
bool DoNothing(IMediaSample*);
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8decoder/vp8decoder_2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8decoder/vp8decoder_2005.vcproj 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8decoder/vp8decoder_2005.vcproj 2010-06-21 21:11:20 UTC (rev 17302)
@@ -74,7 +74,7 @@
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)vp8_sdk\lib\Win32"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="vp8decoder.def"
GenerateDebugInformation="true"
SubSystem="0"
@@ -162,7 +162,7 @@
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)vp8_sdk\lib\Win32"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="vp8decoder.def"
GenerateDebugInformation="true"
SubSystem="0"
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8encoder/vp8encoder_2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8encoder/vp8encoder_2005.vcproj 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/vp8encoder/vp8encoder_2005.vcproj 2010-06-21 21:11:20 UTC (rev 17302)
@@ -74,7 +74,7 @@
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)vp8_sdk\lib\Win32"
- GenerateManifest="false"
+ GenerateManifest="true"
IgnoreDefaultLibraryNames=""
ModuleDefinitionFile="vp8encoder.def"
GenerateDebugInformation="true"
@@ -163,7 +163,7 @@
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
AdditionalLibraryDirectories="$(SolutionDir)vp8_sdk\lib\Win32"
- GenerateManifest="false"
+ GenerateManifest="true"
IgnoreDefaultLibraryNames=""
ModuleDefinitionFile="vp8encoder.def"
GenerateDebugInformation="true"
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmmux/webmmux_2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmmux/webmmux_2005.vcproj 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmmux/webmmux_2005.vcproj 2010-06-21 21:11:20 UTC (rev 17302)
@@ -67,7 +67,7 @@
AdditionalDependencies="strmiids.lib"
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="webmmux.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
@@ -149,7 +149,7 @@
AdditionalDependencies="strmiids.lib"
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="webmmux.def"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
Modified: trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmsplit/webmsplit_2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmsplit/webmsplit_2005.vcproj 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/codecs/webm/webmdshow/webmsplit/webmsplit_2005.vcproj 2010-06-21 21:11:20 UTC (rev 17302)
@@ -67,7 +67,7 @@
AdditionalDependencies="strmiids.lib"
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="webmsplit.def"
GenerateDebugInformation="true"
SubSystem="2"
@@ -148,7 +148,7 @@
AdditionalDependencies="strmiids.lib"
OutputFile="$(OutDir)\$(RootNameSpace).dll"
LinkIncremental="2"
- GenerateManifest="false"
+ GenerateManifest="true"
ModuleDefinitionFile="webmsplit.def"
GenerateDebugInformation="true"
SubSystem="2"
Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/ds_guids.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/ds_guids.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux2/ds_guids.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -1,34 +1,3 @@
#pragma once
-// Stream subtype for Ogg byte streams. The filter can handle
-// MEDIASUBTYPE_NULL, but specifying MEDIASUBTYPE_Ogg can save
-// the filter graph the trouble of trying out all the available
-// filters.
-// {DD142C1E-0C1E-4381-A24E-0B2D80B6098A}
-DEFINE_GUID(MEDIASUBTYPE_Ogg,
-0xdd142c1e, 0xc1e, 0x4381, 0xa2, 0x4e, 0xb, 0x2d, 0x80, 0xb6, 0x9, 0x8a);
-
-// {C9361F5A-3282-4944-9899-6D99CDC5370B}
-DEFINE_GUID(CLSID_OggDemuxFilter,
-0xc9361f5a, 0x3282, 0x4944, 0x98, 0x99, 0x6d, 0x99, 0xcd, 0xc5, 0x37, 0xb);
-
-// {60891713-C24F-4767-B6C9-6CA05B3338FC}
-DEFINE_GUID(MEDIATYPE_OggPacketStream,
-0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
-
-// {95388704-162C-42a9-8149-C3577C12AAF9}
-DEFINE_GUID(FORMAT_OggIdentHeader,
-0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
-
-// {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
-DEFINE_GUID(IID_IOggDecoder,
-0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
-
-// {83D7F506-53ED-4f15-B6D8-7D8E9E72A918}
-DEFINE_GUID(IID_IOggOutputPin,
-0x83d7f506, 0x53ed, 0x4f15, 0xb6, 0xd8, 0x7d, 0x8e, 0x9e, 0x72, 0xa9, 0x18);
-
-// {EB5AED9C-8CD0-4c4b-B5E8-F5D10AD1314D}
-DEFINE_GUID(IID_IOggBaseTime,
-0xeb5aed9c, 0x8cd0, 0x4c4b, 0xb5, 0xe8, 0xf5, 0xd1, 0xa, 0xd1, 0x31, 0x4d);
-
+#include "common/OggTypes.h"
Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -87,7 +87,7 @@
if (inMediaType->majortype == MEDIATYPE_Video) {
if (inMediaType->subtype == MEDIASUBTYPE_Theora) {
//Theora
- sTheoraFormatBlock* locTheora = (sTheoraFormatBlock*)inMediaType->pbFormat;
+ THEORAFORMAT* locTheora = (THEORAFORMAT*)inMediaType->pbFormat;
//debugLog<<"Theo sample rate = "<<locTheora->frameRateNumerator<<" / "<<locTheora->frameRateDenominator<<endl;
//debugLog<<"Theo KFI = "<<locTheora->maxKeyframeInterval<<endl;
mMuxStream->setConversionParams(locTheora->frameRateNumerator, locTheora->frameRateDenominator, 10000000, locTheora->maxKeyframeInterval);
@@ -102,7 +102,7 @@
} else if (inMediaType->majortype == MEDIATYPE_Audio) {
if (inMediaType->subtype == MEDIASUBTYPE_Vorbis) {
//Vorbis
- sVorbisFormatBlock* locVorbis = (sVorbisFormatBlock*)inMediaType->pbFormat;
+ VORBISFORMAT* locVorbis = (VORBISFORMAT*)inMediaType->pbFormat;
//debugLog<<"Vorbis sample rate = "<<locVorbis->samplesPerSec<<endl;
mMuxStream->setConversionParams(locVorbis->samplesPerSec, 1, 10000000);
mMuxStream->setNumHeaders(3);
@@ -110,13 +110,13 @@
} else if (inMediaType->subtype == MEDIASUBTYPE_Speex) {
//Speex
- sSpeexFormatBlock* locSpeex = (sSpeexFormatBlock*)inMediaType->pbFormat;
+ SPEEXFORMAT* locSpeex = (SPEEXFORMAT*)inMediaType->pbFormat;
mMuxStream->setConversionParams(locSpeex->samplesPerSec, 1, 10000000);
mMuxStream->setNumHeaders(2);
mPaginator.setNumHeaders(2);
} else if (inMediaType->subtype == MEDIASUBTYPE_OggFLAC_1_0) {
//We are connected to the encoder nd getting individual metadata packets.
- sFLACFormatBlock* locFLAC = (sFLACFormatBlock*)inMediaType->pbFormat;
+ FLACFORMAT* locFLAC = (FLACFORMAT*)inMediaType->pbFormat;
mMuxStream->setConversionParams(locFLAC->samplesPerSec, 1, 10000000);
//debugLog<<"FLAC sample rate = "<<locFLAC->samplesPerSec<<endl;
//mNeedsFLACHeaderTweak = true;
@@ -124,12 +124,12 @@
} else if (inMediaType->subtype == MEDIASUBTYPE_FLAC) {
//We are connected directly to the demux and are getting metadata in one block
// Need to use the header splitter class.
- sFLACFormatBlock* locFLAC = (sFLACFormatBlock*)inMediaType->pbFormat;
+ FLACFORMAT* locFLAC = (FLACFORMAT*)inMediaType->pbFormat;
mMuxStream->setConversionParams(locFLAC->samplesPerSec, 1, 10000000);
//debugLog<<"FLAC sample rate = "<<locFLAC->samplesPerSec<<endl;
mNeedsFLACHeaderTweak = true;
} else if (inMediaType->subtype == MEDIASUBTYPE_RawOggAudio) {
- sOggRawAudioFormatBlock* locRawAudio = (sOggRawAudioFormatBlock*)inMediaType->pbFormat;
+ OGGRAWAUDIOFORMAT* locRawAudio = (OGGRAWAUDIOFORMAT*)inMediaType->pbFormat;
mMuxStream->setConversionParams(locRawAudio->samplesPerSec, 1, 10000000);
mMuxStream->setNumHeaders(locRawAudio->numHeaders);
mPaginator.setNumHeaders(locRawAudio->numHeaders);
@@ -138,7 +138,7 @@
} else if (inMediaType->majortype == MEDIATYPE_Text) {
if (inMediaType->subtype == MEDIASUBTYPE_CMML) {
- sCMMLFormatBlock* locCMML = (sCMMLFormatBlock*)inMediaType->pbFormat;
+ CMMLFORMAT* locCMML = (CMMLFORMAT*)inMediaType->pbFormat;
mMuxStream->setConversionParams(locCMML->granuleNumerator,locCMML->granuleDenominator, 10000000);
mMuxStream->setNumHeaders(1);
mPaginator.setNumHeaders(1);
Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -55,72 +55,12 @@
#endif
#endif
+#include "common/OggTypes.h"
+#include "common/VorbisTypes.h"
+#include "common/TheoraTypes.h"
+#include "common/FlacTypes.h"
+#include "common/SpeexTypes.h"
-// {90D6513C-A665-4b16-ACA7-B3D1D4EFE58D}
-DEFINE_GUID(IID_IOggMuxProgress,
-0x90d6513c, 0xa665, 0x4b16, 0xac, 0xa7, 0xb3, 0xd1, 0xd4, 0xef, 0xe5, 0x8d);
-
-
-
-// {30393ca2-c404-4744-a21e-90975700ea8f}
-DEFINE_GUID(CLSID_PropsOggMux,
-0x30393ca2, 0xc404, 0x4744, 0xa2, 0x1e, 0x90, 0x97, 0x57, 0x00, 0xea, 0x8f);
-
-// {3a2cf997-0aeb-4d3f-9846-b5db2ca4c80b}
-DEFINE_GUID(IID_IOggMuxSettings,
-0x3a2cf997, 0x0aeb, 0x4d3f, 0x98, 0x46, 0xb5, 0xdb, 0x2c, 0xa4, 0xc8, 0x0b);
-
-//New section
-// {31CA0186-1FF0-4181-AA38-3CA4040BD260}
-DEFINE_GUID(CLSID_OggDemuxSourceFilter,
-0x31ca0186, 0x1ff0, 0x4181, 0xaa, 0x38, 0x3c, 0xa4, 0x4, 0xb, 0xd2, 0x60);
-
-// {1F3EFFE4-0E70-47c7-9C48-05EB99E20011}
-DEFINE_GUID(CLSID_OggMuxFilter,
-0x1f3effe4, 0xe70, 0x47c7, 0x9c, 0x48, 0x5, 0xeb, 0x99, 0xe2, 0x0, 0x11);
-
-// {3913F0AB-E7ED-41c4-979B-1D1FDD983C07}
-DEFINE_GUID(MEDIASUBTYPE_FLAC,
-0x3913f0ab, 0xe7ed, 0x41c4, 0x97, 0x9b, 0x1d, 0x1f, 0xdd, 0x98, 0x3c, 0x7);
-
-// {2C409DB0-95BF-47ba-B0F5-587256F1EDCF}
-DEFINE_GUID(MEDIASUBTYPE_OggFLAC_1_0,
-0x2c409db0, 0x95bf, 0x47ba, 0xb0, 0xf5, 0x58, 0x72, 0x56, 0xf1, 0xed, 0xcf);
-
-
-// {8A0566AC-42B3-4ad9-ACA3-93B906DDF98A}
-DEFINE_GUID(MEDIASUBTYPE_Vorbis,
-0x8a0566ac, 0x42b3, 0x4ad9, 0xac, 0xa3, 0x93, 0xb9, 0x6, 0xdd, 0xf9, 0x8a);
-
-// {25A9729D-12F6-420e-BD53-1D631DC217DF}
-DEFINE_GUID(MEDIASUBTYPE_Speex,
-0x25a9729d, 0x12f6, 0x420e, 0xbd, 0x53, 0x1d, 0x63, 0x1d, 0xc2, 0x17, 0xdf);
-
-// {44E04F43-58B3-4de1-9BAA-8901F852DAE4}
-DEFINE_GUID(FORMAT_Vorbis,
-0x44e04f43, 0x58b3, 0x4de1, 0x9b, 0xaa, 0x89, 0x1, 0xf8, 0x52, 0xda, 0xe4);
-
-// {78701A27-EFB5-4157-9553-38A7854E3E81}
-DEFINE_GUID(FORMAT_Speex,
-0x78701a27, 0xefb5, 0x4157, 0x95, 0x53, 0x38, 0xa7, 0x85, 0x4e, 0x3e, 0x81);
-
-// {1CDC48AC-4C24-4b8b-982B-7007A29D83C4}
-DEFINE_GUID(FORMAT_FLAC,
-0x1cdc48ac, 0x4c24, 0x4b8b, 0x98, 0x2b, 0x70, 0x7, 0xa2, 0x9d, 0x83, 0xc4);
-
-
-// {05187161-5C36-4324-A734-22BF37509F2D}
-DEFINE_GUID(CLSID_TheoraDecodeFilter,
-0x5187161, 0x5c36, 0x4324, 0xa7, 0x34, 0x22, 0xbf, 0x37, 0x50, 0x9f, 0x2d);
-
-// {D124B2B1-8968-4ae8-B288-FE16EA34B0CE}
-DEFINE_GUID(MEDIASUBTYPE_Theora,
-0xd124b2b1, 0x8968, 0x4ae8, 0xb2, 0x88, 0xfe, 0x16, 0xea, 0x34, 0xb0, 0xce);
-
-// {A99F116C-DFFA-412c-95DE-725F99874826}
-DEFINE_GUID(FORMAT_Theora,
-0xa99f116c, 0xdffa, 0x412c, 0x95, 0xde, 0x72, 0x5f, 0x99, 0x87, 0x48, 0x26);
-
// {BBCD12AC-0000-0010-8000-00aa00389b71}
DEFINE_GUID(MEDIASUBTYPE_Schroedinger,
0xBBCD12AC, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
@@ -129,17 +69,13 @@
DEFINE_GUID(FORMAT_Schroedinger,
0xBBCD12AC, 0xc356, 0x11ce, 0xbf, 0x01, 0x00, 0xaa, 0x00, 0x55, 0x59, 0x5a);
-//This structure defines the type of input we accept on the input pin... Stream/Annodex
-
// {53696C76-6961-40b2-B136-436F6E726164}
DEFINE_GUID(FORMAT_CMML,
0x53696c76, 0x6961, 0x40b2, 0xb1, 0x36, 0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64);
-
// {5A656E74-6172-6F26-B79C-D6416E647282}
DEFINE_GUID(MEDIASUBTYPE_CMML,
0x5a656e74, 0x6172, 0x6f26, 0xb7, 0x9c, 0xd6, 0x41, 0x6e, 0x64, 0x72, 0x82);
-//Structure defining the registration details of the filter
// {37535B3C-F068-4f93-9763-E7208277D71F}
DEFINE_GUID(MEDIASUBTYPE_RawOggAudio,
@@ -200,62 +136,15 @@
};
-
-
-struct sVorbisFormatBlock {
- unsigned long vorbisVersion;
+struct OGGRAWAUDIOFORMAT {
unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned char numChannels;
-};
-
-struct sSpeexFormatBlock {
- unsigned long speexVersion;
- unsigned long samplesPerSec;
- unsigned long minBitsPerSec;
- unsigned long avgBitsPerSec;
- unsigned long maxBitsPerSec;
- unsigned long numChannels;
-
-};
-
-struct sFLACFormatBlock {
- unsigned short numChannels;
- unsigned long numBitsPerSample;
- unsigned long samplesPerSec;
-
-};
-
-struct sTheoraFormatBlock {
- unsigned long theoraVersion;
- unsigned long outerFrameWidth;
- unsigned long outerFrameHeight;
- unsigned long pictureWidth;
- unsigned long pictureHeight;
- unsigned long frameRateNumerator;
- unsigned long frameRateDenominator;
- unsigned long aspectNumerator;
- unsigned long aspectDenominator;
- unsigned long maxKeyframeInterval;
- unsigned long targetBitrate;
- unsigned char targetQuality;
- unsigned char xOffset;
- unsigned char yOffset;
- unsigned char colourSpace;
- unsigned char pixelFormat;
-};
-struct sOggRawAudioFormatBlock {
- unsigned long samplesPerSec;
unsigned long numHeaders;
unsigned long numChannels;
unsigned long bitsPerSample;
unsigned long maxFramesPerPacket;
-
-
};
-struct sCMMLFormatBlock {
+
+struct CMMLFORMAT {
__int64 granuleNumerator;
__int64 granuleDenominator;
unsigned short granuleSplitBits;
Modified: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.cpp 2010-06-21 21:11:20 UTC (rev 17302)
@@ -33,26 +33,27 @@
#include "AbstractTransformOutputPin.h"
-AbstractTransformOutputPin::AbstractTransformOutputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, TCHAR* inObjectName, LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, vector<CMediaType*> inAcceptableMediaTypes)
- : CBaseOutputPin(inObjectName, inParentFilter, inFilterLock, &mHR, inPinDisplayName)
+AbstractTransformOutputPin::AbstractTransformOutputPin(
+ AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, TCHAR* inObjectName,
+ LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, const MediaTypesList& inAcceptableMediaTypes) :
- , mParentFilter(inParentFilter)
- , mDataQueue(NULL)
-
- , mDesiredBufferSize(inBuffSize)
- , mDesiredBufferCount(inNumBuffs)
+CBaseOutputPin(inObjectName, inParentFilter, inFilterLock, &mHR, inPinDisplayName),
- , mActualBufferSize(0)
- , mActualBufferCount(0)
-
- , mAcceptableMediaTypes(inAcceptableMediaTypes)
+mParentFilter(inParentFilter),
+mDataQueue(NULL),
+mDesiredBufferSize(inBuffSize),
+mDesiredBufferCount(inNumBuffs),
+mActualBufferSize(0),
+mActualBufferCount(0),
+mAcceptableMediaTypes(inAcceptableMediaTypes)
{
+}
-}
AbstractTransformOutputPin::~AbstractTransformOutputPin(void)
{
ReleaseDelegate();
- delete mDataQueue;
+
+ delete mDataQueue;
mDataQueue = NULL;
for (size_t i = 0; i < mAcceptableMediaTypes.size(); i++) {
Modified: trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/core/directshow/libDirectshowAbstracts/AbstractTransformOutputPin.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -37,8 +37,9 @@
//STL Includes
#include <vector>
-using namespace std;
+typedef std::vector<CMediaType*> MediaTypesList;
+
//Forward Declarations
class AbstractTransformFilter;
@@ -54,7 +55,8 @@
STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv);
//Constructors
- AbstractTransformOutputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, TCHAR* inObjectName, LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, vector<CMediaType*> inAcceptableMediaTypes);
+ AbstractTransformOutputPin(AbstractTransformFilter* inParentFilter, CCritSec* inFilterLock, TCHAR* inObjectName,
+ LPCWSTR inPinDisplayName, int inBuffSize, int inNumBuffs, const MediaTypesList& inAcceptableMediaTypes);
virtual ~AbstractTransformOutputPin(void);
//Buffer control method
@@ -85,7 +87,7 @@
//Pin member data
AbstractTransformFilter* mParentFilter;
COutputQueue* mDataQueue;
- vector<CMediaType*> mAcceptableMediaTypes;
+ MediaTypesList mAcceptableMediaTypes;
HRESULT mHR; //Is this even used ??
@@ -94,8 +96,4 @@
int mDesiredBufferCount;
int mActualBufferSize;
int mActualBufferCount;
-
-
};
-
-
Added: trunk/oggdsf/src/lib/helper/common/FlacTypes.h
===================================================================
--- trunk/oggdsf/src/lib/helper/common/FlacTypes.h (rev 0)
+++ trunk/oggdsf/src/lib/helper/common/FlacTypes.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -0,0 +1,70 @@
+//===========================================================================
+//Copyright (C) 2010 Cristian Adam
+//
+//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 Cristian Adam 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.
+//===========================================================================
+
+#ifndef FLACTYPES_H
+#define FLACTYPES_H
+
+struct FLACFORMAT
+{
+ unsigned short numChannels;
+ unsigned long numBitsPerSample;
+ unsigned long samplesPerSec;
+};
+
+// {EE66A998-4E5C-4e23-A0F3-97C40D87EC48}
+DEFINE_GUID(CLSID_PropsFLACEncoder,
+0xee66a998, 0x4e5c, 0x4e23, 0xa0, 0xf3, 0x97, 0xc4, 0xd, 0x87, 0xec, 0x48);
+
+// {DF9C0DC3-1924-4bfe-8DC1-1084453A0F8F}
+DEFINE_GUID(IID_IFLACEncodeSettings,
+0xdf9c0dc3, 0x1924, 0x4bfe, 0x8d, 0xc1, 0x10, 0x84, 0x45, 0x3a, 0xf, 0x8f);
+
+// {3913F0AB-E7ED-41c4-979B-1D1FDD983C07}
+DEFINE_GUID(MEDIASUBTYPE_FLAC,
+0x3913f0ab, 0xe7ed, 0x41c4, 0x97, 0x9b, 0x1d, 0x1f, 0xdd, 0x98, 0x3c, 0x7);
+
+// {2C409DB0-95BF-47ba-B0F5-587256F1EDCF}
+DEFINE_GUID(MEDIASUBTYPE_OggFLAC_1_0,
+0x2c409db0, 0x95bf, 0x47ba, 0xb0, 0xf5, 0x58, 0x72, 0x56, 0xf1, 0xed, 0xcf);
+
+// {1CDC48AC-4C24-4b8b-982B-7007A29D83C4}
+DEFINE_GUID(FORMAT_FLAC,
+0x1cdc48ac, 0x4c24, 0x4b8b, 0x98, 0x2b, 0x70, 0x7, 0xa2, 0x9d, 0x83, 0xc4);
+
+// {77E3A6A3-2A24-43fa-B929-00747E4B560B}
+DEFINE_GUID(CLSID_FLACEncodeFilter,
+0x77e3a6a3, 0x2a24, 0x43fa, 0xb9, 0x29, 0x0, 0x74, 0x7e, 0x4b, 0x56, 0xb);
+
+// {3376086C-D6F9-4ce4-8B89-33CD570106B5}
+DEFINE_GUID(CLSID_FLACDecodeFilter,
+0x3376086c, 0xd6f9, 0x4ce4, 0x8b, 0x89, 0x33, 0xcd, 0x57, 0x1, 0x6, 0xb5);
+
+#endif // FLACTYPES_H
\ No newline at end of file
Added: trunk/oggdsf/src/lib/helper/common/OggTypes.h
===================================================================
--- trunk/oggdsf/src/lib/helper/common/OggTypes.h (rev 0)
+++ trunk/oggdsf/src/lib/helper/common/OggTypes.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -0,0 +1,85 @@
+//===========================================================================
+//Copyright (C) 2010 Cristian Adam
+//
+//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 Cristian Adam 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.
+//===========================================================================
+
+#ifndef OGGTYPES_H
+#define OGGTYPES_H
+
+// {60891713-C24F-4767-B6C9-6CA05B3338FC}
+DEFINE_GUID(MEDIATYPE_OggPacketStream,
+0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
+
+// {95388704-162C-42a9-8149-C3577C12AAF9}
+DEFINE_GUID(FORMAT_OggIdentHeader,
+0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
+
+// {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
+DEFINE_GUID(IID_IOggDecoder,
+0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
+
+// {83D7F506-53ED-4f15-B6D8-7D8E9E72A918}
+DEFINE_GUID(IID_IOggOutputPin,
+0x83d7f506, 0x53ed, 0x4f15, 0xb6, 0xd8, 0x7d, 0x8e, 0x9e, 0x72, 0xa9, 0x18);
+
+// {90D6513C-A665-4b16-ACA7-B3D1D4EFE58D}
+DEFINE_GUID(IID_IOggMuxProgress,
+0x90d6513c, 0xa665, 0x4b16, 0xac, 0xa7, 0xb3, 0xd1, 0xd4, 0xef, 0xe5, 0x8d);
+
+// {30393ca2-c404-4744-a21e-90975700ea8f}
+DEFINE_GUID(CLSID_PropsOggMux,
+0x30393ca2, 0xc404, 0x4744, 0xa2, 0x1e, 0x90, 0x97, 0x57, 0x00, 0xea, 0x8f);
+
+// {3a2cf997-0aeb-4d3f-9846-b5db2ca4c80b}
+DEFINE_GUID(IID_IOggMuxSettings,
+0x3a2cf997, 0x0aeb, 0x4d3f, 0x98, 0x46, 0xb5, 0xdb, 0x2c, 0xa4, 0xc8, 0x0b);
+
+// Stream subtype for Ogg byte streams. The filter can handle
+// MEDIASUBTYPE_NULL, but specifying MEDIASUBTYPE_Ogg can save
+// the filter graph the trouble of trying out all the available
+// filters.
+
+// {DD142C1E-0C1E-4381-A24E-0B2D80B6098A}
+DEFINE_GUID(MEDIASUBTYPE_Ogg,
+0xdd142c1e, 0xc1e, 0x4381, 0xa2, 0x4e, 0xb, 0x2d, 0x80, 0xb6, 0x9, 0x8a);
+
+// {C9361F5A-3282-4944-9899-6D99CDC5370B}
+DEFINE_GUID(CLSID_OggDemuxFilter,
+0xc9361f5a, 0x3282, 0x4944, 0x98, 0x99, 0x6d, 0x99, 0xcd, 0xc5, 0x37, 0xb);
+
+// {EB5AED9C-8CD0-4c4b-B5E8-F5D10AD1314D}
+DEFINE_GUID(IID_IOggBaseTime,
+0xeb5aed9c, 0x8cd0, 0x4c4b, 0xb5, 0xe8, 0xf5, 0xd1, 0xa, 0xd1, 0x31, 0x4d);
+
+// {1F3EFFE4-0E70-47c7-9C48-05EB99E20011}
+DEFINE_GUID(CLSID_OggMuxFilter,
+0x1f3effe4, 0xe70, 0x47c7, 0x9c, 0x48, 0x5, 0xeb, 0x99, 0xe2, 0x0, 0x11);
+
+
+#endif // OGGTYPES_H
\ No newline at end of file
Added: trunk/oggdsf/src/lib/helper/common/SpeexTypes.h
===================================================================
--- trunk/oggdsf/src/lib/helper/common/SpeexTypes.h (rev 0)
+++ trunk/oggdsf/src/lib/helper/common/SpeexTypes.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -0,0 +1,69 @@
+//===========================================================================
+//Copyright (C) 2010 Cristian Adam
+//
+//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 Cristian Adam 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.
+//===========================================================================
+
+#ifndef SPEEXTYPES_H
+#define SPEEXTYPES_H
+
+struct SPEEXFORMAT
+{
+ unsigned long speexVersion;
+ unsigned long samplesPerSec;
+ unsigned long minBitsPerSec;
+ unsigned long avgBitsPerSec;
+ unsigned long maxBitsPerSec;
+ unsigned long numChannels;
+};
+
+// {ED79AEC0-68AD-4be6-B06E-B4D3C8101624}
+DEFINE_GUID(CLSID_PropsSpeexEncoder,
+0xed79aec0, 0x68ad, 0x4be6, 0xb0, 0x6e, 0xb4, 0xd3, 0xc8, 0x10, 0x16, 0x24);
+
+// {479038D2-57FF-41ee-B397-FB98199BF1E8}
+DEFINE_GUID(IID_ISpeexEncodeSettings,
+0x479038d2, 0x57ff, 0x41ee, 0xb3, 0x97, 0xfb, 0x98, 0x19, 0x9b, 0xf1, 0xe8);
+
+// {25A9729D-12F6-420e-BD53-1D631DC217DF}
+DEFINE_GUID(MEDIASUBTYPE_Speex,
+0x25a9729d, 0x12f6, 0x420e, 0xbd, 0x53, 0x1d, 0x63, 0x1d, 0xc2, 0x17, 0xdf);
+
+// {78701A27-EFB5-4157-9553-38A7854E3E81}
+DEFINE_GUID(FORMAT_Speex,
+0x78701a27, 0xefb5, 0x4157, 0x95, 0x53, 0x38, 0xa7, 0x85, 0x4e, 0x3e, 0x81);
+
+// {7036C2FE-A209-464c-97AB-95B9260EDBF7}
+DEFINE_GUID(CLSID_SpeexEncodeFilter,
+0x7036c2fe, 0xa209, 0x464c, 0x97, 0xab, 0x95, 0xb9, 0x26, 0xe, 0xdb, 0xf7);
+
+// {7605E26C-DE38-4b82-ADD8-FE2568CC0B25}
+DEFINE_GUID(CLSID_SpeexDecodeFilter,
+0x7605e26c, 0xde38, 0x4b82, 0xad, 0xd8, 0xfe, 0x25, 0x68, 0xcc, 0xb, 0x25);
+
+#endif // SPEEXTYPES_H
\ No newline at end of file
Added: trunk/oggdsf/src/lib/helper/common/TheoraTypes.h
===================================================================
--- trunk/oggdsf/src/lib/helper/common/TheoraTypes.h (rev 0)
+++ trunk/oggdsf/src/lib/helper/common/TheoraTypes.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -0,0 +1,79 @@
+//===========================================================================
+//Copyright (C) 2010 Cristian Adam
+//
+//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 Cristian Adam 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.
+//===========================================================================
+
+#ifndef THEORATYPES_H
+#define THEORATYPES_H
+
+struct THEORAFORMAT
+{
+ unsigned long theoraVersion;
+ unsigned long outerFrameWidth;
+ unsigned long outerFrameHeight;
+ unsigned long pictureWidth;
+ unsigned long pictureHeight;
+ unsigned long frameRateNumerator;
+ unsigned long frameRateDenominator;
+ unsigned long aspectNumerator;
+ unsigned long aspectDenominator;
+ unsigned long maxKeyframeInterval;
+ unsigned long targetBitrate;
+ unsigned char targetQuality;
+ unsigned char xOffset;
+ unsigned char yOffset;
+ unsigned char colourSpace;
+ unsigned char pixelFormat;
+};
+
+// {121EA765-6D3F-4519-9686-A0BA6E5281A2}
+DEFINE_GUID(CLSID_PropsTheoraEncoder,
+0x121ea765, 0x6d3f, 0x4519, 0x96, 0x86, 0xa0, 0xba, 0x6e, 0x52, 0x81, 0xa2);
+
+// {4F063B3A-B397-4c22-AFF4-2F8DB96D292A}
+DEFINE_GUID(IID_ITheoraEncodeSettings,
+0x4f063b3a, 0xb397, 0x4c22, 0xaf, 0xf4, 0x2f, 0x8d, 0xb9, 0x6d, 0x29, 0x2a);
+
+// {5C769985-C3E1-4f95-BEE7-1101C465F5FC}
+DEFINE_GUID(CLSID_TheoraEncodeFilter,
+0x5c769985, 0xc3e1, 0x4f95, 0xbe, 0xe7, 0x11, 0x1, 0xc4, 0x65, 0xf5, 0xfc);
+
+// TheoraDecodeFilter {05187161-5C36-4324-A734-22BF37509F2D}
+DEFINE_GUID(CLSID_TheoraDecodeFilter,
+0x5187161, 0x5c36, 0x4324, 0xa7, 0x34, 0x22, 0xbf, 0x37, 0x50, 0x9f, 0x2d);
+
+// {D124B2B1-8968-4ae8-B288-FE16EA34B0CE}
+DEFINE_GUID(MEDIASUBTYPE_Theora,
+0xd124b2b1, 0x8968, 0x4ae8, 0xb2, 0x88, 0xfe, 0x16, 0xea, 0x34, 0xb0, 0xce);
+
+// {A99F116C-DFFA-412c-95DE-725F99874826}
+DEFINE_GUID(FORMAT_Theora,
+0xa99f116c, 0xdffa, 0x412c, 0x95, 0xde, 0x72, 0x5f, 0x99, 0x87, 0x48, 0x26);
+
+#endif // THEORATYPES_H
Added: trunk/oggdsf/src/lib/helper/common/VorbisTypes.h
===================================================================
--- trunk/oggdsf/src/lib/helper/common/VorbisTypes.h (rev 0)
+++ trunk/oggdsf/src/lib/helper/common/VorbisTypes.h 2010-06-21 21:11:20 UTC (rev 17302)
@@ -0,0 +1,70 @@
+//===========================================================================
+//Copyright (C) 2010 Cristian Adam
+//
+//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 Cristian Adam 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.
+//===========================================================================
+
+#ifndef VORBISTYPES_H
+#define VORBISTYPES_H
+
+struct VORBISFORMAT
+{
+ unsigned long vorbisVersion;
+ unsigned long samplesPerSec;
+ unsigned long minBitsPerSec;
+ unsigned long avgBitsPerSec;
+ unsigned long maxBitsPerSec;
+ unsigned char numChannels;
+};
+
+// {A538F05F-DC08-4bf9-994F-18A86CCA6CC4}
+DEFINE_GUID(CLSID_PropsVorbisEncoder,
+0xa538f05f, 0xdc08, 0x4bf9, 0x99, 0x4f, 0x18, 0xa8, 0x6c, 0xca, 0x6c, 0xc4);
+
+// {5C94FE86-B93B-467f-BFC3-BD6C91416F9B}
+DEFINE_GUID(CLSID_VorbisEncodeFilter,
+0x5c94fe86, 0xb93b, 0x467f, 0xbf, 0xc3, 0xbd, 0x6c, 0x91, 0x41, 0x6f, 0x9b);
+
+// {8A0566AC-42B3-4ad9-ACA3-93B906DDF98A}
+DEFINE_GUID(MEDIASUBTYPE_Vorbis,
+0x8a0566ac, 0x42b3, 0x4ad9, 0xac, 0xa3, 0x93, 0xb9, 0x6, 0xdd, 0xf9, 0x8a);
+
+// {44E04F43-58B3-4de1-9BAA-8901F852DAE4}
+DEFINE_GUID(FORMAT_Vorbis,
+0x44e04f43, 0x58b3, 0x4de1, 0x9b, 0xaa, 0x89, 0x1, 0xf8, 0x52, 0xda, 0xe4);
+
+// {A4C6A887-7BD3-4b33-9A57-A3EB10924D3A}
+DEFINE_GUID(IID_IVorbisEncodeSettings,
+0xa4c6a887, 0x7bd3, 0x4b33, 0x9a, 0x57, 0xa3, 0xeb, 0x10, 0x92, 0x4d, 0x3a);
+
+// {05A1D945-A794-44ef-B41A-2F851A117155}
+DEFINE_GUID(CLSID_VorbisDecodeFilter,
+0x5a1d945, 0xa794, 0x44ef, 0xb4, 0x1a, 0x2f, 0x85, 0x1a, 0x11, 0x71, 0x55);
+
+
+#endif // VORBISTYPES_H
\ No newline at end of file
Modified: trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj
===================================================================
--- trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj 2010-06-21 18:39:26 UTC (rev 17301)
+++ trunk/oggdsf/src/lib/plugin/AxPlayer/AxPlayer-2005.vcproj 2010-06-21 21:11:20 UTC (rev 17302)
@@ -626,11 +626,11 @@
>
</File>
<File
- RelativePath=".\VideoTagBehavior.rgs"
+ RelativePath=".\Res\VideoTagBehavior.rgs"
>
</File>
<File
- RelativePath=".\Res\VideoTagBehavior.rgs"
+ RelativePath=".\VideoTagBehavior.rgs"
>
</File>
</Filter>
More information about the commits
mailing list