[xiph-commits] r7948 - in trunk/oggdsf: sln/oggdsf_all src/lib/codecs/flac/filters/dsfFLACEncoder src/lib/codecs/flac/libs/libFLACHelper src/lib/core/directshow/dsfOggDemux src/lib/core/directshow/dsfOggMux

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Sat Oct 9 07:55:13 PDT 2004


Author: illiminable
Date: 2004-10-09 07:55:12 -0700 (Sat, 09 Oct 2004)
New Revision: 7948

Modified:
   trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
   trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp
   trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.h
   trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/dsfFLACEncoder.vcproj
   trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h
   trunk/oggdsf/src/lib/codecs/flac/libs/libFLACHelper/libFLACHelper.vcproj
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggFLAC_1_0_Stream.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
Log:
* More fixes for new FLAC format.

Modified: trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
===================================================================
--- trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-10-09 14:55:12 UTC (rev 7948)
@@ -1048,8 +1048,10 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfFLACEncoder", "..\..\src\lib\codecs\flac\filters\dsfFLACEncoder\dsfFLACEncoder.vcproj", "{7143478E-0C1A-4C8B-B12C-4BFEF591F36F}"
 	ProjectSection(ProjectDependencies) = postProject
+		{223ACC19-608E-4E1B-A054-067F0CACB272} = {223ACC19-608E-4E1B-A054-067F0CACB272}
 		{6B548F29-04A2-4F61-946F-72B86B4845DA} = {6B548F29-04A2-4F61-946F-72B86B4845DA}
 		{4906E533-2864-4840-ABC1-00CD844623EB} = {4906E533-2864-4840-ABC1-00CD844623EB}
+		{7F213248-16F2-4AAE-B941-C402670082BC} = {7F213248-16F2-4AAE-B941-C402670082BC}
 		{A882A968-3013-4A27-B653-E18CF5C791FE} = {A882A968-3013-4A27-B653-E18CF5C791FE}
 		{4CBC0173-27E6-4218-AE06-5EFDCA7B2547} = {4CBC0173-27E6-4218-AE06-5EFDCA7B2547}
 		{A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA} = {A0004AEB-B47C-4A0A-8FE7-4F65B5FD48FA}

Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.cpp	2004-10-09 14:55:12 UTC (rev 7948)
@@ -35,8 +35,8 @@
 FLACEncodeInputPin::FLACEncodeInputPin(AbstractAudioEncodeFilter* inParentFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin)
 	:	AbstractAudioEncodeInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("FLACEncodeInputPin"), L"PCM In")
 	,	mTweakedHeaders(false)
-	,	mHeadersSeen(0)
 	
+	
 {
 	//debugLog.open("C:\\temp\\FLACenc.log", ios_base::out);
 }
@@ -141,66 +141,8 @@
 }
 
 
-//Encoded callback
-//int FLACEncodeInputPin::FLACEncoded (FishSound* inFishSound, unsigned char* inPacketData, long inNumBytes, void* inThisPointer) 
-//{
-//
-//	//For convenience we do all these cast once and for all here.
-//	FLACEncodeInputPin* locThis = reinterpret_cast<FLACEncodeInputPin*> (inThisPointer);
-//	FLACEncodeFilter* locFilter = reinterpret_cast<FLACEncodeFilter*>(locThis->m_pFilter);
-//	//locThis->debugLog << "FLACEncoded called with "<<inNumBytes<< " byte of data"<<endl;
-//
-//	//Time stamps are granule pos not directshow times
-//	LONGLONG locFrameStart = locThis->mUptoFrame;
-//	LONGLONG locFrameEnd	= locThis->mUptoFrame
-//							= fish_sound_get_frameno(locThis->mFishSound);
-//
-//	
-//	//locThis->debugLog << "Stamping packet "<<locFrameStart<< " to "<<locFrameEnd<<endl;
-//	//Get a pointer to a new sample stamped with our time
-//	IMediaSample* locSample;
-//	HRESULT locHR = locThis->mOutputPin->GetDeliveryBuffer(&locSample, &locFrameStart, &locFrameEnd, NULL);
-//
-//	if (FAILED(locHR)) {
-//		//We get here when the application goes into stop mode usually.
-//		//locThis->debugLog<<"Getting buffer failed"<<endl;
-//		return locHR;
-//	}	
-//	
-//	BYTE* locBuffer = NULL;
-//
-//	
-//	//Make our pointers set to point to the samples buffer
-//	locSample->GetPointer(&locBuffer);
-//
-//	
-//
-//	if (locSample->GetSize() >= inNumBytes) {
-//
-//		memcpy((void*)locBuffer, (const void*)inPacketData, inNumBytes);
-//		
-//		//Set the sample parameters.
-//		locThis->SetSampleParams(locSample, inNumBytes, &locFrameStart, &locFrameEnd);
-//
-//		{
-//			CAutoLock locLock(locThis->m_pLock);
-//
-//			//Add a reference so it isn't deleted en route.
-//			//locSample->AddRef();
-//			HRESULT locHR = locThis->mOutputPin->mDataQueue->Receive(locSample);						//->DownstreamFilter()->Receive(locSample);
-//			if (locHR != S_OK) {
-//				//locThis->debugLog<<"Sample rejected"<<endl;
-//			} else {
-//				//locThis->debugLog<<"Sample Delivered"<<endl;
-//			}
-//		}
-//
-//		return 0;
-//	} else {
-//		throw 0;
-//	}
-//}
 
