[xiph-commits] r8415 - in trunk/oggdsf: scripts/new reg scripts src/lib/codecs/cmml/dsfCMMLRawSource src/lib/core/directshow/dsfAnxMux src/lib/core/directshow/dsfOggMux

illiminable at motherfish-iii.xiph.org illiminable at motherfish-iii.xiph.org
Wed Dec 15 08:40:33 PST 2004


Author: illiminable
Date: 2004-12-15 08:40:32 -0800 (Wed, 15 Dec 2004)
New Revision: 8415

Added:
   trunk/oggdsf/scripts/new reg scripts/media_mime_app_anx.reg
Modified:
   trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/anxmuxdllstuff.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
Log:
* Allow CMML to be muxed into ogg.

Added: trunk/oggdsf/scripts/new reg scripts/media_mime_app_anx.reg
===================================================================
(Binary files differ)


Property changes on: trunk/oggdsf/scripts/new reg scripts/media_mime_app_anx.reg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp	2004-12-15 12:26:26 UTC (rev 8414)
+++ trunk/oggdsf/src/lib/codecs/cmml/dsfCMMLRawSource/CMMLRawSourcePin.cpp	2004-12-15 16:40:32 UTC (rev 8415)
@@ -3,6 +3,7 @@
 
 CMMLRawSourcePin::CMMLRawSourcePin(CMMLRawSourceFilter* inParentFilter, CCritSec* inFilterLock)
 	:	CBaseOutputPin(NAME("CMML Raw Source Pin"), inParentFilter, inFilterLock, &mFilterHR, L"CMML Source")
+	,	mDataQueue(NULL)
 
 {
 	mCMMLFormatBlock.granuleDenominator = 1;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/anxmuxdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/anxmuxdllstuff.h	2004-12-15 12:26:26 UTC (rev 8414)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxMux/anxmuxdllstuff.h	2004-12-15 16:40:32 UTC (rev 8415)
@@ -19,15 +19,15 @@
 0x6c5746d3, 0xd309, 0x4988, 0x86, 0x94, 0xd4, 0x35, 0xab, 0x86, 0x46, 0xd);
 
 
-// {53696C76-6961-40b2-B136-436F6E726164}
-DEFINE_GUID(FORMAT_CMML, 
-0x53696c76, 0x6961, 0x40b2, 0xb1, 0x36, 0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64);
+//// {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);
 
-
-// {5A656E74-6172-6F26-B79C-D6416E647282}
-DEFINE_GUID(MEDIASUBTYPE_CMML, 
-0x5a656e74, 0x6172, 0x6f26, 0xb7, 0x9c, 0xd6, 0x41, 0x6e, 0x64, 0x72, 0x82);
-
 // {BF1121D1-8739-45e1-BCD8-90B828F643AB}
 DEFINE_GUID(CLSID_CMMLDecodeFilter, 
 0xbf1121d1, 0x8739, 0x45e1, 0xbc, 0xd8, 0x90, 0xb8, 0x28, 0xf6, 0x43, 0xab);
@@ -76,7 +76,7 @@
 		
 };
 
-struct sCMMLFormatBlock {
-	__int64 granuleNumerator;
-	__int64 granuleDenominator;
-};
\ No newline at end of file
+//struct sCMMLFormatBlock {
+//	__int64 granuleNumerator;
+//	__int64 granuleDenominator;
+//};
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-12-15 12:26:26 UTC (rev 8414)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/OggMuxInputPin.cpp	2004-12-15 16:40:32 UTC (rev 8415)
@@ -119,9 +119,17 @@
 			mMuxStream->setConversionParams(locFLAC->samplesPerSec, 1, 10000000);
 			//debugLog<<"FLAC sample rate = "<<locFLAC->samplesPerSec<<endl;
 			mNeedsFLACHeaderTweak = true;
-		} 
+		}
 
 		
+	} else if (inMediaType->majortype == MEDIATYPE_Text) {
+		if (inMediaType->subtype == MEDIASUBTYPE_CMML) {
+			sCMMLFormatBlock* locCMML = (sCMMLFormatBlock*)inMediaType->pbFormat;
+			mMuxStream->setConversionParams(locCMML->granuleNumerator,locCMML->granuleDenominator, 10000000);
+			mPaginator.setNumHeaders(1);
+
+		}
+
 	}
 	return S_OK;
 }
@@ -147,8 +155,14 @@
 		case 4:
 			outMediaType->majortype = MEDIATYPE_Audio;
 			outMediaType->subtype = MEDIASUBTYPE_FLAC;
+			return S_OK;
 
+		case 5:
+			outMediaType->majortype = MEDIATYPE_Text;
+			outMediaType->subtype = MEDIASUBTYPE_CMML;
+			return S_OK;
 
+
 		default:
 			return VFW_S_NO_MORE_ITEMS;
 	
@@ -174,6 +188,10 @@
 			(inMediaType->majortype == MEDIATYPE_Audio
 				&&	inMediaType->subtype == MEDIASUBTYPE_FLAC
 				&&	inMediaType->formattype == FORMAT_FLAC)
+			||
+			(inMediaType->majortype == MEDIATYPE_Text
+				&&	inMediaType->subtype == MEDIASUBTYPE_CMML
+				&&	inMediaType->formattype == FORMAT_CMML)
 
 		) {
 		return S_OK;

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h	2004-12-15 12:26:26 UTC (rev 8414)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggMux/oggmuxdllstuff.h	2004-12-15 16:40:32 UTC (rev 8415)
@@ -107,7 +107,14 @@
 
 //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
 
 
@@ -131,7 +138,12 @@
 	{
 		&MEDIATYPE_Audio,
 		&MEDIASUBTYPE_FLAC
+	},
+	{
+		&MEDIATYPE_Text,
+		&MEDIASUBTYPE_CMML
 	}
+
 };
 const REGFILTERPINS OggMuxPinReg = {
 	
@@ -142,7 +154,7 @@
 	FALSE,								//Cannot have more than one instance of this pin
 	NULL,								//Connects to filter (obsoleted)
 	NULL,								//Connects to pin (obsoleted)
-	5,									//upport two media type
+	6,									//upport two media type
 	OggMuxInputTypes					//Pointer to media type (Audio/Vorbis or Audio/Speex)
 };
 
@@ -198,4 +210,9 @@
 	unsigned char xOffset;
 	unsigned char yOffset;
 	unsigned char colourSpace;
+};
+
+struct sCMMLFormatBlock {
+	__int64 granuleNumerator;
+	__int64 granuleDenominator;
 };
\ No newline at end of file



More information about the commits mailing list