+
 ::FLAC__StreamEncoderWriteStatus FLACEncodeInputPin::write_callback(const FLAC__byte inBuffer[], unsigned inNumBytes, unsigned inNumSamples, unsigned inCurrentFrame) {
 
 	//This is called back with encoded data after raw data is fed in by stream_encoder_process or
@@ -239,12 +181,75 @@
 	//	locBuffer[5] = 1;
 	//	locBuffer[6] = 0;
 
+	LONGLONG locFrameStart = 0;
+	LONGLONG locFrameEnd = 0;
 
-	LONGLONG locFrameStart = mUptoFrame;
+
+	if (!mTweakedHeaders) {
+		//Still handling headers...
+		unsigned char* locBuf = new unsigned char[inNumBytes];
+		memcpy((void*)locBuf, (const void*) inBuffer, inNumBytes);
+		FLACHeaderTweaker::eFLACAcceptHeaderResult locResult = mHeaderTweaker.acceptHeader(new OggPacket(locBuf, inNumBytes, false, false));
+		if (locResult == FLACHeaderTweaker::LAST_HEADER_ACCEPTED) {
+			//Send all the headers
+			mTweakedHeaders = true;
+
+			for (int i = 0; i < mHeaderTweaker.numNewHeaders(); i++) {
+				//Loop through firing out all the headers.
+
+
+				//Get a pointer to a new sample stamped with our time
+				IMediaSample* locSample;
+				HRESULT locHR = mOutputPin->GetDeliveryBuffer(&locSample, NULL, NULL, NULL);
+
+				if (FAILED(locHR)) {
+					//We get here when the application goes into stop mode usually.
+					//locThis->debugLog<<"Getting buffer failed"<<endl;
+					return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR;
+				}	
+				
+				BYTE* locBuffer = NULL;
+
+				//Make our pointers set to point to the samples buffer
+				locSample->GetPointer(&locBuffer);
+
+				memcpy((void*)locBuffer, (const void*)mHeaderTweaker.getHeader(i)->packetData(), mHeaderTweaker.getHeader(i)->packetSize());
+				
+				//Set the sample parameters. (stamps will be 0)
+				SetSampleParams(locSample, mHeaderTweaker.getHeader(i)->packetSize(), &locFrameStart, &locFrameEnd);
+
+				{
+					CAutoLock locLock(m_pLock);
+
+					
+					HRESULT locHR = mOutputPin->mDataQueue->Receive(locSample);						//->DownstreamFilter()->Receive(locSample);
+					if (locHR != S_OK) {
+						//locThis->debugLog<<"Sample rejected"<<endl;
+					} else {
+						//locThis->debugLog<<"Sample Delivered"<<endl;
+					}
+				}
+
+				return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
+
+
+			}
+
+			return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
+		} else if (locResult == FLACHeaderTweaker::HEADER_ACCEPTED) {
+			//Another header added.
+			return FLAC__STREAM_ENCODER_WRITE_STATUS_OK;
+		} else {
+			return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR;
+		}
+
+	}
+
+	locFrameStart = mUptoFrame;
 	if (inNumSamples != 0) {
 		mUptoFrame += inNumSamples;
 	}
-	LONGLONG locFrameEnd = mUptoFrame;
+	locFrameEnd = mUptoFrame;
 
 
 	//Get a pointer to a new sample stamped with our time

Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.h	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/FLACEncodeInputPin.h	2004-10-09 14:55:12 UTC (rev 7948)
@@ -36,6 +36,7 @@
 #include "FLACEncodeInputPin.h"
 
 #include "FLACEncodeFilter.h"
+#include "FLACHeaderTweaker.h"
 
 //extern "C" {
 //#include <fishsound/fishsound.h>
@@ -72,7 +73,8 @@
 	HRESULT mHR;
 	
 	bool mTweakedHeaders;
-	unsigned long mHeadersSeen;
+	FLACHeaderTweaker mHeaderTweaker;
+	//unsigned long mHeadersSeen;
 	//bool mBegun;
 	//SpeexDecodeOutputPin* mOutputPin;
 	//__int64 mUptoFrame;

Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/dsfFLACEncoder.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/dsfFLACEncoder.vcproj	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/dsfFLACEncoder.vcproj	2004-10-09 14:55:12 UTC (rev 7948)
@@ -19,7 +19,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore;..\..\libs\libFLACHelper"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DSFFLACENCODER_EXPORTS"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
@@ -79,7 +79,7 @@
 				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore;..\..\libs\libFLACHelper"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFFLACENCODER_EXPORTS"
 				RuntimeLibrary="2"
 				UsePrecompiledHeader="3"
@@ -138,7 +138,7 @@
 				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore;..\..\libs\libFLACHelper"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFFLACENCODER_EXPORTS"
 				RuntimeLibrary="2"
 				EnableEnhancedInstructionSet="2"
@@ -198,7 +198,7 @@
 				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
 				OptimizeForProcessor="3"
-				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore"
+				AdditionalIncludeDirectories="&quot;C:\DXSDK\Samples\C++\DirectShow\BaseClasses&quot;;C:\DXSDK\Include;..\..\..\..\core\directshow\dsfAbstractAudioEncoder;..\..\..\..\core\ogg\libOOOgg;..\..\..\..\core\directshow\dsfSeeking;..\..\libs\libflac\include;..\..\..\..\helper\libilliCore;..\..\libs\libFLACHelper"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFFLACENCODER_EXPORTS"
 				RuntimeLibrary="2"
 				EnableEnhancedInstructionSet="1"

Modified: trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/codecs/flac/filters/dsfFLACEncoder/flacencoderdllstuff.h	2004-10-09 14:55:12 UTC (rev 7948)
@@ -61,9 +61,9 @@
 #endif
 
 
-// {3913F0AB-E7ED-41c4-979B-1D1FDD983C07}
-DEFINE_GUID(MEDIASUBTYPE_FLAC, 
-0x3913f0ab, 0xe7ed, 0x41c4, 0x97, 0x9b, 0x1d, 0x1f, 0xdd, 0x98, 0x3c, 0x7);
+//// {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, 

Modified: trunk/oggdsf/src/lib/codecs/flac/libs/libFLACHelper/libFLACHelper.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/flac/libs/libFLACHelper/libFLACHelper.vcproj	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/codecs/flac/libs/libFLACHelper/libFLACHelper.vcproj	2004-10-09 14:55:12 UTC (rev 7948)
@@ -23,11 +23,12 @@
 				PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
 				MinimalRebuild="TRUE"
 				BasicRuntimeChecks="3"
-				RuntimeLibrary="5"
+				RuntimeLibrary="3"
 				UsePrecompiledHeader="3"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="4"/>
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool
@@ -62,11 +63,12 @@
 				Name="VCCLCompilerTool"
 				AdditionalIncludeDirectories="..\..\..\..\core\ogg\libOOOgg;..\..\..\..\helper\libilliCore"
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
-				RuntimeLibrary="4"
+				RuntimeLibrary="2"
 				UsePrecompiledHeader="3"
 				WarningLevel="3"
 				Detect64BitPortabilityProblems="TRUE"
-				DebugInformationFormat="3"/>
+				DebugInformationFormat="3"
+				CallingConvention="2"/>
 			<Tool
 				Name="VCCustomBuildTool"/>
 			<Tool

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggFLAC_1_0_Stream.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggFLAC_1_0_Stream.cpp	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggFLAC_1_0_Stream.cpp	2004-10-09 14:55:12 UTC (rev 7948)
@@ -148,7 +148,7 @@
 			unsigned char* locPackBuf = new unsigned char[42];
 			
 			//locPacket = (StampedOggPacket*)mCodecHeaders->getPacket(0)->clone();
-			memcpy((void*)locPackBuf, (const void*)mCodecHeaders->getPacket(0)->packetData() + 9, 42);
+			memcpy((void*)locPackBuf, (const void*)(mCodecHeaders->getPacket(0)->packetData() + 9), 42);
 			locPacket = new StampedOggPacket(locPackBuf, 42, false, false, 0, 0, StampedOggPacket::OGG_END_ONLY);
 		} else {
 			locPacket->merge(mCodecHeaders->getPacket(i));

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-10-09 14:55:12 UTC (rev 7948)
@@ -85,10 +85,10 @@
 			//Speex
 			sSpeexFormatBlock* locSpeex = (sSpeexFormatBlock*)inMediaType->pbFormat;
 			mMuxStream->setConversionParams(locSpeex->samplesPerSec, 1, 10000000);
-		} else if (inMediaType->subtype == MEDIASUBTYPE_FLAC) {
+		} else if (inMediaType->subtype == MEDIASUBTYPE_OggFLAC_1_0) {
 			sFLACFormatBlock* locFLAC = (sFLACFormatBlock*)inMediaType->pbFormat;
 			mMuxStream->setConversionParams(locFLAC->samplesPerSec, 1, 10000000);
-		}
+		} 
 	}
 	return S_OK;
 }
@@ -109,7 +109,7 @@
 			return S_OK;
 		case 3:
 			outMediaType->majortype = MEDIATYPE_Audio;
-			outMediaType->subtype = MEDIASUBTYPE_FLAC;
+			outMediaType->subtype = MEDIASUBTYPE_OggFLAC_1_0;
 			return S_OK;
 
 		default:
@@ -131,7 +131,7 @@
 				&& inMediaType->formattype == FORMAT_Speex)
 			||
 			(inMediaType->majortype == MEDIATYPE_Audio
-				&&	inMediaType->subtype == MEDIASUBTYPE_FLAC
+				&&	inMediaType->subtype == MEDIASUBTYPE_OggFLAC_1_0
 				&&	inMediaType->formattype == FORMAT_FLAC)
 		) {
 		return S_OK;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h	2004-10-09 13:49:31 UTC (rev 7947)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h	2004-10-09 14:55:12 UTC (rev 7948)
@@ -57,11 +57,15 @@
 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);
+//// {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);
@@ -82,9 +86,6 @@
 DEFINE_GUID(FORMAT_FLAC, 
 0x1cdc48ac, 0x4c24, 0x4b8b, 0x98, 0x2b, 0x70, 0x7, 0xa2, 0x9d, 0x83, 0xc4);
 
-// {2C409DB0-95BF-47ba-B0F5-587256F1EDCF}
-DEFINE_GUID(FORMAT_OggFLAC_1_0, 
-0x2c409db0, 0x95bf, 0x47ba, 0xb0, 0xf5, 0x58, 0x72, 0x56, 0xf1, 0xed, 0xcf);
 
 // {05187161-5C36-4324-A734-22BF37509F2D}
 DEFINE_GUID(CLSID_TheoraDecodeFilter, 
@@ -115,7 +116,7 @@
 	},
 	{
 		&MEDIATYPE_Audio,
-		&MEDIASUBTYPE_FLAC
+		&MEDIASUBTYPE_OggFLAC_1_0
 	},
 	{
 		&MEDIATYPE_Video,



More information about the commits mailing list