[xiph-cvs] r6797 - in trunk/oggdsf: build/oggcodecs scripts sln/oggdsf_all src/lib/codecs/cmml src/lib/codecs/cmml/libCMMLTags src/lib/codecs/speex/filters/dsfSpeexDecoder src/lib/codecs/speex/filters/dsfSpeexEncoder src/lib/codecs/vorbis/filters/dsfVorbisDecoder src/lib/codecs/vorbis/filters/dsfVorbisEncoder src/lib/core/directshow src/lib/core/directshow/dsfAnxDemux src/lib/core/directshow/dsfOggDemux src/lib/core/directshow/dsfSubtitleVMR9

illiminable at xiph.org illiminable at xiph.org
Tue Jun 1 10:59:02 PDT 2004



Author: illiminable
Date: 2004-06-01 13:58:05 -0400 (Tue, 01 Jun 2004)
New Revision: 6797

Added:
   trunk/oggdsf/scripts/installanx.reg
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/AUTHORS
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Import.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/ReadMe.txt
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/config.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.h
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.cpp
   trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.h
   trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.h
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/ReadMe.txt
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.h
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.h
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitleVMR9.def
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h
Modified:
   trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
   trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
   trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeInputPin.cpp
   trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeInputPin.cpp
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
   trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h
   trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.h
   trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamMapper.h
Log:
Basic functionality of annodex filter done.

Included CMML codec contatiner classes.

Started a subtitle alpha-blending filter.

Modified: trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj
===================================================================
--- trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/build/oggcodecs/oggcodecs.vdproj	2004-06-01 17:58:05 UTC (rev 6797)
@@ -21,294 +21,324 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_E4B8E67DA0E54BB3BB025BFCF536BF3B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_1ED42AE022EB477985E46FA18A63F9A5"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\AUTHORS"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_2C5F38B64D1B4026848AEB8788C27EFC"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\HISTORY"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_EFEA71FFF2864107815DBDECCCCA1178"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\TOOLS\\OOOGGSTAT\\RELEASE\\OOOGGSTAT.EXE"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_DD3F37DC11D54B5996F597343A185E03"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_408749AC43894882BEEBFF43737E505B"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFSPEEXDECODER\\DEBUG\\DSFSPEEXDECODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOTHEORA\\RELEASE\\LIBOOTHEORA.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_DB60960DC12343B89500B86D5AB10D02"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFTHEORADECODER\\RELEASE\\DSFTHEORADECODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_578B89273D59478F861AA5BC3600D074"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFOGGMUX\\RELEASE\\DSFOGGMUX.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
         "OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
         "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_83AF8D74700947168B69E69E5160F082"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_65EFE52655DF4119A626446C8F593760"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_695A6D70DADB417491C0662D82245C2B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_65EFE52655DF4119A626446C8F593760"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_57E27F72FF7790C3FF18D6AB1F49D444"
+        "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCP70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOOGG\\RELEASE\\LIBOOOGG.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOOGGSEEK\\RELEASE\\LIBOOOGGSEEK.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_65EFE52655DF4119A626446C8F593760"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACTAUDIOENCODER\\RELEASE\\DSFABSTRACTAUDIOENCODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_695A6D70DADB417491C0662D82245C2B"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACTVIDEODECODER\\RELEASE\\DSFABSTRACTVIDEODECODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_408749AC43894882BEEBFF43737E505B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACOGGAUDIODECODER\\RELEASE\\DSFABSTRACOGGAUDIODECODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOGG\\WIN32\\DYNAMIC_DEBUG\\OGG_D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_154A3B2615B54174BE0B3307EDCA44FA"
-        "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
-        "MsmSig" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_81A3CDB604B64763884C387192BE6771"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\COPYRIGHTS"
         }
         "Entry"
         {
-        "MsmKey" = "8:_1ED42AE022EB477985E46FA18A63F9A5"
+        "MsmKey" = "8:_83AF8D74700947168B69E69E5160F082"
         "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\DEV\\OGGDSF\\AUTHORS"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBFLAC\\OBJ\\RELEASE\\BIN\\LIBFLAC.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_2C5F38B64D1B4026848AEB8788C27EFC"
+        "MsmKey" = "8:_8976C400668B453CB941859C4F3C6E27"
         "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\DEV\\OGGDSF\\HISTORY"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFFLACDECODER\\RELEASE\\DSFFLACDECODER.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
+        "MsmKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFSPEEXENCODER\\RELEASE\\DSFSPEEXENCODER.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CORE\\DIRECTSHOW\\DSFANXDEMUX\\DEBUG\\DSFANXDEMUX.DLL"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
         "OwnerKey" = "8:_0A1E63E5852E4F759F1A27E8F097727B"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_8F970C0B2593413CA2A3BBF5F2600387"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_FD547F0196C24DFBB9CAFCCEC06561BC"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_EFEA71FFF2864107815DBDECCCCA1178"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_E4B8E67DA0E54BB3BB025BFCF536BF3B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_360FD27B9B5249E397B5FBB3822E902F"
-        "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
-        "MsmSig" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_DD3F37DC11D54B5996F597343A185E03"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\TOOLS\\OOOGGSTAT\\RELEASE\\OOOGGSTAT.EXE"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_DCF4ED7597F8492AA49DC521111ED0F5"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_408749AC43894882BEEBFF43737E505B"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFSPEEXDECODER\\DEBUG\\DSFSPEEXDECODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_DB60960DC12343B89500B86D5AB10D02"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOTHEORA\\RELEASE\\LIBOOTHEORA.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFTHEORADECODER\\RELEASE\\DSFTHEORADECODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_578B89273D59478F861AA5BC3600D074"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFOGGMUX\\RELEASE\\DSFOGGMUX.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_8976C400668B453CB941859C4F3C6E27"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_58F56CD02F64413B9459F3E151760A57"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOOGG\\RELEASE\\LIBOOOGG.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_83AF8D74700947168B69E69E5160F082"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOOOGGSEEK\\RELEASE\\LIBOOOGGSEEK.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_65EFE52655DF4119A626446C8F593760"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACTAUDIOENCODER\\RELEASE\\DSFABSTRACTAUDIOENCODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_695A6D70DADB417491C0662D82245C2B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_695A6D70DADB417491C0662D82245C2B"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACTVIDEODECODER\\RELEASE\\DSFABSTRACTVIDEODECODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_65EFE52655DF4119A626446C8F593760"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFABSTRACOGGAUDIODECODER\\RELEASE\\DSFABSTRACOGGAUDIODECODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_5EB08DD30B564283AA9C9F27D80CF9E4"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_7508A3C0459B47439D67D2C7249DD169"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBOGG\\WIN32\\DYNAMIC_DEBUG\\OGG_D.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_58F56CD02F64413B9459F3E151760A57"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_81A3CDB604B64763884C387192BE6771"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:G:\\DEV\\OGGDSF\\COPYRIGHTS"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_578B89273D59478F861AA5BC3600D074"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_83AF8D74700947168B69E69E5160F082"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\LIBFLAC\\OBJ\\RELEASE\\BIN\\LIBFLAC.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8976C400668B453CB941859C4F3C6E27"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFFLACDECODER\\RELEASE\\DSFFLACDECODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_4EB6175B98B54613A5087D8EA257D00A"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8D9A2E4C592D4118B80A4AE8394D8963"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFSPEEXENCODER\\RELEASE\\DSFSPEEXENCODER.DLL"
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_408749AC43894882BEEBFF43737E505B"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
         }
         "Entry"
         {
+        "MsmKey" = "8:_9A2ADE669A100D71F9E0B3753CDA677A"
+        "OwnerKey" = "8:_3C7C3E6B832E481C8A36701A33FF3721"
+        "MsmSig" = "8:C:\\WINDOWS\\SYSTEM32\\MSVCR70D.DLL"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_A5AAB8CB90C548F1820BC101A765616C"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:E:\\PROJECTS\\C++\\OGG\\LIBOOOGG\\DSFSEEKING\\RELEASE\\DSFSEEKING.DLL"
@@ -321,9 +351,9 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_D7835E050C942DE27CB20AF3D1EC70F4"
+        "MsmKey" = "8:_B2784574F1B848EABBE013669B46808C"
         "OwnerKey" = "8:_DB60960DC12343B89500B86D5AB10D02"
-        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\FLAC\\LIBS\\LIBFLAC\\OBJ\\RELEASE\\BIN\\LIBFLAC.DLL"
+        "MsmSig" = "8:G:\\DEV\\OGGDSF\\SRC\\LIB\\CODECS\\FLAC\\LIBS\\LIBFLAC\\OBJ\\DEBUG\\BIN\\LIBFLAC.DLL"
         }
         "Entry"
         {
@@ -459,6 +489,27 @@
             "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
+            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_57E27F72FF7790C3FF18D6AB1F49D444"
+            {
+            "Signature" = "8:2000000080dd2a10d295c1010a34accfe346c40180dd2a10d295c1010000000000400b0000000000000000006d0073007600630070003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "SourcePath" = "8:MSVCP70D.dll"
+            "TargetName" = "8:MSVCP70D.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
             "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_81A3CDB604B64763884C387192BE6771"
             {
             "SourcePath" = "8:..\\..\\COPYRIGHTS"
@@ -479,9 +530,30 @@
             "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
-            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_D7835E050C942DE27CB20AF3D1EC70F4"
+            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_9A2ADE669A100D71F9E0B3753CDA677A"
             {
-            "Signature" = "8:20000000d435aab5183fc40152cfd044643fc401ea72f845643fc4010000000000ea010000000000000000006c006900620046004c00410043002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "Signature" = "8:20000000803a49fed195c1014848a0cfe346c401803a49fed195c101000000000030080000000000000000006d0073007600630072003700300064002e0064006c006c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+            "SourcePath" = "8:MSVCR70D.dll"
+            "TargetName" = "8:MSVCR70D.dll"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
+            "IsolateTo" = "8:"
+            }
+            "{54DA9790-1474-11D3-8E00-00C04F6837D0}:_B2784574F1B848EABBE013669B46808C"
+            {
+            "Signature" = "8:20000000eede0c6d813ac4019405b5fbdf46c401e4970532e046c401000000000080030000000000000000006c006900620046004c00410043002e0064006c006c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
             "SourcePath" = "8:libFLAC.dll"
             "TargetName" = "8:libFLAC.dll"
             "Tag" = "8:"
@@ -760,7 +832,7 @@
         {
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_0A1E63E5852E4F759F1A27E8F097727B"
             {
-            "SourcePath" = "8:..\\..\\src\\tools\\OOOggDump\\Release\\OOOggDump.exe"
+            "SourcePath" = "8:..\\..\\src\\tools\\OOOggDump\\Debug\\OOOggDump.exe"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -789,7 +861,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_3C7C3E6B832E481C8A36701A33FF3721"
             {
-            "SourcePath" = "8:..\\..\\src\\tools\\OOOggStat\\Release\\OOOggStat.exe"
+            "SourcePath" = "8:..\\..\\src\\tools\\OOOggStat\\Debug\\OOOggStat.exe"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -818,7 +890,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_408749AC43894882BEEBFF43737E505B"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\speex\\filters\\dsfSpeexDecoder\\Release\\dsfSpeexDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\speex\\filters\\dsfSpeexDecoder\\Debug\\dsfSpeexDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -847,7 +919,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_4EB6175B98B54613A5087D8EA257D00A"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\libs\\libOOTheora\\Release\\libOOTheora.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\libs\\libOOTheora\\Debug\\libOOTheora.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -876,7 +948,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_56CADC6C2BCD4C178BC0C0AA13ABFEBF"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\filters\\dsfTheoraDecoder\\Release\\dsfTheoraDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\filters\\dsfTheoraDecoder\\Debug\\dsfTheoraDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -905,7 +977,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_578B89273D59478F861AA5BC3600D074"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfOggMux\\Release\\dsfOggMux.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfOggMux\\Debug\\dsfOggMux.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -934,7 +1006,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_58F56CD02F64413B9459F3E151760A57"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libOOOgg\\Release\\libOOOgg.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libOOOgg\\Debug\\libOOOgg.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -963,7 +1035,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_5EB08DD30B564283AA9C9F27D80CF9E4"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libOOOggSeek\\Release\\libOOOggSeek.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libOOOggSeek\\Debug\\libOOOggSeek.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -992,7 +1064,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_65EFE52655DF4119A626446C8F593760"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractAudioEncoder\\Release\\dsfAbstractAudioEncoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractAudioEncoder\\Debug\\dsfAbstractAudioEncoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1021,7 +1093,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_695A6D70DADB417491C0662D82245C2B"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractVideoDecoder\\Release\\dsfAbstractVideoDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractVideoDecoder\\Debug\\dsfAbstractVideoDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1050,7 +1122,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_72A8CAFC6236498AA2DE5E1CBCAFC91B"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractAudioDecoder\\Release\\dsfAbstracOggAudioDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAbstractAudioDecoder\\Debug\\dsfAbstracOggAudioDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1079,7 +1151,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_7508A3C0459B47439D67D2C7249DD169"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libogg\\win32\\Dynamic_Release\\ogg.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\ogg\\libogg\\win32\\dynamic_debug\\ogg_d.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1108,7 +1180,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_83AF8D74700947168B69E69E5160F082"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\libs\\libflac\\obj\\release\\bin\\libFLAC.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\libs\\libflac\\obj\\debug\\bin\\libFLAC.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1137,7 +1209,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_8976C400668B453CB941859C4F3C6E27"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\filters\\dsfFLACDecoder\\Release\\dsfFLACDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\filters\\dsfFLACDecoder\\Debug\\dsfFLACDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1166,7 +1238,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_8D9A2E4C592D4118B80A4AE8394D8963"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\speex\\filters\\dsfSpeexEncoder\\Release\\dsfSpeexEncoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\speex\\filters\\dsfSpeexEncoder\\Debug\\dsfSpeexEncoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1193,9 +1265,38 @@
                 {
                 }
             }
+            "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_8F970C0B2593413CA2A3BBF5F2600387"
+            {
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAnxDemux\\Debug\\dsfAnxDemux.dll"
+            "TargetName" = "8:"
+            "Tag" = "8:"
+            "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
+            "Condition" = "8:"
+            "Transitive" = "11:FALSE"
+            "Vital" = "11:TRUE"
+            "ReadOnly" = "11:FALSE"
+            "Hidden" = "11:FALSE"
+            "System" = "11:FALSE"
+            "Permanent" = "11:FALSE"
+            "SharedLegacy" = "11:FALSE"
+            "PackageAs" = "3:1"
+            "Register" = "3:1"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
+            "IsolateTo" = "8:"
+            "ProjectOutputGroupRegister" = "3:4"
+            "OutputConfiguration" = "8:"
+            "OutputGroupCanonicalName" = "8:Built"
+            "OutputProjectCanonicalName" = "8:..\\..\\src\\lib\\core\\directshow\\dsfAnxDemux\\dsfAnxDemux.vcproj"
+            "OutputProjectGuid" = "8:{F9F22B14-22FE-4651-81B8-5AE267A6B189}"
+            "ShowKeyOutput" = "11:TRUE"
+                "ExcludeFilters"
+                {
+                }
+            }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_A5AAB8CB90C548F1820BC101A765616C"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfSeeking\\Release\\dsfSeeking.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfSeeking\\Debug\\dsfSeeking.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1224,7 +1325,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_AFF84F5FBA224F8A8D4BB3ACA539DC8B"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\libs\\libvorbis\\win32\\Vorbis_Dynamic_Release\\vorbis.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\libs\\libvorbis\\win32\\vorbis_dynamic_debug\\vorbis_d.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1253,7 +1354,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_DB60960DC12343B89500B86D5AB10D02"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\libs\\libflac\\obj\\release\\bin\\libFLAC++.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\flac\\libs\\libflac\\obj\\debug\\bin\\libFLAC++.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1282,7 +1383,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_DCF4ED7597F8492AA49DC521111ED0F5"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfOggDemux\\Release\\dsfOggDemux.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\core\\directshow\\dsfOggDemux\\Debug\\dsfOggDemux.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1311,7 +1412,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_DD3F37DC11D54B5996F597343A185E03"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\libs\\libtheora\\win32\\libtheora\\Release\\libtheora.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\theora\\libs\\libtheora\\win32\\libtheora\\Debug\\libtheora.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1340,7 +1441,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_E4B8E67DA0E54BB3BB025BFCF536BF3B"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\helper\\libfishsound\\win32\\Release\\libfishsound.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\helper\\libfishsound\\win32\\Debug\\libfishsound.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1369,7 +1470,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_EFEA71FFF2864107815DBDECCCCA1178"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\filters\\dsfVorbisDecoder\\Release\\dsfVorbisDecoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\filters\\dsfVorbisDecoder\\Debug\\dsfVorbisDecoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1398,7 +1499,7 @@
             }
             "{B1E2BB22-187D-11D3-8E02-00C04F6837D0}:_FD547F0196C24DFBB9CAFCCEC06561BC"
             {
-            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\filters\\dsfVorbisEncoder\\Release\\dsfVorbisEncoder.dll"
+            "SourcePath" = "8:..\\..\\src\\lib\\codecs\\vorbis\\filters\\dsfVorbisEncoder\\Debug\\dsfVorbisEncoder.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_371AD289B6DB4693BDF7568485051F1E"
@@ -1431,7 +1532,7 @@
         "Name" = "8:Microsoft Visual Studio"
         "ProductName" = "8:oggcodecs"
         "ProductCode" = "8:{778DA93A-8AE4-4AD8-BF3E-43DA8AC06994}"
-        "PackageCode" = "8:{AE3B4C71-1C28-4922-A5FA-223A8DC677AB}"
+        "PackageCode" = "8:{B66F81F8-03A2-4599-86F0-6816729B962C}"
         "UpgradeCode" = "8:{1A644FEB-7597-4FAB-AADE-C2C7C64C5984}"
         "RestartWWWService" = "11:FALSE"
         "RemovePreviousVersions" = "11:TRUE"
@@ -1457,58 +1558,6 @@
         }
         "MergeModule"
         {
-            "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_154A3B2615B54174BE0B3307EDCA44FA"
-            {
-            "UseDynamicProperties" = "11:TRUE"
-            "IsDependency" = "11:TRUE"
-            "SourcePath" = "8:vc_crt.msm"
-            "ModuleSignature" = "8:VC_User_CRT.BA9B6D09_0DE0_11D5_A548_0090278A1BB8"
-                "Properties"
-                {
-                    "DIR_RETARGET_TARGETDIR"
-                    {
-                    "Name" = "8:DIR_RETARGET_TARGETDIR"
-                    "DisplayName" = "8:Module Retargetable Folder"
-                    "Description" = "8:"
-                    "Type" = "3:10"
-                    "ContextData" = "8:IsolationDir"
-                    "Attributes" = "3:6"
-                    "Setting" = "3:1"
-                    "UsePlugInResources" = "11:FALSE"
-                    }
-                }
-            "LanguageId" = "3:0"
-            "Exclude" = "11:FALSE"
-            "Folder" = "8:"
-            "Feature" = "8:"
-            "IsolateTo" = "8:"
-            }
-            "{AC8774A4-3E09-11D3-8E14-00C04F6837D0}:_360FD27B9B5249E397B5FBB3822E902F"
-            {
-            "UseDynamicProperties" = "11:TRUE"
-            "IsDependency" = "11:TRUE"
-            "SourcePath" = "8:vc_stl.msm"
-            "ModuleSignature" = "8:VC_User_STL.BA9B76E9_0DE0_11D5_A548_0090278A1BB8"
-                "Properties"
-                {
-                    "DIR_RETARGET_TARGETDIR"
-                    {
-                    "Name" = "8:DIR_RETARGET_TARGETDIR"
-                    "DisplayName" = "8:Module Retargetable Folder"
-                    "Description" = "8:"
-                    "Type" = "3:10"
-                    "ContextData" = "8:IsolationDir"
-                    "Attributes" = "3:6"
-                    "Setting" = "3:1"
-                    "UsePlugInResources" = "11:FALSE"
-                    }
-                }
-            "LanguageId" = "3:0"
-            "Exclude" = "11:FALSE"
-            "Folder" = "8:"
-            "Feature" = "8:"
-            "IsolateTo" = "8:"
-            }
         }
         "UserInterface"
         {

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

<p>Property changes on: trunk/oggdsf/scripts/installanx.reg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln
===================================================================
--- trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/sln/oggdsf_all/oggdsf_all.sln	2004-06-01 17:58:05 UTC (rev 6797)
@@ -53,6 +53,10 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfAnxDemux", "..\..\src\lib\core\directshow\dsfAnxDemux\dsfAnxDemux.vcproj", "{F9F22B14-22FE-4651-81B8-5AE267A6B189}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCMMLTags", "..\..\src\lib\codecs\cmml\libCMMLTags\libCMMLTags.vcproj", "{AD38DCC6-B431-4B32-8569-74F3376EF2DA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsfSubtitleVMR9", "..\..\src\lib\core\directshow\dsfSubtitleVMR9\dsfSubtitleVMR9.vcproj", "{88532BA9-1EED-421F-84BF-88A7A87FB2D3}"
+EndProject
 Global
         GlobalSection(SolutionConfiguration) = preSolution
                 ConfigName.0 = Debug
@@ -576,6 +580,26 @@
                 {F9F22B14-22FE-4651-81B8-5AE267A6B189}.Release.Build.0 = Release|Win32
                 {F9F22B14-22FE-4651-81B8-5AE267A6B189}.Release Unicode.ActiveCfg = Release|Win32
                 {F9F22B14-22FE-4651-81B8-5AE267A6B189}.Release Unicode.Build.0 = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Debug.ActiveCfg = Debug|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Debug.Build.0 = Debug|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Debug Unicode.ActiveCfg = Debug|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Debug Unicode.Build.0 = Debug|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.MakeFile.ActiveCfg = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.MakeFile.Build.0 = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Release.ActiveCfg = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Release.Build.0 = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Release Unicode.ActiveCfg = Release|Win32
+		{AD38DCC6-B431-4B32-8569-74F3376EF2DA}.Release Unicode.Build.0 = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Debug.ActiveCfg = Debug|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Debug.Build.0 = Debug|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Debug Unicode.ActiveCfg = Debug|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Debug Unicode.Build.0 = Debug|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.MakeFile.ActiveCfg = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.MakeFile.Build.0 = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Release.ActiveCfg = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Release.Build.0 = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Release Unicode.ActiveCfg = Release|Win32
+		{88532BA9-1EED-421F-84BF-88A7A87FB2D3}.Release Unicode.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(ExtensibilityGlobals) = postSolution
         EndGlobalSection

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/AUTHORS
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/AUTHORS	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/AUTHORS	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1 @@
+Zentaro Kavanagh <zen at illiminable.com>
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,103 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+
+#include "StdAfx.h"
+#include ".\c_anchortag.h"
+
+//Constructors
+C_AnchorTag::C_AnchorTag(void)
+{
+	//Set the tag type
+	mTagType = C_CMMLTag::eTagType::ANCHOR;
+}
+
+C_AnchorTag::~C_AnchorTag(void)
+{
+}
+C_AnchorTag* C_AnchorTag::clone() {
+	C_AnchorTag* retTag = new C_AnchorTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_AnchorTag::genericClone() {
+	return clone();
+}
+
+//Accessors
+string C_AnchorTag::cls() {
+	return mCls;
+}
+string C_AnchorTag::href() {
+	return mHref;
+}
+
+//Mutators
+void C_AnchorTag::setCls(string inCls)  {
+	mCls = inCls;
+}
+void C_AnchorTag::setHref(string inHref)  {
+	mHref = inHref;
+}
+
+//Other
+string C_AnchorTag::toString()  {
+	//TO DO::: 
+
+	string retStr =	"<a";
+	//Put in the id element if there is one
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+
+	if (mCls.size() != 0) {
+		retStr += makeElement("class", mCls);
+	}
+
+	retStr += makeElement("href", mHref);
+
+	retStr += ">";
+	retStr += mText;
+	retStr += "</a>\n";
+	
+	return retStr;
+}
+
+void C_AnchorTag::privateClone(C_CMMLTag* outTag) {
+	C_TextFieldTag::privateClone(outTag);
+	C_AnchorTag* locTag = reinterpret_cast<C_AnchorTag*>(outTag);
+	locTag->mCls = mCls;
+	locTag->mHref = mHref;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_AnchorTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,74 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_TextFieldTag.h"
+
+class LIBCMMLTAGS_API C_AnchorTag
+	//Derived Classes
+	: public C_TextFieldTag
+{
+public:
+	//Constructors
+	C_AnchorTag(void);
+	virtual ~C_AnchorTag(void);
+
+	//Accessors
+	string cls();
+	string href();
+
+	//Mutators
+	void setCls(string inCls);
+	void setHref(string inHref);
+
+	//Other
+	virtual string toString();
+	C_AnchorTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+protected:
+	//Property Data
+	string mCls;
+	string mHref;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,83 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "StdAfx.h"
+#include ".\c_basetag.h"
+
+C_BaseTag::C_BaseTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::BASE;
+}
+
+C_BaseTag::~C_BaseTag(void)
+{
+}
+
+//Accessors
+string C_BaseTag::href() {
+	return mHref;
+}
+
+//Mutators
+void C_BaseTag::setHref(string inHref) {
+	mHref = inHref;
+}
+
+//Other
+C_BaseTag* C_BaseTag::clone() {
+	C_BaseTag* retTag = new C_BaseTag;
+	privateClone(retTag);
+	return retTag;
+}
+
+C_CMMLTag* C_BaseTag::genericClone() {
+	return clone();
+}
+string C_BaseTag::toString() {
+	//FIX ::: Make this do something
+	string retStr = "<base";
+
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+
+	retStr += makeElement("href", mHref);
+	retStr += "/>\n";
+	return retStr;
+}
+
+void C_BaseTag::privateClone(C_CMMLTag* outTag) {
+	C_CMMLTag::privateClone(outTag);
+	((C_BaseTag*)outTag)->mHref = mHref;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_BaseTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,70 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_CMMLTag.h"
+
+class LIBCMMLTAGS_API C_BaseTag
+	//Derived Classes
+	: public C_CMMLTag
+{
+public:
+	//Constructors
+	C_BaseTag(void);
+	virtual ~C_BaseTag(void);
+
+	//Accessors
+	string href();
+
+	//Mutators
+	void setHref(string inHref);
+
+	//Other
+	virtual string toString();
+	C_BaseTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+protected:
+	//Property Data
+	string mHref;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,61 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cmmldoc.h"
+
+C_CMMLDoc::C_CMMLDoc(void)
+{
+	mPreamble = new C_CMMLPreamble;
+
+}
+
+C_CMMLDoc::~C_CMMLDoc(void)
+{
+	delete mPreamble;
+}
+
+C_CMMLPreamble* C_CMMLDoc::preamble() {
+	return mPreamble;
+}
+C_CMMLRootTag* C_CMMLDoc::root() {
+	return mRoot;
+}
+void C_CMMLDoc::setRoot(C_CMMLRootTag* inRootTag) {
+	mRoot = inRootTag;
+}
+string C_CMMLDoc::toString() {
+	string retStr = mPreamble->toString();
+	retStr += mRoot->toString();
+	return retStr;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLDoc.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,162 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+//These are the original callbacks... need to provide an interface that does not 
+//include the C structs and hopefully no void*
+//
+//typedef int (*CMMLReadStreamCB)  (CMML *cmml, const CMML_Stream *stream, void * user_data);
+//typedef int (*CMMLReadHeadCB)   (CMML *cmml, const CMML_Head *head, void * user_data);
+//typedef int (*CMMLReadClipCB) (CMML *cmml, const CMML_Clip *clip, void * user_data);
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_CMMLPreamble.h"
+#include "C_CMMLRootTag.h"
+//#include "C_CMMLError.h"
+
+
+//typedef int (*CMMLReadStreamCB)  (const C_StreamTag *inStream, void * user_data);
+//typedef int (*CMMLReadHeadCB)   (const C_HeadTag *inHead, void * user_data);
+//typedef int (*CMMLReadClipCB) (const C_ClipTag *inClip, void * user_data);
+
+
+class LIBCMMLTAGS_API C_CMMLDoc
+{
+public:
+	//Constructors
+	C_CMMLDoc(void);
+	virtual ~C_CMMLDoc(void);
+
+	C_CMMLPreamble* preamble();
+	C_CMMLRootTag* root();
+
+	void setRoot(C_CMMLRootTag* inRootTag);
+
+	virtual string toString();
+	C_CMMLDoc* clone();
+	
+
+	//Opening files
+	//bool open(string inFilename);
+	//bool open(string inFilename, CMMLReadStreamCB inStreamCB, CMMLReadHeadCB inHeadCB, CMMLReadClipCB inClipCB);
+	//ISSUE ::: Void pointer on interface...
+	//bool open(string inFilename, CMMLReadStreamCB inStreamCB, CMMLReadHeadCB inHeadCB, CMMLReadClipCB inClipCB, void* inUserData);
+	//ISSUE ::: Find a way to allow the passing in of a fstream
+	
+	
+
+	//Close the file. Releases resources but leaves the object capable of handling
+	//another file.
+	//void close();
+
+	//Load all the callbacks if they were unknown at open
+	// or if they have to be changed mid parse.
+	//bool setCallbacks(CMMLReadStreamCB inStreamCB, CMMLReadHeadCB inHeadCB, CMMLReadClipCB inClipCB, void* inUserData);
+
+	//Ask the underlying library to read a certain number of bytes
+	//void read(unsigned long inNumBytes);
+
+	//The the underlying library to read to the end of the file.
+	// This is useful to do initially to read the entire file
+	//void readToEnd();
+
+	//Resets the filestream, removes all stored tag data, but DOES NOT
+	// remove the file stream or the callbacks
+	//void resetFile();
+
+	//Removes the associated file, removes all stored tag data, resets all the
+	// callbacks. This brings it back to it's initial state as it was when
+	// constructed with no parameters before it was attached to any files or callbacks.
+
+	//Currently just clear all tags by deleting them
+	//void clearAll();
+
+	//Accessors
+	//Is the file ready to go. ie has a file been attached and opened.
+	//bool isStreamReady();
+
+	//NO READ OPERATIONS CAN TAKE PLACE WHILE EITHER OF THE TWO FOLLOWING REPORT TRUE
+
+	//Is it at the end of the file
+	//bool isEOF();
+
+	//Is there an error reading the stream.
+	//bool isStreamError();
+
+	//Returns a pointer to the last CMML error. Or NULL if no error.
+	//These are parsing errors. They ARE NOT the same as the stream errors.
+	//They represent badly formatted documents not errors in reading the data.
+	//You shouldn't call this unless CMMLError is true.
+	//C_CMMLError* lastCMMLError();
+
+	//Returns if there is a CMML error pending.
+	//bool isCMMLError();
+
+	//ALL THE FOLLOWING WILL RETURN NULL IF THEY DON"T EXIST OR HAVE NOT BEEN 
+	// READ YET.
+	
+	//Returns a pointer to the list of clips already read. Should never return NULL
+	// As each new clip is read it is appended to the end of the clip list.
+	// The clip list object can tell you about how many clips have been read
+	// and you can access them by number.
+	//ISSUE ::: Should they also be able to be retrieved by id ??
+	//C_ClipTagList* clipList();
+
+	//Returns a pointer to the most recently read clip or if the entire file is
+	// read the last clip in the file
+	//C_ClipTag* lastClip();
+
+	//Returns a pointer to the second last clip that waas read or if the entire file
+	// has been read, the previous clip in the file.
+	//C_ClipTag* previousClip();
+
+
+
+
+protected:
+	C_CMMLPreamble* mPreamble;
+	C_CMMLRootTag* mRoot;
+	//bool mIsStreamReady;
+	//bool mIsEOF;
+	//bool mIsStreamError;
+
+
+
+	//C_CMMLError* mLastError;
+	
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,58 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cmmlerror.h"
+
+C_CMMLError::C_CMMLError(unsigned long inLine, unsigned long inCol, unsigned long inErrorCode)
+{
+	mLine = inLine;
+	mCol = inCol;
+	mErrorCode = inErrorCode;
+}
+
+C_CMMLError::~C_CMMLError(void)
+{
+}
+
+
+//Accessors
+unsigned long C_CMMLError::line() {
+	return mLine;
+}
+unsigned long C_CMMLError::col() {
+	return mCol;
+}
+unsigned long C_CMMLError::errorCode() {
+	return mErrorCode;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLError.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,57 @@
+
+
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+
+class LIBCMMLTAGS_API C_CMMLError
+{
+public:
+	//Constructors
+	C_CMMLError(unsigned long inLine, unsigned long inCol, unsigned long inErrorCode);
+	~C_CMMLError(void);
+
+	//Accessors
+	unsigned long line();
+	unsigned long col();
+	unsigned long errorCode();
+
+	//No Mutators
+
+protected:
+	unsigned long mErrorCode;
+	unsigned long mLine;
+	unsigned long mCol;
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,89 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cmmlpreamble.h"
+
+C_CMMLPreamble::C_CMMLPreamble(void)
+{
+	mXmlVersion = "1.0";
+	mXmlEncoding = "UTF-8";
+	mXmlStandAlone = "yes";
+
+}
+
+C_CMMLPreamble::~C_CMMLPreamble(void)
+{
+}
+
+//Accessors
+string C_CMMLPreamble::xmlVersion() {
+	return mXmlVersion;
+}
+string C_CMMLPreamble::xmlEncoding() {
+	return mXmlEncoding;
+}
+string C_CMMLPreamble::xmlStandAlone() {
+	return mXmlStandAlone;
+}
+
+
+//Mutators
+void C_CMMLPreamble::setXmlVersion(string inVersion) {
+
+}
+void C_CMMLPreamble::setXmlEncoding(string inEncoding) {
+
+}
+void C_CMMLPreamble::setXmlStandAlone(string inStandAlone) {
+}
+
+
+
+//Others
+string C_CMMLPreamble::toString() {
+    string retStr;
+	retStr = "<?xml version=\"";
+	retStr += mXmlVersion;
+	retStr += "\" encoding=\"";
+	retStr += mXmlEncoding;
+	retStr += "\" standalone=\"";
+	retStr += mXmlStandAlone;
+	retStr += "\"?>\n";
+	
+	//TO DO::: Make this more generalised properly
+	retStr += "<!DOCTYPE cmml SYSTEM \"cmml.dtd\">\n";
+
+	return retStr;
+
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLPreamble.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,79 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+class LIBCMMLTAGS_API C_CMMLPreamble
+{
+public:
+	//Constructors
+	C_CMMLPreamble(void);
+	virtual ~C_CMMLPreamble(void);
+
+	//Accessors
+	string xmlVersion();
+	string xmlEncoding();
+	string xmlStandAlone();
+	
+	//Mutators
+	void setXmlVersion(string inVersion);
+	void setXmlEncoding(string inEncoding);
+	void setXmlStandAlone(string inStandAlone);
+
+	//Others
+	virtual string toString();
+
+
+protected:
+	//Original Structure
+	//
+	//typedef struct {
+	//	char *xml_version;      /**< version attribute of xml proc instr */
+	//	char *xml_encoding;     /**< encoding attribute of xml proc instr */
+	//	int   xml_standalone;   /**< standalone attribute of xml proc instr */
+	//	int   doctype_declared; /**< was doctype declared */
+	//	char *cmml_lang;        /**< lang attribute of cmml tag */
+	//	char *cmml_dir;         /**< dir attribute of cmml tag */
+	//	char *cmml_id;          /**< id attribute of cmml tag */
+	//	char *cmml_xmlns;       /**< xmlns attribute of cmml tag */
+	//} CMML_Preamble;
+
+	//Property Data
+	string mXmlVersion;
+	string mXmlEncoding;
+	string mXmlStandAlone;
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,125 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cmmlroottag.h"
+
+C_CMMLRootTag::C_CMMLRootTag(void)
+{
+	
+	mStream = NULL;
+	mHead = new C_HeadTag;
+	mClipList = new C_ClipTagList;
+}
+
+C_CMMLRootTag::~C_CMMLRootTag(void)
+{
+	
+	delete mStream;
+	delete mHead;
+	delete mClipList;
+}
+
+
+C_StreamTag* C_CMMLRootTag::stream() {
+	return mStream;
+}
+C_HeadTag* C_CMMLRootTag::head() {
+	return mHead;
+}
+C_ClipTagList* C_CMMLRootTag::clipList() {
+	return mClipList;
+}
+
+void C_CMMLRootTag::setClipList(C_ClipTagList* inClipList) {
+	delete mClipList;
+	mClipList = inClipList;
+}
+
+void C_CMMLRootTag::setStream(C_StreamTag* inStreamTag) {
+	delete mStream;
+	mStream = inStreamTag;
+
+}
+void C_CMMLRootTag::setHead(C_HeadTag* inHeadTag) {
+	//Delete the existing one
+	delete mHead;
+	mHead = inHeadTag;
+}
+
+void C_CMMLRootTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_CMMLRootTag* locTag = reinterpret_cast<C_CMMLRootTag*>(outTag);
+	locTag->setStream(mStream->clone());
+	locTag->setHead(mHead->clone());
+	locTag->setClipList(mClipList->clone());
+	
+
+}
+C_CMMLTag* C_CMMLRootTag::genericClone() {
+	return clone();
+}
+
+C_CMMLRootTag* C_CMMLRootTag::clone() {
+	C_CMMLRootTag* retTag = new C_CMMLRootTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+
+string C_CMMLRootTag::toString() {
+	string retStr;
+	retStr = "<cmml";
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+
+	if (mLang.size() != 0) {
+		retStr += makeElement("lang", mLang);
+		//Assuming that if lang is set then so is dirn.
+		//Also lets dirn default to "ltr" and still not be displayed
+		//unless the language is defined
+		retStr += makeElement("dir", mDirn);
+	}
+
+	
+	retStr += ">\n";
+	if (mStream != NULL) {
+		retStr += mStream->toString();
+	}
+
+	retStr += mHead->toString();
+	retStr += mClipList->toString();
+	retStr += "</cmml>\n";
+	return retStr;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLRootTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,82 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_CMMLTag.h"
+#include "C_HumReadCMMLTag.h"
+#include "C_StreamTag.h"
+#include "C_HeadTag.h"
+#include "C_ClipTagList.h"
+
+class LIBCMMLTAGS_API C_CMMLRootTag :
+	//Derived Classes
+	public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_CMMLRootTag(void);
+	virtual ~C_CMMLRootTag(void);
+
+	//Accessors
+	
+	C_StreamTag* stream();
+	C_HeadTag* head();
+	C_ClipTagList* clipList();
+
+	//Mutators
+	void setStream(C_StreamTag* inStreamTag);
+	void setHead(C_HeadTag* inHeadTag);
+	void C_CMMLRootTag::setClipList(C_ClipTagList* inClipList);
+
+	//Other
+	virtual string toString();
+	virtual C_CMMLTag* genericClone();
+	C_CMMLRootTag* clone();
+
+protected:
+	//Property Data
+	
+	C_StreamTag* mStream;
+	C_HeadTag* mHead;
+	C_ClipTagList* mClipList;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,67 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cmmltag.h"
+
+C_CMMLTag::C_CMMLTag(void)
+{
+}
+
+C_CMMLTag::~C_CMMLTag(void)
+{
+}
+
+//Accessors
+string C_CMMLTag::id() {
+	return mId;
+}
+
+//Mutators
+void C_CMMLTag::setId(string inId) {
+	mId = inId;
+}
+
+//Protected Helper Methods
+string C_CMMLTag::makeElement(string inElemName, string inElemContent) {
+	string retStr;
+	retStr = " " + inElemName + "=\"" + inElemContent + "\"";
+	return retStr;
+}
+
+
+void C_CMMLTag::privateClone(C_CMMLTag* outTag) {
+	outTag->mId = mId;	
+}
+
+

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,90 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//DESCRIPTION:
+//	This is the base class for all tags. This is an abstract class.
+
+//PURE VIRTUAL FUNCTIONS
+//	string toString();					//Turn the tag to a string
+
+class LIBCMMLTAGS_API C_CMMLTag
+{
+public:
+	//Constructors
+	C_CMMLTag(void);
+	virtual ~C_CMMLTag(void);
+
+	virtual C_CMMLTag* genericClone() = 0;
+	
+
+	//Enumerations
+	enum eTagType {
+		UNKNOWN,
+		IMPORT,
+		STREAM,
+		META,
+		HEAD,
+		TITLE,
+		BASE,
+		CLIP,
+		ANCHOR,
+		IMAGE,
+		DESC,
+		PARAM,
+		BAD_TAG = 1000
+	};
+	
+	//Accessors
+	string id();
+
+	//Mutators
+	void setId(string inId);
+
+	//Other
+	virtual string toString() = 0;
+protected:
+	//Property Data
+	string mId;
+	eTagType mTagType;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+	string makeElement(string inElemName, string inElemContent);
+	
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,20 @@
+#include "StdAfx.h"
+#include ".\c_cmmltime.h"
+
+C_CMMLTime::C_CMMLTime(void)
+{
+}
+
+C_CMMLTime::~C_CMMLTime(void)
+{
+}
+
+//Accessors
+string C_CMMLTime::time() {
+	return mTime;
+}
+
+//Mutators
+void C_CMMLTime::setTime(string inTime) {
+	mTime = inTime;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_CMMLTime.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,22 @@
+#pragma once
+#include <string>
+
+using namespace std;
+
+class LIBCMMLTAGS_API C_CMMLTime
+{
+public:
+	C_CMMLTime(void);
+	~C_CMMLTime(void);
+
+	//Accessors
+	string time();
+
+	//Mutators
+	void setTime(string inTime);
+
+
+//Temporarily just a string container
+protected:
+	string mTime;
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,158 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cliptag.h"
+
+//TO DO ::: track element
+C_ClipTag::C_ClipTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::CLIP;
+
+	mMetaList = new C_MetaTagList;
+	mAnchor = NULL;
+	mImage = NULL;
+	mDesc = NULL;
+	mStart = "0";
+}
+
+C_ClipTag::~C_ClipTag(void)
+{
+	delete mAnchor;
+	delete mImage;
+	delete mDesc;
+	delete mMetaList;
+}
+
+//Accessors
+string C_ClipTag::track() {
+	return mTrack;
+}
+C_MetaTagList* C_ClipTag::metaList() {
+	return mMetaList;
+}
+C_AnchorTag* C_ClipTag::anchor() {
+	return mAnchor;
+}
+C_ImageTag* C_ClipTag::image() {
+	return mImage;
+}
+C_DescTag* C_ClipTag::desc() {
+	return mDesc;
+}
+
+string C_ClipTag::start() {
+	return mStart;
+}
+string C_ClipTag::end() {
+	return mEnd;
+}
+//Mutators
+void C_ClipTag::setTrack(string inTrack) {
+	mTrack = inTrack;
+}
+void C_ClipTag::setAnchor(C_AnchorTag* inAnchor) {
+	mAnchor = inAnchor;
+}
+void C_ClipTag::setImage(C_ImageTag* inImage) {
+	mImage = inImage;
+}
+void C_ClipTag::setDesc(C_DescTag* inDesc) {
+	mDesc = inDesc;
+}
+
+void C_ClipTag::setStart(string inStart) {
+	mStart = inStart;
+}
+void C_ClipTag::setEnd(string inEnd) {
+	mEnd = inEnd;
+}
+
+//Others
+
+C_ClipTag* C_ClipTag::clone() {
+	C_ClipTag* retTag = new C_ClipTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_ClipTag::genericClone() {
+	return clone();
+}
+
+void C_ClipTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_ClipTag* locTag = reinterpret_cast<C_ClipTag*>(outTag);
+	locTag->mTrack = mTrack;
+	locTag->mAnchor = mAnchor;
+	locTag->mImage = mImage;
+	locTag->mDesc = mDesc;
+	locTag->mStart = mStart;
+	locTag->mEnd = mEnd;
+}
+string C_ClipTag::toString() {
+	string retStr = "<clip";
+
+	//TO DO::: Language data ???
+
+	//Id element
+	if (mId != "") {
+		retStr += makeElement("id", mId);
+	}
+
+	//track Element
+	retStr += makeElement("track", mTrack);
+
+	//TO DO::: Sort out what to do about start and end
+	retStr += makeElement("start", mStart);
+
+	if (mEnd != "") {
+		retStr += makeElement("end", mEnd);
+	}
+
+	retStr += ">\n";
+
+	if (mAnchor != NULL) {
+		retStr += mAnchor->toString();
+	}
+	if (mImage != NULL) {
+	    retStr += mImage->toString();
+	}
+	if (mDesc != NULL) {
+		retStr += mDesc->toString();
+	}
+
+	retStr += mMetaList->toString();
+	retStr += "</clip>\n\n";
+	return retStr;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,101 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_HumReadCMMLTag.h"
+#include "C_MetaTagList.h"
+#include "C_AnchorTag.h"
+#include "C_ImageTag.h"
+#include "C_DescTag.h"
+
+
+class LIBCMMLTAGS_API C_ClipTag :
+	//Derived Classes
+	public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_ClipTag(void);
+	virtual ~C_ClipTag(void);
+	
+
+	//Accessors
+	string track();
+	C_MetaTagList* metaList();
+	C_AnchorTag* anchor();
+	C_ImageTag* image();
+	C_DescTag* desc();
+
+	string start();
+	string end();
+
+
+	//Mutators
+	void setTrack(string inTrack);
+	void setAnchor(C_AnchorTag* inAnchor);
+	void setImage(C_ImageTag* inImage);
+	void setDesc(C_DescTag* inDesc);
+
+	void setStart(string inStart);
+	void setEnd(string inEnd);
+
+
+	//Others
+	virtual string toString();
+	C_ClipTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+protected:
+	//Property Data
+	string mTrack;
+	C_MetaTagList* mMetaList;
+	C_AnchorTag* mAnchor;
+	C_ImageTag* mImage;
+	C_DescTag* mDesc;
+
+	string mStart;
+	string mEnd;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,73 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_cliptaglist.h"
+
+C_ClipTagList::C_ClipTagList(void)
+{
+}
+
+C_ClipTagList::~C_ClipTagList(void)
+{
+	//Everything is deleted by the base class
+}
+
+
+string C_ClipTagList::toString() {
+	string retStr = "";
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		retStr += mTagList[i]->toString();
+	}
+	return retStr;
+}
+
+void C_ClipTagList::addTag(C_ClipTag* inTag) {
+	C_TagList::addTag(inTag);
+
+}
+C_ClipTag* C_ClipTagList::getTag(unsigned long inTagNo) {
+	return (C_ClipTag*) C_TagList::getTag(inTagNo);
+}
+
+void C_ClipTagList::privateClone(C_TagList* outTagList) {
+	C_TagList::privateClone(outTagList);	
+
+
+}
+
+C_ClipTagList* C_ClipTagList::clone() {
+	C_ClipTagList* retList = new C_ClipTagList;
+	privateClone(retList);
+	return retList;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ClipTagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,62 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_TagList.h"
+#include "C_ClipTag.h"
+
+//TO DO:::Make this class !
+class LIBCMMLTAGS_API C_ClipTagList :
+	//Derived Classes
+	public C_TagList
+{
+public:
+	//Constructors
+	C_ClipTagList(void);
+	virtual ~C_ClipTagList(void);
+
+
+	virtual string toString();
+	C_ClipTagList* clone();
+
+	void addTag(C_ClipTag* inTag);
+	C_ClipTag* getTag(unsigned long inTagNo);
+
+	virtual void privateClone(C_TagList* outTagList);
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,71 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_desctag.h"
+
+C_DescTag::C_DescTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::DESC;
+}
+
+C_DescTag::~C_DescTag(void)
+{
+}
+
+
+//Other
+string C_DescTag::toString() {
+	//FIX ::: Make this do something
+	string retStr = "<desc";
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+	retStr += ">";
+	retStr += mText;
+	retStr += "</desc>\n";
+	return retStr;
+}
+
+void C_DescTag::privateClone(C_CMMLTag* outTag) {
+	C_TextFieldTag::privateClone(outTag);
+}
+C_CMMLTag* C_DescTag::genericClone() {
+	return clone();
+}
+C_DescTag* C_DescTag::clone() {
+	C_DescTag* retTag = new C_DescTag;
+	privateClone(retTag);
+	return retTag;
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_DescTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,62 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_TextFieldTag.h"
+
+class LIBCMMLTAGS_API C_DescTag
+	//Derived Classes
+	: public C_TextFieldTag
+{
+public:
+	//Constructors
+	C_DescTag(void);
+	virtual ~C_DescTag(void);
+
+	//Other
+	virtual string toString();
+	C_DescTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+protected:
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+	
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,122 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_headtag.h"
+
+C_HeadTag::C_HeadTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::HEAD;
+	mMetaList  = new C_MetaTagList;
+	mTitle = new C_TitleTag;
+	mBase = NULL;
+}
+
+C_HeadTag::~C_HeadTag(void)
+{
+	delete mTitle;
+	delete mBase;
+	delete mMetaList;
+
+}
+
+//Accessors
+string C_HeadTag::profile() {
+	return mProfile;
+}
+C_TitleTag* C_HeadTag::title() {
+	return mTitle;
+}
+C_BaseTag* C_HeadTag::base() {
+	return mBase;
+}
+C_MetaTagList* C_HeadTag::metaList() {
+	return mMetaList;
+}
+//Mutators
+void C_HeadTag::setProfile(string inProfile) {
+	mProfile = inProfile;
+}
+void C_HeadTag::setTitle(C_TitleTag* inTitle) {
+	mTitle = inTitle;
+}
+void C_HeadTag::setBase(C_BaseTag* inBase) {
+	mBase = inBase;
+}
+//Other
+
+void C_HeadTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_HeadTag* locTag = reinterpret_cast<C_HeadTag*>(outTag);
+	locTag->mProfile = mProfile;
+	locTag->mTitle = mTitle;
+	locTag->setBase(mBase->clone());
+	locTag->setTitle(mTitle->clone());
+}
+C_CMMLTag* C_HeadTag::genericClone() {
+	return clone();
+}
+C_HeadTag* C_HeadTag::clone() {
+	C_HeadTag* retTag = new C_HeadTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+
+
+string C_HeadTag::toString() {
+	//TO DO::: Optional tags
+	string retStr = "<head";
+
+	if (mId.size() != 0) {
+		retStr += " id=\"";
+		retStr += mId;
+		retStr += "\"";
+	}
+
+	if (mProfile.size() != 0) {
+		retStr += " profile=\"";
+		retStr += mProfile;
+		retStr += "\"";
+	}
+	retStr+= ">\n";
+	
+	if (mBase != NULL)  {
+		retStr += mBase->toString();
+	}
+
+	retStr += mTitle->toString();
+	retStr += mMetaList->toString();
+	retStr += "</head>\n\n";
+	return retStr;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HeadTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,95 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_HumReadCMMLTag.h"
+#include "C_TitleTag.h"
+#include "C_BaseTag.h"
+#include "C_MetaTagList.h"
+
+class LIBCMMLTAGS_API C_HeadTag 
+	//Derived Classes
+	: public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_HeadTag(void);
+	virtual ~C_HeadTag(void);
+
+	//Accessors
+	string profile();
+	C_TitleTag* title();
+	C_BaseTag* base();
+	C_MetaTagList* metaList();
+
+	//Mutators
+	void setProfile(string inProfile);
+	void setTitle(C_TitleTag* inTitle);
+	void setBase(C_BaseTag* inBase);
+
+	//Other
+	virtual string toString();
+	C_HeadTag* clone();
+	virtual C_CMMLTag* genericClone();
+protected:
+	//Property Data
+	string mProfile;
+	C_TitleTag* mTitle;
+	C_BaseTag* mBase;
+	C_MetaTagList* mMetaList;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+
+};
+
+	//typedef struct {
+	//	char *head_id;    /**< id attribute of header */
+	//	char *lang;       /**< language of header */
+	//	char *dir;        /**< directionality of lang */
+	//	char *profile;    /**< profile of header */
+	//	char *title;      /**< title element of header */
+	//	char *title_id;   /**< id attribute of title element */
+	//	char *title_lang; /**< language of title */
+	//	char *title_dir;  /**< directionality of title_lang */
+	//	char *base_id;    /**< id attribute of base element */
+	//	char *base_href;  /**< href attribute of base element */
+	//	CMML_List * meta; /**< list of meta elements */
+	//} CMML_Head;

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,67 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_humreadcmmltag.h"
+
+C_HumReadCMMLTag::C_HumReadCMMLTag(void)
+{
+}
+
+C_HumReadCMMLTag::~C_HumReadCMMLTag(void)
+{
+}
+
+//Accessors
+string C_HumReadCMMLTag::lang() {
+	return mLang;
+}
+string C_HumReadCMMLTag::dirn() {
+	return mDirn;
+}
+
+//Mutators
+void C_HumReadCMMLTag::setLang(string inLang) {
+	mLang = inLang;
+}
+void C_HumReadCMMLTag::setDirn(string inDirn) {
+	mDirn = inDirn;
+}
+
+//Protected Helper Methods
+void C_HumReadCMMLTag::privateClone(C_CMMLTag* outTag) {
+	C_CMMLTag::privateClone(outTag);
+	C_HumReadCMMLTag* locTag = reinterpret_cast<C_HumReadCMMLTag*>(outTag);
+	locTag->mLang = mLang;
+	locTag->mDirn = mDirn;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_HumReadCMMLTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,70 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "c_cmmltag.h"
+
+class LIBCMMLTAGS_API C_HumReadCMMLTag :
+	//Derived Classes
+	public C_CMMLTag
+{
+public:
+	//Constructors
+	C_HumReadCMMLTag(void);
+	virtual ~C_HumReadCMMLTag(void);
+
+	//Accessors
+	string lang();
+	string dirn();
+
+	//Mutators
+	void setLang(string inLang);
+	void setDirn(string inDirn);
+
+	//Other
+	virtual string toString() = 0;
+
+protected:
+	//Property Data
+	string mLang;
+	string mDirn;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,95 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_imagetag.h"
+
+C_ImageTag::C_ImageTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::IMAGE;
+}
+
+C_ImageTag::~C_ImageTag(void)
+{
+}
+
+//Accessors
+string C_ImageTag::src() {
+	return mSrc;
+}
+string C_ImageTag::alt() {
+	return mAlt;
+}
+
+//Mutators
+void C_ImageTag::setSrc(string inSrc) {
+	mSrc = inSrc;
+}
+void C_ImageTag::setAlt(string inAlt) {
+	mAlt = inAlt;
+}
+
+//Other
+
+void C_ImageTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_ImageTag* locTag = reinterpret_cast<C_ImageTag*>(outTag);
+	locTag->mSrc = mSrc;
+	locTag->mAlt = mAlt;
+}
+
+C_ImageTag* C_ImageTag::clone() {
+	C_ImageTag* retTag = new C_ImageTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_ImageTag::genericClone() {
+	return clone();
+}
+string C_ImageTag::toString() {
+	string retStr = "<img";
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+	retStr += makeElement("src", mSrc);
+
+	if (mAlt.size() != 0) {
+		retStr += makeElement("alt", mAlt);
+	}
+	
+	retStr += "/>\n";
+
+	return retStr;
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImageTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,72 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "c_humreadcmmltag.h"
+
+class LIBCMMLTAGS_API C_ImageTag :
+	//Derived Classes
+	public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_ImageTag(void);
+	virtual ~C_ImageTag(void);
+
+	//Accessors
+	string src();
+	string alt();
+
+	//Mutators
+	void setSrc(string inSrc);
+	void setAlt(string inAlt);
+
+	//Other
+	virtual string toString();
+	C_ImageTag* clone();
+	virtual C_CMMLTag* genericClone();
+protected:
+	//Property Data
+	string mSrc;
+	string mAlt;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Import.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Import.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Import.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,8 @@
+#pragma once
+
+class C_Import
+{
+public:
+	C_Import(void);
+	~C_Import(void);
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,157 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_importtag.h"
+
+C_ImportTag::C_ImportTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::IMPORT;
+	mStart = "0";
+	mParamList = new C_ParamTagList;
+}
+
+C_ImportTag::~C_ImportTag(void)
+{
+	delete mParamList;
+}
+
+
+//Accessors
+string C_ImportTag::granuleRate() {
+	return mGranuleRate;
+}
+string C_ImportTag::contentType() {
+	return mContentType;
+}
+string C_ImportTag::src() {
+	return mSrc;
+}
+string C_ImportTag::start() {
+	return mStart;
+}
+string C_ImportTag::end() {
+	return mEnd;
+}
+string C_ImportTag::title() {
+	return mTitle;
+}
+C_ParamTagList* C_ImportTag::paramList() {
+	return mParamList;
+}
+
+//Mutators
+void C_ImportTag::setGranuleRate(string inGranuleRate) {
+	mGranuleRate = inGranuleRate;
+}
+void C_ImportTag::setContentType(string inContentType) {
+	mContentType = inContentType;
+}
+void C_ImportTag::setSrc(string inSrc) {
+	mSrc = inSrc;
+}
+void C_ImportTag::setStart(string inStart) {
+	mStart = inStart;
+}
+void C_ImportTag::setEnd(string inEnd) {
+	mEnd = inEnd;
+}
+void C_ImportTag::setTitle(string inTitle) {
+	mTitle = inTitle;
+}
+void C_ImportTag::setParamList(C_ParamTagList* inParamList) {
+	delete mParamList;
+	mParamList = inParamList;
+}
+
+//Other
+
+void C_ImportTag::privateClone(C_CMMLTag* outTag) {
+
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_ImportTag* locTag = reinterpret_cast<C_ImportTag*>(outTag);
+	locTag->mGranuleRate = mGranuleRate;
+	locTag->mContentType = mContentType;
+	locTag->mSrc = mSrc;
+	locTag->mStart = mStart;
+	locTag->mEnd = mEnd;
+	locTag->mTitle = mTitle;
+	locTag->setParamList(mParamList->clone());
+}
+C_ImportTag* C_ImportTag::clone() {
+	C_ImportTag* retTag = new C_ImportTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+
+C_CMMLTag* C_ImportTag::genericClone() {
+	return clone();
+}
+string C_ImportTag::toString() {
+	
+	string retStr;
+	retStr = "<import";
+	
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+
+	if (mGranuleRate.size() != 0) {
+		retStr += makeElement("granulerate", mGranuleRate);
+	}
+
+	if (mContentType.size() != 0) {
+		retStr += makeElement("contenttype", mContentType);
+	}
+
+	retStr += makeElement("src", mSrc);
+	retStr += makeElement("start", mStart);
+	if (mEnd.size() != 0) {
+		retStr += makeElement("end", mEnd);
+	}
+
+	if (mTitle.size() != 0) {
+		retStr += makeElement("title", mTitle);
+	}
+
+	retStr += ">\n";
+
+	retStr += mParamList->toString();
+
+	retStr += "</import>\n";
+	return retStr;
+
+}
+
+	
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,111 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_HumReadCMMLTag.h"
+#include "C_ParamTagList.h"
+#include "C_CMMLTime.h"
+
+class LIBCMMLTAGS_API C_ImportTag
+	//Derived Classes
+	: public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_ImportTag(void);
+	virtual ~C_ImportTag(void);
+
+	//Accessors
+	string granuleRate();
+	string contentType();
+	string src();
+	string start();
+	string end();
+	string title();
+	C_ParamTagList* paramList();
+
+	//Mutators
+	void setGranuleRate(string inGranuleRate);
+	void setContentType(string inContentType);
+	void setSrc(string inSrc);
+	void setStart(string inStart);
+	void setEnd(string inEnd);
+	void setTitle(string inTitle);
+	void C_ImportTag::setParamList(C_ParamTagList* inParamList);
+
+	//Other
+	virtual string toString();
+	C_ImportTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+protected:
+	//Property Data
+
+	//FIX ::: Change this to appropriate integer type ??
+	string mGranuleRate;
+	string mContentType;
+	string mSrc;
+	string mStart;
+	string mEnd;
+	string mTitle;
+	C_ParamTagList* mParamList;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+
+};
+
+
+	//Original structure
+	//
+	//typedef struct {
+	//	char *id;               /**< id of import tag */
+	//	char *lang;             /**< language code of import tag */
+	//	char *dir;              /**< directionality of lang (ltr/rtl) */
+	//	char *granulerate;      /**< base temporal resolution in Hz */
+	//	char *contenttype;      /**< content type of the import bitstream */
+	//	char *src;              /**< URI to import document */
+	//	CMML_Time * start_time; /**< insertion time in annodex bitstream */
+	//	CMML_Time * end_time;   /**< end time of this logical  bitstream */
+	//	char *title;            /**< comment on the import bitstream */
+	//	CMML_List * param;      /**< list of optional further nam-value
+	//		     metadata for the import bitstreams */
+	//} CMML_ImportElement;
+	//

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,75 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_importtaglist.h"
+
+C_ImportTagList::C_ImportTagList(void)
+{
+}
+
+C_ImportTagList::~C_ImportTagList(void)
+{
+	//The tags are deleted from the base class
+}
+
+
+string C_ImportTagList::toString() {
+	string retStr;
+
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		retStr += mTagList[i]->toString();
+	}
+
+	return retStr;
+}
+
+void C_ImportTagList::addTag(C_ImportTag* inTag) {
+	C_TagList::addTag(inTag);
+}
+C_ImportTag* C_ImportTagList::getTag(unsigned long inTagNo) {
+	//TO DO::: Should be dynamic casts
+	return (C_ImportTag*)C_TagList::getTag(inTagNo);
+}
+
+void C_ImportTagList::privateClone(C_TagList* outTagList) {
+	
+	C_TagList::privateClone(outTagList);
+}
+
+C_ImportTagList* C_ImportTagList::clone() {
+	C_ImportTagList* retList = new C_ImportTagList;
+	privateClone(retList);
+	return retList;
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ImportTagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,61 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_TagList.h"
+#include "C_ImportTag.h"
+class LIBCMMLTAGS_API C_ImportTagList
+	//Derived Classes
+	: public C_TagList
+{
+public:
+	//Constructors
+	C_ImportTagList(void);
+	virtual ~C_ImportTagList(void);
+
+	virtual string toString();
+	C_ImportTagList* clone();
+
+	void addTag(C_ImportTag* inTag);
+	C_ImportTag* getTag(unsigned long inTagNo);
+
+protected:
+	virtual void privateClone(C_TagList* outTagList);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,43 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_int64.h"
+
+C_Int64::C_Int64(void)
+{
+}
+
+C_Int64::~C_Int64(void)
+{
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_Int64.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,42 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#pragma once
+
+class LIBCMMLTAGS_API C_Int64
+{
+public:
+	C_Int64(void);
+	~C_Int64(void);
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,70 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_mappedtag.h"
+
+C_MappedTag::C_MappedTag(void)
+{
+
+}
+
+C_MappedTag::~C_MappedTag(void)
+{
+}
+C_MappedTag::C_MappedTag(string inName, string inContent) {
+	mName = inName;
+	mContent = inContent;
+}
+
+//accessors
+string C_MappedTag::name() {
+	return mName;
+}	
+string C_MappedTag::content() {
+	return mContent;
+}
+
+//mutators
+void C_MappedTag::setName(string inName) {
+	mName = inName;
+}
+void C_MappedTag::setContent(string inContent) {
+	mContent = inContent;
+}
+void C_MappedTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+	C_MappedTag* locTag = reinterpret_cast<C_MappedTag*>(outTag);
+	locTag->mName = mName;
+	locTag->mContent = mContent;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,73 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_HumReadCMMLTag.h"
+
+class LIBCMMLTAGS_API C_MappedTag
+	//Derived Classes
+	: public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_MappedTag(void);
+	C_MappedTag(string inName, string inContent);
+	virtual ~C_MappedTag(void);
+
+	//Accessors
+	string name();
+	string content();
+
+	//Mutators
+	void setName(string inName);
+	void setContent(string inContent);
+
+	//Other
+	virtual string toString() = 0;
+	virtual C_MappedTag* mappedClone() = 0;
+
+protected:
+	//Property Data
+	string mName;
+	string mContent;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,102 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_mappedtaglist.h"
+
+C_MappedTagList::C_MappedTagList(void)
+{
+}
+
+C_MappedTagList::~C_MappedTagList(void)
+{
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		delete mTagList[i];
+	}
+	mTagList.clear();
+}
+
+void C_MappedTagList::addTag(C_MappedTag* inTag) {
+	//Fix for sorted list
+	mTagList.push_back(inTag);
+}
+
+//void C_MappedTagList::addTag(string inName, string inContent) {
+//	C_MappedTag* locMappedTag = new C_MappedTag(inName, inContent);
+//	addTag(locMappedTag);
+//}
+
+unsigned long C_MappedTagList::numTags() {
+	return (unsigned long)mTagList.size();
+}	
+
+C_MappedTag* C_MappedTagList::getTag(unsigned long inTagNo) {
+	//Error check index
+	if ( (inTagNo < mTagList.size()) && (mTagList.size() > 0)) {
+		return mTagList[inTagNo];
+	} else {
+		//ISSUE :: Or throw exception ??
+		return NULL;
+	}
+}
+C_MappedTag* C_MappedTagList::getTag(string inName) {
+	unsigned long i = 0;
+	unsigned long locSize = (unsigned long)mTagList.size();
+
+	//while there is more items in the list and we haven't found what we are after
+	while ( i < locSize ) {
+		if (inName == mTagList[i]->name()) {
+			//EXIT POINT
+			return mTagList[i];
+		}
+		i++;
+	}
+	return NULL;
+}
+
+string C_MappedTagList::getContent(string inName) {
+	return getTag(inName)->name();
+}
+
+string C_MappedTagList::toString() {
+	//FIX ::: Make this do something
+	string retStr = "";
+	return retStr;
+}
+
+void C_MappedTagList::privateClone(C_MappedTagList* outTagList) {
+	for(int i = 0; i < mTagList.size(); i++) {
+		outTagList->addTag(mTagList[i]->mappedClone());
+
+	}
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MappedTagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,77 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+#include <vector>
+using namespace std;
+
+//Local Include Files
+#include "C_MappedTag.h"
+
+class LIBCMMLTAGS_API C_MappedTagList
+{
+public:
+	C_MappedTagList(void);
+	virtual ~C_MappedTagList(void);
+
+	//What to do about this ? **** They are now protected dervied classes implement themselves
+	//void addTag(string inName, string inContent);
+	
+	//void removeTag ???
+	unsigned long numTags();
+
+	string getContent(string mName);
+
+	//Maybe not !
+	//void addTag(string inName, string inContent);
+
+	virtual string toString() = 0;
+	
+
+
+protected:
+	vector<C_MappedTag*> mTagList;
+
+	C_MappedTag* getTag(unsigned long inTagNo);
+	C_MappedTag* getTag(string mName);
+	void addTag(C_MappedTag* inTag);
+
+
+	//Protected Helper Methods
+	virtual void privateClone(C_MappedTagList* outTagList);
+
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,86 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_metatag.h"
+
+C_MetaTag::C_MetaTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::META;
+}
+
+C_MetaTag::~C_MetaTag(void)
+{
+}
+//Accessors
+string C_MetaTag::scheme() {
+	return mScheme;
+}
+
+//Mutators
+void C_MetaTag::setScheme(string inScheme) {
+	mScheme = inScheme;
+}
+
+//Other
+
+void C_MetaTag::privateClone(C_CMMLTag* outTag) {
+	C_MappedTag::privateClone(outTag);
+	C_MetaTag* locTag = reinterpret_cast<C_MetaTag*>(outTag);
+	locTag->mScheme = mScheme;
+}
+C_MetaTag* C_MetaTag::clone() {
+	C_MetaTag* retTag = new C_MetaTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_MetaTag::genericClone() {
+	return clone();
+}
+C_MappedTag* C_MetaTag::mappedClone() {
+	return clone();
+}
+string C_MetaTag::toString() {
+	//QUERY ::: How are the internationalisation tags included
+	string retStr = "<meta";
+	retStr += " name=\"";
+	retStr += mName;
+	retStr += "\" content=\"";
+	retStr += mContent;
+	retStr += "\"";
+	retStr += "/>\n";
+
+
+	return retStr;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,82 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_MappedTag.h"
+
+class LIBCMMLTAGS_API C_MetaTag
+	//Derived Classes
+	: public C_MappedTag
+{
+public:
+	//Constructors
+	C_MetaTag(void);
+	virtual ~C_MetaTag(void);
+
+	//Accessors
+	string scheme();
+
+	//Mutators
+	void setScheme(string inScheme);
+
+	//Other
+	virtual string toString();
+	C_MetaTag* clone();
+	virtual C_CMMLTag* genericClone();
+	virtual C_MappedTag* mappedClone();
+
+protected:
+	//Property Data
+	string mScheme;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+
+};
+
+
+	//typedef struct {
+	//	char *id;      /**< id attribute of meta element */
+	//	char *lang;    /**< language code of meta element */
+	//	char *dir;     /**< directionality of lang (ltr/rtl) */
+	//	char *name;    /**< property name of meta element */
+	//	char *content; /**< property value of meta element */
+	//	char *scheme;  /**< scheme name of meta element */
+	//} CMML_MetaElement;

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,91 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_metataglist.h"
+
+C_MetaTagList::C_MetaTagList(void)
+{
+}
+
+C_MetaTagList::~C_MetaTagList(void)
+{
+	//Everything is deleted by the base class
+}
+
+
+void C_MetaTagList::addTag(C_MetaTag* inTag) {
+	C_MappedTagList::addTag(inTag);
+}
+
+
+void C_MetaTagList::addTag(string inName, string inContent) {
+	C_MetaTag* retTag = new C_MetaTag;
+	retTag->setName(inName);
+	retTag->setContent(inContent);
+	addTag(retTag);
+
+}
+//void removeTag ???
+
+//Dynamic casting ?????
+C_MetaTag* C_MetaTagList::getTag(unsigned long inTagNo) {
+	return (C_MetaTag*) mTagList[inTagNo];
+}
+C_MetaTag* C_MetaTagList::getTag(string inName) {
+	return (C_MetaTag*) C_MappedTagList::getTag(inName);
+}
+
+string C_MetaTagList::getContent(string inName) {
+	return getTag(inName)->content();
+}
+
+string C_MetaTagList::toString() {
+
+	string retStr;
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		retStr+=mTagList[i]->toString();
+	}
+	return retStr;
+
+}
+
+C_MetaTagList* C_MetaTagList::clone() {
+	C_MetaTagList* retList = new C_MetaTagList;
+	privateClone(retList);
+	return retList;
+}
+void C_MetaTagList::privateClone(C_MappedTagList* outTagList) {
+	C_MappedTagList::privateClone(outTagList);
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_MetaTagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,61 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+#include "C_MappedTagList.h"
+#include "C_MetaTag.h"
+
+class LIBCMMLTAGS_API C_MetaTagList
+	: public C_MappedTagList
+{
+public:
+	C_MetaTagList(void);
+	virtual ~C_MetaTagList(void);
+
+	void addTag(C_MetaTag* inTag);
+	void addTag(string inName, string inContent);
+	//void removeTag ???
+	//unsigned long numTags();
+
+	C_MetaTag* getTag(unsigned long inTagNo);
+	C_MetaTag* getTag(string inName);
+
+	string getContent(string inName);
+
+	virtual string toString();
+	C_MetaTagList* clone();
+protected:
+	//Protected Helper Methods
+	virtual void privateClone(C_MappedTagList* outTagList);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,69 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_paramtag.h"
+
+C_ParamTag::C_ParamTag(void)
+{
+}
+
+C_ParamTag::~C_ParamTag(void)
+{
+}
+
+string C_ParamTag::toString() {
+	string retStr;
+	retStr = "<param";
+	retStr += makeElement("name", mName);
+	retStr += makeElement("value", mContent);
+	retStr += "/>\n";
+	return retStr;
+
+}
+
+void C_ParamTag::privateClone(C_CMMLTag* outTag) {
+	C_MappedTag::privateClone(outTag);	
+}
+C_ParamTag* C_ParamTag::clone() {
+	C_ParamTag* retTag = new C_ParamTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_MappedTag* C_ParamTag::mappedClone() {
+	return clone();
+}
+C_CMMLTag* C_ParamTag::genericClone() {
+	return clone();
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,63 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "c_mappedtag.h"
+
+class LIBCMMLTAGS_API C_ParamTag 
+	//Derived Classes
+	: public C_MappedTag
+{
+public:
+	//Constructors
+	C_ParamTag(void);
+	virtual ~C_ParamTag(void);
+
+	//Other
+	virtual string toString();
+	C_ParamTag* clone();
+	virtual C_CMMLTag* genericClone();
+	virtual C_MappedTag* mappedClone();
+
+protected:
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,64 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_paramtaglist.h"
+
+C_ParamTagList::C_ParamTagList(void)
+{
+}
+
+C_ParamTagList::~C_ParamTagList(void)
+{
+	//Everything is deleted by the base class
+}
+string C_ParamTagList::toString() {
+
+	string retStr = "";
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		retStr += mTagList[i]->toString();
+	}
+	return retStr;
+}
+
+void C_ParamTagList::addTag(C_ParamTag* inTag) {
+	C_MappedTagList::addTag(inTag);
+}
+C_ParamTag* C_ParamTagList::getTag(unsigned long inTagNo) {
+	return (C_ParamTag*)C_MappedTagList::getTag(inTagNo);
+}
+C_ParamTagList* C_ParamTagList::clone() {
+	C_ParamTagList* retList = new C_ParamTagList;
+	privateClone(retList);
+	return retList;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_ParamTagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,65 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_ParamTag.h"
+#include "C_MappedTagList.h"
+
+class LIBCMMLTAGS_API C_ParamTagList 
+	//Derived Classes
+	: public C_MappedTagList
+{
+public:
+	//Constructors
+	C_ParamTagList(void);
+	virtual ~C_ParamTagList(void);
+
+	//Accessors
+	C_ParamTag* getTag(unsigned long inTagNo);
+
+	//Mutators
+	void addTag(C_ParamTag* inTag);
+	
+
+	//Other
+	virtual string toString();
+	C_ParamTagList* clone();
+	
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,109 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_streamtag.h"
+
+C_StreamTag::C_StreamTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::STREAM;
+	mImportList = new C_ImportTagList;
+	mTimebase = "0";
+}
+
+C_StreamTag::~C_StreamTag(void)
+{
+	delete mImportList;
+}
+
+//Accessors
+string C_StreamTag::timebase() {
+	return mTimebase;
+}
+string C_StreamTag::utc() {
+	return mUtc;
+}
+C_ImportTagList* C_StreamTag::importList() {
+	return mImportList;
+}
+
+//Mutators
+void C_StreamTag::setTimebase(string inTimebase) {
+	mTimebase = inTimebase;
+}
+void C_StreamTag::setUtc(string inUtc) {
+	mUtc = inUtc;
+}
+
+void C_StreamTag::setImportList(C_ImportTagList* inTagList) {
+	delete mImportList;
+	mImportList = inTagList;
+}
+
+//Other
+
+void C_StreamTag::privateClone(C_CMMLTag* outTag) {
+	C_CMMLTag::privateClone(outTag);
+	C_StreamTag* locTag = reinterpret_cast<C_StreamTag*>(outTag);
+	locTag->mUtc = mUtc;
+	locTag->mTimebase = mTimebase;
+
+}
+
+C_StreamTag* C_StreamTag::clone() {
+	C_StreamTag* retTag = new C_StreamTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_StreamTag::genericClone() {
+	return clone();
+}
+string C_StreamTag::toString() {
+	//FIX ::: Make this do something
+	string retStr;
+
+	retStr = "<stream";
+	if (mId.size() != 0) {
+		retStr += makeElement("id", mId);
+	}
+	retStr += makeElement("timebase", mTimebase);
+	if (mUtc.size() != 0) {
+		retStr += makeElement("utc", mUtc);
+	}
+	retStr += ">\n";
+	retStr += mImportList->toString();
+	retStr += "</stream>\n\n";
+
+	return retStr;
+}

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_StreamTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,87 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_CMMLTag.h"
+#include "C_ImportTagList.h"
+
+class LIBCMMLTAGS_API C_StreamTag
+	//Derived Classes
+	: public C_CMMLTag
+{
+public:
+	//Constructors
+	C_StreamTag(void);
+	virtual ~C_StreamTag(void);
+
+	//Accessors
+	string timebase();
+	string utc();
+	C_ImportTagList* importList();
+
+	//Mutators
+	void setTimebase(string inTimebase);
+	void setUtc(string inUtc);
+	void setImportList(C_ImportTagList* inTagList);
+
+	//Other
+	virtual string toString();
+	C_StreamTag* clone();
+	virtual C_CMMLTag* genericClone();
+
+
+
+protected:
+	//Property Data
+	string mTimebase;
+	string mUtc;
+	C_ImportTagList* mImportList;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};
+
+	//typedef struct {
+	//	char *id;             /**< id attribute of stream element */
+	//	CMML_Time * timebase; /**< timebase attribute of stream element */
+	//	CMML_Time * utc;      /**< utc attribute of stream element */
+	//	CMML_List * import;   /**< list of import elements */
+	//} CMML_Stream;
+

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,84 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_taglist.h"
+
+C_TagList::C_TagList(void)
+{
+}
+
+C_TagList::~C_TagList(void)
+{
+	//Empty the tag list
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		delete mTagList[i];
+	}
+	
+	mTagList.clear();
+}
+
+void C_TagList::addTag(C_CMMLTag* inTag) {
+	//Fix for sorted list
+	mTagList.push_back(inTag);
+}
+unsigned long C_TagList::numTags() {
+	return (unsigned long)mTagList.size();
+}
+
+C_CMMLTag* C_TagList::getTag(unsigned long inTagNo) {
+	//Error check index
+	if ( (inTagNo < mTagList.size()) && (mTagList.size() > 0)) {
+		return mTagList[inTagNo];
+	} else {
+		//ISSUE :: Or throw exception ??
+		return NULL;
+	}
+}
+
+string C_TagList::toString() {
+	//Return the CMML of the list of tags appended together
+	string retStr = "";
+	
+	for (unsigned long i = 0; i < mTagList.size(); i++) {
+		retStr.append(mTagList[i]->toString());
+	}
+	return retStr;
+}
+
+void C_TagList::privateClone(C_TagList* outTagList) {
+	for (int i = 0; i < mTagList.size(); i++) {
+		outTagList->addTag(mTagList[i]->genericClone());
+	}
+
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TagList.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,70 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <vector>
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_CMMLTag.h"
+
+
+class LIBCMMLTAGS_API C_TagList
+{
+public:
+	//Constructors
+	C_TagList(void);
+	virtual ~C_TagList(void);
+	
+	//void removeTag ???
+
+	//Accessors
+	unsigned long numTags();
+
+	//Other
+	virtual string toString() = 0;
+
+protected:
+	//Property Data
+	vector<C_CMMLTag*> mTagList;
+
+	//Protected Member Functions
+	void addTag(C_CMMLTag* inTag);
+	C_CMMLTag* getTag(unsigned long inTagNo);
+	
+	
+	virtual void privateClone(C_TagList* outTagList);
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,57 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_textfieldtag.h"
+
+C_TextFieldTag::C_TextFieldTag(void)
+{
+}
+
+C_TextFieldTag::~C_TextFieldTag(void)
+{
+}
+
+//Accessors
+string C_TextFieldTag::text() {
+	return mText;
+}
+	
+//Mutators
+void C_TextFieldTag::setText(string inText) {
+	mText = inText;
+}
+
+void C_TextFieldTag::privateClone(C_CMMLTag* outTag) {
+	C_HumReadCMMLTag::privateClone(outTag);
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TextFieldTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,67 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_HumReadCMMLTag.h"
+
+class LIBCMMLTAGS_API C_TextFieldTag
+	//Derived Classes
+	: public C_HumReadCMMLTag
+{
+public:
+	//Constructors
+	C_TextFieldTag(void);
+	virtual ~C_TextFieldTag(void);
+
+	//Accessors
+	string text();
+	
+	//Mutators
+	void setText(string inText);
+
+	//Other
+	virtual string toString() = 0;
+protected:
+	//Property Data
+	string mText;
+
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,65 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "StdAfx.h"
+#include ".\c_titletag.h"
+
+C_TitleTag::C_TitleTag(void)
+{
+	mTagType = C_CMMLTag::eTagType::TITLE;
+}
+
+C_TitleTag::~C_TitleTag(void)
+{
+}
+
+string C_TitleTag::toString() {
+	//FIX ::: Make this do something
+	string retStr = "<title";
+	retStr += ">";
+	retStr += mText;
+	retStr+= "</title>\n";
+	return retStr;
+}
+void C_TitleTag::privateClone(C_CMMLTag* outTag) {
+	C_TextFieldTag::privateClone(outTag);
+}
+C_TitleTag* C_TitleTag::clone() {
+	C_TitleTag* retTag = new C_TitleTag;
+	privateClone(retTag);
+	return retTag;
+
+}
+C_CMMLTag* C_TitleTag::genericClone() {
+	return clone();
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/C_TitleTag.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,61 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#pragma once
+
+//STL Include Files
+#include <string>
+using namespace std;
+
+//Local Include Files
+#include "C_TextFieldTag.h"
+
+class LIBCMMLTAGS_API C_TitleTag
+	//Derived Classes
+	: public C_TextFieldTag
+{
+public:
+	//Constructors
+	C_TitleTag(void);
+	virtual ~C_TitleTag(void);
+
+	//Other
+	virtual string toString();
+	C_TitleTag* clone();
+	virtual C_CMMLTag* genericClone();
+protected:
+	//Protected Helper Methods
+	virtual void privateClone(C_CMMLTag* outTag);
+
+	
+};

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/ReadMe.txt
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/ReadMe.txt	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/ReadMe.txt	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,32 @@
+========================================================================
+    DYNAMIC LINK LIBRARY : libCMMLTags Project Overview
+========================================================================
+
+AppWizard has created this libCMMLTags DLL for you.  
+This file contains a summary of what you will find in each of the files that
+make up your libCMMLTags application.
+
+
+libCMMLTags.vcproj
+    This is the main project file for VC++ projects generated using an Application Wizard. 
+    It contains information about the version of Visual C++ that generated the file, and 
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+libCMMLTags.cpp
+    This is the main DLL source file.
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+StdAfx.h, StdAfx.cpp
+    These files are used to build a precompiled header (PCH) file
+    named libCMMLTags.pch and a precompiled types file named StdAfx.obj.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/config.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/config.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/config.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,48 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   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.
+*/
+
+// The following ifdef block is the standard way of creating macros which make exporting 
+// from a DLL simpler. All files within this DLL are compiled with the CPP_LIB_CMML_EXPORTS
+// symbol defined on the command line. this symbol should not be defined on any project
+// that uses this DLL. This way any other project whose source files include this file see 
+// LIBCMMLTAGS_API functions as being imported from a DLL, whereas this DLL sees symbols
+// defined with this macro as being exported.
+
+#ifdef LIBCMMLTAGS_EXPORTS
+#define LIBCMMLTAGS_API __declspec(dllexport)
+#pragma message ("Exporting libCMMLTags Library Symbols...")
+#else
+#define LIBCMMLTAGS_API __declspec(dllimport)
+#pragma message ("Importing libCMMLTags Library Symbols...")
+#endif
\ No newline at end of file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,60 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   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.
+*/
+// cpp_lib_cmml.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+#include "cpp_lib_cmml.h"
+
+//Ignore these unreferenced variable wanrings only for this file
+#pragma warning(push)
+#pragma warning(disable: 4100)
+
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+					 )
+{
+	switch (ul_reason_for_call)
+	{
+	case DLL_PROCESS_ATTACH:
+	case DLL_THREAD_ATTACH:
+	case DLL_THREAD_DETACH:
+	case DLL_PROCESS_DETACH:
+		break;
+	}
+    return TRUE;
+}
+
+#pragma warning(pop)

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/cpp_lib_cmml.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,62 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "config.h"
+
+// These classes are exported from the cpp_lib_cmml.dll
+#include "C_AnchorTag.h"
+#include "C_BaseTag.h"
+#include "C_ClipTag.h"
+#include "C_ClipTagList.h"
+#include "C_CMMLDoc.h"
+#include "C_CMMLPreamble.h"
+#include "C_CMMLRootTag.h"
+#include "C_CMMLTag.h"
+#include "C_DescTag.h"
+#include "C_HeadTag.h"
+#include "C_HumReadCMMLTag.h"
+#include "C_ImageTag.h"
+#include "C_ImportTag.h"
+#include "C_ImportTagList.h"
+#include "C_Int64.h"				//Remove ??
+#include "C_MappedTag.h"
+#include "C_MappedTagList.h"
+#include "C_MetaTag.h"
+#include "C_MetaTagList.h"
+#include "C_ParamTag.h"
+#include "C_ParamTagList.h"
+#include "C_StreamTag.h"
+#include "C_TagList.h"
+#include "C_TextFieldTag.h"
+#include "C_TitleTag.h"
+

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,60 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   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.
+*/
+// cpp_lib_cmml.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+#include "libCMMLTags.h"
+
+//Ignore these unreferenced variable wanrings only for this file
+#pragma warning(push)
+#pragma warning(disable: 4100)
+
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+					 )
+{
+	switch (ul_reason_for_call)
+	{
+	case DLL_PROCESS_ATTACH:
+	case DLL_THREAD_ATTACH:
+	case DLL_THREAD_DETACH:
+	case DLL_PROCESS_DETACH:
+		break;
+	}
+    return TRUE;
+}
+
+#pragma warning(pop)

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,74 @@
+// The following ifdef block is the standard way of creating macros which make exporting 
+// from a DLL simpler. All files within this DLL are compiled with the LIBCMMLTAGS_EXPORTS
+// symbol defined on the command line. this symbol should not be defined on any project
+// that uses this DLL. This way any other project whose source files include this file see 
+// LIBCMMLTAGS_API functions as being imported from a DLL, whereas this DLL sees symbols
+// defined with this macro as being exported.
+#ifdef LIBCMMLTAGS_EXPORTS
+#define LIBCMMLTAGS_API __declspec(dllexport)
+#else
+#define LIBCMMLTAGS_API __declspec(dllimport)
+#endif
+
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   contributors may be used to endorse or promote products derived from
+   this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#include "config.h"
+
+// These classes are exported from the cpp_lib_cmml.dll
+#include "C_AnchorTag.h"
+#include "C_BaseTag.h"
+#include "C_ClipTag.h"
+#include "C_ClipTagList.h"
+#include "C_CMMLDoc.h"
+#include "C_CMMLPreamble.h"
+#include "C_CMMLRootTag.h"
+#include "C_CMMLTag.h"
+#include "C_DescTag.h"
+#include "C_HeadTag.h"
+#include "C_HumReadCMMLTag.h"
+#include "C_ImageTag.h"
+#include "C_ImportTag.h"
+#include "C_ImportTagList.h"
+#include "C_Int64.h"				//Remove ??
+#include "C_MappedTag.h"
+#include "C_MappedTagList.h"
+#include "C_MetaTag.h"
+#include "C_MetaTagList.h"
+#include "C_ParamTag.h"
+#include "C_ParamTagList.h"
+#include "C_StreamTag.h"
+#include "C_TagList.h"
+#include "C_TextFieldTag.h"
+#include "C_TitleTag.h"
+

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/libCMMLTags.vcproj	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.00"
+	Name="libCMMLTags"
+	ProjectGUID="{AD38DCC6-B431-4B32-8569-74F3376EF2DA}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBCMMLTAGS_EXPORTS"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/libCMMLTags.dll"
+				LinkIncremental="2"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/libCMMLTags.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/libCMMLTags.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="3"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				OmitFramePointers="TRUE"
+				OptimizeForProcessor="2"
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBCMMLTAGS_EXPORTS"
+				StringPooling="TRUE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="$(OutDir)/libCMMLTags.dll"
+				LinkIncremental="1"
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				OptimizeForWindows98="1"
+				ImportLibrary="$(OutDir)/libCMMLTags.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+	</Configurations>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+			<File
+				RelativePath="C_AnchorTag.cpp">
+			</File>
+			<File
+				RelativePath="C_BaseTag.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLDoc.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLError.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLPreamble.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLRootTag.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLTag.cpp">
+			</File>
+			<File
+				RelativePath="C_CMMLTime.cpp">
+			</File>
+			<File
+				RelativePath="C_ClipTag.cpp">
+			</File>
+			<File
+				RelativePath="C_ClipTagList.cpp">
+			</File>
+			<File
+				RelativePath="C_DescTag.cpp">
+			</File>
+			<File
+				RelativePath="C_HeadTag.cpp">
+			</File>
+			<File
+				RelativePath="C_HumReadCMMLTag.cpp">
+			</File>
+			<File
+				RelativePath="C_ImageTag.cpp">
+			</File>
+			<File
+				RelativePath="C_ImportTag.cpp">
+			</File>
+			<File
+				RelativePath="C_ImportTagList.cpp">
+			</File>
+			<File
+				RelativePath="C_Int64.cpp">
+			</File>
+			<File
+				RelativePath="C_MappedTag.cpp">
+			</File>
+			<File
+				RelativePath="C_MappedTagList.cpp">
+			</File>
+			<File
+				RelativePath="C_MetaTag.cpp">
+			</File>
+			<File
+				RelativePath="C_MetaTagList.cpp">
+			</File>
+			<File
+				RelativePath="C_ParamTag.cpp">
+			</File>
+			<File
+				RelativePath="C_ParamTagList.cpp">
+			</File>
+			<File
+				RelativePath="C_StreamTag.cpp">
+			</File>
+			<File
+				RelativePath="C_TagList.cpp">
+			</File>
+			<File
+				RelativePath="C_TextFieldTag.cpp">
+			</File>
+			<File
+				RelativePath="C_TitleTag.cpp">
+			</File>
+			<File
+				RelativePath="libCMMLTags.cpp">
+			</File>
+			<File
+				RelativePath="stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc">
+			<File
+				RelativePath="C_AnchorTag.h">
+			</File>
+			<File
+				RelativePath="C_BaseTag.h">
+			</File>
+			<File
+				RelativePath="C_CMMLDoc.h">
+			</File>
+			<File
+				RelativePath="C_CMMLError.h">
+			</File>
+			<File
+				RelativePath="C_CMMLPreamble.h">
+			</File>
+			<File
+				RelativePath="C_CMMLRootTag.h">
+			</File>
+			<File
+				RelativePath="C_CMMLTag.h">
+			</File>
+			<File
+				RelativePath="C_CMMLTime.h">
+			</File>
+			<File
+				RelativePath="C_ClipTag.h">
+			</File>
+			<File
+				RelativePath="C_ClipTagList.h">
+			</File>
+			<File
+				RelativePath="C_DescTag.h">
+			</File>
+			<File
+				RelativePath="C_HeadTag.h">
+			</File>
+			<File
+				RelativePath="C_HumReadCMMLTag.h">
+			</File>
+			<File
+				RelativePath="C_ImageTag.h">
+			</File>
+			<File
+				RelativePath="C_ImportTag.h">
+			</File>
+			<File
+				RelativePath="C_ImportTagList.h">
+			</File>
+			<File
+				RelativePath="C_Int64.h">
+			</File>
+			<File
+				RelativePath="C_MappedTag.h">
+			</File>
+			<File
+				RelativePath="C_MappedTagList.h">
+			</File>
+			<File
+				RelativePath="C_MetaTag.h">
+			</File>
+			<File
+				RelativePath="C_MetaTagList.h">
+			</File>
+			<File
+				RelativePath="C_ParamTag.h">
+			</File>
+			<File
+				RelativePath="C_ParamTagList.h">
+			</File>
+			<File
+				RelativePath="C_StreamTag.h">
+			</File>
+			<File
+				RelativePath="C_TagList.h">
+			</File>
+			<File
+				RelativePath="C_TextFieldTag.h">
+			</File>
+			<File
+				RelativePath="C_TitleTag.h">
+			</File>
+			<File
+				RelativePath="config.h">
+			</File>
+			<File
+				RelativePath="libCMMLTags.h">
+			</File>
+			<File
+				RelativePath="stdafx.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+		</Filter>
+		<File
+			RelativePath="ReadMe.txt">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,42 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   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.
+*/
+
+// stdafx.cpp : source file that includes just the standard includes
+// cpp_lib_cmml.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file

Added: trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/cmml/libCMMLTags/stdafx.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,49 @@
+/*
+   Copyright (C) 2003 Zentaro Kavanagh
+   
+   Copyright (C) 2003 Commonwealth Scientific and Industrial Research
+   Organisation (CSIRO) Australia
+
+   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 CSIRO Australia nor the names of its
+   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.
+*/
+
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+//These are warnings about STL on dll interface
+#pragma warning(disable:4251)
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+// Windows Header Files:
+#include <windows.h>
+#include "config.h"
+
+// TODO: reference additional headers your program requires here

Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeInputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexDecoder/SpeexDecodeInputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -35,6 +35,7 @@
 
 SpeexDecodeInputPin::SpeexDecodeInputPin(AbstractAudioDecodeFilter* inFilter, CCritSec* inFilterLock, AbstractAudioDecodeOutputPin* inOutputPin, CMediaType* inAcceptMediaType)
         :	AbstractAudioDecodeInputPin(inFilter, inFilterLock, inOutputPin, NAME("SpeexDecodeInputPin"), L"Speex In", inAcceptMediaType)
+	,	mFishSound(NULL)
 {
         ConstructCodec();
 }

Modified: trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeInputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/speex/filters/dsfSpeexEncoder/SpeexEncodeInputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -34,6 +34,7 @@
 
 SpeexEncodeInputPin::SpeexEncodeInputPin(AbstractAudioEncodeFilter* inParentFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin)
         :	AbstractAudioEncodeInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("SpeexEncodeInputPin"), L"PCM In")
+	,	mFishSound(NULL)
 {
         debugLog.open("C:\\temp\\speexenc.log", ios_base::out);
 }

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisDecoder/VorbisDecodeInputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -37,6 +37,7 @@
 VorbisDecodeInputPin::VorbisDecodeInputPin(AbstractAudioDecodeFilter* inFilter, CCritSec* inFilterLock, AbstractAudioDecodeOutputPin* inOutputPin, CMediaType* inAcceptMediaType)
         :	AbstractAudioDecodeInputPin(inFilter, inFilterLock, inOutputPin, NAME("VorbisDecodeInputPin"), L"Vorbis In", inAcceptMediaType),
                 mBegun(false)
+	,	mFishSound(NULL)
                 
 {
         //debugLog.open("C:\\vorbislog.log", ios_base::out);

Modified: trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/codecs/vorbis/filters/dsfVorbisEncoder/VorbisEncodeInputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -34,6 +34,7 @@
 
 VorbisEncodeInputPin::VorbisEncodeInputPin(AbstractAudioEncodeFilter* inParentFilter, CCritSec* inFilterLock, AbstractAudioEncodeOutputPin* inOutputPin)
         :	AbstractAudioEncodeInputPin(inParentFilter, inFilterLock, inOutputPin, NAME("VorbisEncodeInputPin"), L"PCM In")
+	,	mFishSound(NULL)
 {
         
 }

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -30,7 +30,9 @@
     return pNewObject;
 } 
 AnxDemuxSourceFilter::AnxDemuxSourceFilter(void)
+	:	OggDemuxSourceFilter(CLSID_AnxDemuxSourceFilter)
 {
+	mStreamMapper = new AnxStreamMapper(this);
 }
 
 AnxDemuxSourceFilter::~AnxDemuxSourceFilter(void)
@@ -46,7 +48,8 @@
 
         //ANX::: Needs to override ??? Or just modify the seeker.
         mSeekTable = new AutoOggSeekTable(StringHelper::toNarrowStr(mFileName));
-	mSeekTable->buildTable();
         
+	//mSeekTable->buildTable();
+	
         return SetUpPins();
 }
\ No newline at end of file

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxDemuxSourceFilter.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -1,6 +1,7 @@
 #pragma once
 #include "anxdllstuff.h"
 #include "OggDemuxSourceFilter.h"
+#include "AnxStreamMapper.h"
 #include <fstream>
 using namespace std;
 

Added: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,72 @@
+#include "StdAfx.h"
+#include "anxstreammapper.h"
+
+AnxStreamMapper::AnxStreamMapper(OggDemuxSourceFilter* inOwningFilter)
+	:	OggStreamMapper(inOwningFilter)
+	,	mAnnodexSerial(0)
+	,	mSeenAnnodexBOS(false)
+	,	mReadyForCodecs(false)
+{
+}
+
+AnxStreamMapper::~AnxStreamMapper(void)
+{
+}
+
+bool AnxStreamMapper::acceptOggPage(OggPage* inOggPage) 
+{
+	
+	if(!isReady()) {
+		mDataStartsAt += inOggPage->pageSize();
+	}
+
+	if (!mReadyForCodecs) {
+		if (inOggPage->header()->isBOS()) {
+			if (!mSeenAnnodexBOS) {
+				//This is an annodex BOS page
+				//Need to verify it's an annodex page too
+				mAnnodexSerial = inOggPage->header()->StreamSerialNo();
+				mSeenAnnodexBOS = true;
+				
+				//Need to save the data from the header here.
+			} else {
+				//This is anxdata
+
+				//Need to save header data here.
+				mSeenStreams.push_back(inOggPage->header()->StreamSerialNo());
+			}
+		}
+
+
+		if (inOggPage->header()->isEOS()) {
+			if (mSeenAnnodexBOS) {
+				//This is the annodex EOS page
+				mReadyForCodecs = true;
+			} else {
+				//ERROR... got an EOS before we've seen the annodex BOS
+				return false;
+			}
+		}
+	} else {
+		vector<unsigned long>::iterator it;
+		int i;
+		for(i = 0, it = mSeenStreams.begin(); it != mSeenStreams.end(); i++, ++it) {
+		//for (int i = 0; i < mSeenStreams.size(); i++) {
+			if (mSeenStreams[i] == inOggPage->header()->StreamSerialNo()) {
+				//If the page is a BOS we need to start a new stream
+				OggStream* locStream = OggStreamFactory::CreateStream(inOggPage, mOwningFilter);
+				//FIX::: Need to check for NULL
+				if (locStream != NULL) {
+					mStreamList.push_back(locStream);
+				}
+				mSeenStreams.erase(it);
+				return true;
+			}
+		}
+
+		//If we are here, the stream is not in the list.
+		//At the moment we assume it's because it's been seen, and removed... this is a bad assumption !
+
+		return dispatchPage(inOggPage);
+	}
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/AnxStreamMapper.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "OggStreamMapper.h"
+class AnxStreamMapper
+	:	public OggStreamMapper
+{
+public:
+	AnxStreamMapper(void);
+	AnxStreamMapper(OggDemuxSourceFilter* inOwningFilter);
+	virtual ~AnxStreamMapper(void);
+
+	virtual bool acceptOggPage(OggPage* inOggPage);
+
+protected:
+	vector<unsigned long> mSeenStreams;
+	bool mSeenAnnodexBOS;
+	bool mReadyForCodecs;
+	unsigned long mAnnodexSerial;
+};

Modified: trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfAnxDemux/dsfAnxDemux.vcproj	2004-06-01 17:58:05 UTC (rev 6797)
@@ -63,12 +63,16 @@
                         OutputDirectory="Release"
                         IntermediateDirectory="Release"
                         ConfigurationType="2"
-			CharacterSet="2">
+			CharacterSet="2"
+			WholeProgramOptimization="TRUE">
                         <Tool
                                 Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
+				Optimization="3"
+				GlobalOptimizations="TRUE"
+				InlineFunctionExpansion="2"
+				FavorSizeOrSpeed="1"
                                 OmitFramePointers="TRUE"
+				OptimizeForProcessor="2"
                                 AdditionalIncludeDirectories="C:\DXSDK\Include;"C:\DXSDK\Samples\C++\DirectShow\BaseClasses";..\..\ogg\libOOOgg;..\..\ogg\libOOOggSeek;..\dsfSeeking;..\dsfOggDemux"
                                 PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFANXDEMUX_EXPORTS"
                                 StringPooling="TRUE"
@@ -91,6 +95,7 @@
                                 SubSystem="2"
                                 OptimizeReferences="2"
                                 EnableCOMDATFolding="2"
+				OptimizeForWindows98="1"
                                 ImportLibrary="$(OutDir)/dsfAnxDemux.lib"
                                 TargetMachine="1"/>
                         <Tool
@@ -120,6 +125,9 @@
                                 RelativePath="AnxDemuxSourceFilter.cpp">
                         </File>
                         <File
+				RelativePath="AnxStreamMapper.cpp">
+			</File>
+			<File
                                 RelativePath="anxdllstuff.cpp">
                         </File>
                         <File
@@ -145,6 +153,9 @@
                                 RelativePath="AnxDemuxSourceFilter.h">
                         </File>
                         <File
+				RelativePath="AnxStreamMapper.h">
+			</File>
+			<File
                                 RelativePath="anxdllstuff.h">
                         </File>
                         <File

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -96,6 +96,23 @@
 
 }
 
+//Perhaps also pass in the name field.
+OggDemuxSourceFilter::OggDemuxSourceFilter(REFCLSID inFilterGUID)
+	:	CBaseFilter(NAME("OggDemuxSourceFilter"), NULL, m_pLock, inFilterGUID)
+	,	mSeekTable(NULL)
+	,	mStreamMapper(NULL)
+{
+	//LEAK CHECK:::Both get deleted in constructor.
+	m_pLock = new CCritSec;
+	mSourceFileLock = new CCritSec;
+	mDemuxLock = new CCritSec;
+	mStreamLock = new CCritSec;
+
+	//When it is derived, it's up to the superclass to set this.
+	//mStreamMapper = new OggStreamMapper(this);
+
+}
+
 OggDemuxSourceFilter::~OggDemuxSourceFilter(void)
 {
         //DbgLog((LOG_ERROR, 1, TEXT("****************** DESTRUCTOR **********************")));

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggDemuxSourceFilter.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -63,6 +63,7 @@
         };
         //Constructors
         OggDemuxSourceFilter();
+	OggDemuxSourceFilter(REFCLSID inFilterGUID);
         virtual ~OggDemuxSourceFilter(void);
 
         //IFileSource Interface

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -42,7 +42,7 @@
 class OggDemuxSourceFilter;
 class StreamHeaders;
 
-class OggStreamFactory
+class OGG_DEMUX_API OggStreamFactory
 {
 public:
         OggStreamFactory(void);

Modified: trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamMapper.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamMapper.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamMapper.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -35,10 +35,10 @@
 #include "OggStreamFactory.h"
 #include "OggDemuxSourceFilter.h"
 
-//#include <vector>
-//using namespace std;
+#include <vector>
+using namespace std;
 
-class OggStreamMapper
+class OGG_DEMUX_API OggStreamMapper
         :	public IOggCallback
 {
 public:

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/ReadMe.txt
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/ReadMe.txt	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/ReadMe.txt	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,40 @@
+========================================================================
+    DYNAMIC LINK LIBRARY : dsfSubtitleVMR9 Project Overview
+========================================================================
+
+AppWizard has created this dsfSubtitleVMR9 DLL for you.  
+This file contains a summary of what you will find in each of the files that
+make up your dsfSubtitleVMR9 application.
+
+
+dsfSubtitleVMR9.vcproj
+    This is the main project file for VC++ projects generated using an Application Wizard. 
+    It contains information about the version of Visual C++ that generated the file, and 
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+dsfSubtitleVMR9.cpp
+    This is the main DLL source file.
+
+	When created, this DLL does not export any symbols. As a result, it  
+	will not produce a .lib file when it is built. If you wish this project 
+	to be a project dependency of some other project, you will either need to 
+	add code to export some symbols from the DLL so that an export library 
+	will be produced, or you can set the Ignore Input Library property to Yes 
+	on the General propert page of the Linker folder in the project's Property 
+	Pages dialog box.
+
+/////////////////////////////////////////////////////////////////////////////
+Other standard files:
+
+StdAfx.h, StdAfx.cpp
+    These files are used to build a precompiled header (PCH) file
+    named dsfSubtitleVMR9.pch and a precompiled types file named StdAfx.obj.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,298 @@
+#include "StdAfx.h"
+#include "subtitlevmr9filter.h"
+
+
+//COM Factory Template
+CFactoryTemplate g_Templates[] = 
+{
+    { 
+		L"Subtitle VMR9 Filter",					// Name
+	    &CLSID_SubtitleVMR9Filter,				// CLSID
+	    SubtitleVMR9Filter::CreateInstance,		// Method to create an instance of Speex Decoder
+        NULL,									// Initialization function
+        NULL									// Set-up information (for filters)
+    }
+
+};
+
+// Generic way of determining the number of items in the template
+int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]); 
+
+CUnknown* WINAPI SubtitleVMR9Filter::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr) 
+{
+	//This routine is the COM implementation to create a new Filter
+	SubtitleVMR9Filter *pNewObject = new SubtitleVMR9Filter();
+    if (pNewObject == NULL) {
+        *pHr = E_OUTOFMEMORY;
+    }
+	return pNewObject;
+} 
+
+SubtitleVMR9Filter::SubtitleVMR9Filter(void)
+	:	CBaseRenderer(CLSID_SubtitleVMR9Filter, NAME("Subtitle VMR9 Filter") ,NULL,&mHR)
+	,	mBitmapMixer(NULL)
+	,	mVideoWindow(NULL)
+{
+	//mOutputPin = new SubtitleVMR9OutputPin(this, m_pLock, NAME("SubtitleVMR9OutputPin"), L"Subtitle Out");
+}
+
+SubtitleVMR9Filter::~SubtitleVMR9Filter(void)
+{
+}
+
+int SubtitleVMR9Filter::GetPinCount(void) {
+	return 1;
+}
+CBasePin* SubtitleVMR9Filter::GetPin(int inPinNo) {
+	if (inPinNo == 0) {
+		return CBaseRenderer::GetPin(inPinNo);
+	} else {
+		return NULL;
+	}
+}
+
+HRESULT SubtitleVMR9Filter::CheckMediaType(const CMediaType* inMediaType) {
+	return S_OK;
+}
+HRESULT SubtitleVMR9Filter::DoRenderSample(IMediaSample *pMediaSample) {
+	
+	if (mBitmapMixer == NULL) {
+		IFilterGraph* locFilterGraph = NULL;
+		locFilterGraph = GetFilterGraph();
+
+	
+		IBaseFilter* locVMR9 = NULL;
+		HRESULT locHR = locFilterGraph->FindFilterByName(L"Video Mixing Renderer 9", &locVMR9);
+		if (locVMR9 != NULL) {
+			HRESULT locHR = locVMR9->QueryInterface(IID_IVMRMixerBitmap9, (void**)&mBitmapMixer);
+			//locHR = locVMR9->QueryInterface(IID_IVideoWindow, (void**)&mVideoWindow);
+		} else {
+			return S_OK;
+		}
+	} else {
+		wstring x = L"blah";
+		SetSubtitle(x);
+		return S_OK;
+	}
+}
+
+
+
+
+HRESULT SubtitleVMR9Filter::SetSubtitle(wstring inSubtitle) {
+ //   LONG cx, cy;
+ //   HRESULT locHR;
+
+ //   // Read the default video size
+ //   //hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+ //   //if (FAILED(hr))
+ //   //{
+ //   //    Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);
+ //   //    return hr;
+ //   //}
+
+ //   // Create a device context compatible with the current window
+
+	//locHR = mBitmapMixer->GetAlphaBitmapParameters(&mAlphaBitmap);
+ //   //HDC hdc = GetDC(hwndApp);
+ //   HDC locHDCBitmap = CreateCompatibleDC(mAlphaBitmap.hdc);
+
+ //   // Write with a known font by selecting it into our HDC
+ //   HFONT locFontHandle = (HFONT) SelectObject(locHDCBitmap, g_hFont);
+
+ //   // Determine the length of the string, then determine the
+ //   // dimensions (in pixels) of the character string using the
+ //   // currently selected font.  These dimensions are used to create
+ //   // a bitmap below.
+ //   int locLength, locTextBmpWidth, locTextBmpHeight;
+ //   SIZE sz={0};
+ //   locLength = inSubtitle.size();
+ //   GetTextExtentPoint32(locHDCBitmap, inSubtitle.c_str(), locLength, &sz);
+ //   locTextBmpHeight = sz.cy;
+ //   locTextBmpWidth  = sz.cx;
+
+ //   // Create a new bitmap that is compatible with the current window
+ //   HBITMAP locBitmapHandle = CreateCompatibleBitmap(mAlphaBitmap.hdc, locTextBmpWidth, locTextBmpHeight);
+ //   //ReleaseDC(hwndApp, hdc);
+
+ //   // Select our bitmap into the device context and save the old one
+ //   BITMAP locBitmap;
+ //   HBITMAP locOldBitmapHandle;
+ //   GetObject(locBitmapHandle, sizeof(locBitmap), &locBitmap);
+ //   locOldBitmapHandle = (HBITMAP)SelectObject(locBitmapHandle, locBitmapHandle);
+
+ //   // Set initial bitmap settings
+ //   RECT rcText;
+ //   SetRect(&rcText, 0, 0, nTextBmpWidth, nTextBmpHeight);
+ //   SetBkColor(locBitmapHandle, RGB(255, 255, 255)); // Pure white background
+ //   SetTextColor(locBitmapHandle, g_rgbColors);      // Write text with requested color
+
+ //   // Draw the requested text string onto the bitmap
+ //   TextOut(locBitmapHandle, 0, 0, inSubtitle.c_str(), locLength);
+
+ //   // Configure the VMR's bitmap structure
+ //   //VMR9AlphaBitmap bmpInfo;
+ //   ZeroMemory(&mAlphaBitmap, sizeof(mAlphaBitmap) );
+ //   mAlphaBitmap.dwFlags = VMRBITMAP_HDC;
+ //   mAlphaBitmap.hdc = locHDCBitmap;  // DC which has selected our bitmap
+
+ //   // Remember the width of this new bitmap
+ //   g_nImageWidth = bm.bmWidth;
+
+ //   // Save the ratio of the bitmap's width to the width of the video file.
+ //   // This value is used to reposition the bitmap in composition space.
+ //   g_fBitmapCompWidth = (float)g_nImageWidth / (float)cx;
+
+ //   // Display the bitmap in the bottom right corner.
+ //   // rSrc specifies the source rectangle in the GDI device context 
+ //   // rDest specifies the destination rectangle in composition space (0.0f to 1.0f)
+ //   mAlphaBitmap.rDest.left  = 0.0f + X_EDGE_BUFFER;
+ //   mAlphaBitmap.rDest.right = 1.0f - X_EDGE_BUFFER;
+ //   mAlphaBitmap.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
+ //   bmAlphaBitmap.rDest.bottom = 1.0f - Y_EDGE_BUFFER;
+ //   mAlphaBitmap.rSrc = rcText;
+
+ //   // Transparency value 1.0 is opaque, 0.0 is transparent.
+ //   mAlphaBitmap.fAlpha = TRANSPARENCY_VALUE;
+
+ //   // Set the COLORREF so that the bitmap outline will be transparent
+ //   SetColorRef(mAlphaBitmap);
+
+ //   // Give the bitmap to the VMR for display
+ //   locHR = mBitmapMixer->SetAlphaBitmap(&mAlphaBitmap);
+ //   if (FAILED(hr))
+ //       Msg(TEXT("SetAlphaBitmap FAILED!  hr=0x%x\r\n\r\n%s\0"), hr,
+ //           STR_VMR_DISPLAY_WARNING);
+
+ //   // Select the initial objects back into our device context
+ //   DeleteObject(SelectObject(locBitmapHDC,locOldBitmapHandle ));
+ //   SelectObject(locHDCBitmap, locFont);
+
+ //   // Clean up resources
+ //   DeleteObject(hbm);
+ //   DeleteDC(hdcBmp);
+
+ //   return hr;
+
+
+	// Text font information
+	HFONT g_hFont=0;
+	LONG g_lFontPointSize   = DEFAULT_FONT_SIZE;
+	COLORREF g_rgbColors    = DEFAULT_FONT_COLOR;
+	TCHAR g_szFontName[100] = {DEFAULT_FONT_NAME};
+	TCHAR g_szFontStyle[32] = {DEFAULT_FONT_STYLE};
+
+	LONG cx, cy;
+    HRESULT hr;
+
+    // Read the default video size
+    //hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+    //if (FAILED(hr))
+    //{
+    //    Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);
+    //    return hr;
+    //}
+
+    // Create a device context compatible with the current window
+	hr = mBitmapMixer->GetAlphaBitmapParameters(&mAlphaBitmap);
+	//HWND hwndApp;
+	//OAHWND oah;
+	//mVideoWindow->get_Owner(&oah);
+	HDC hdc = GetDC(NULL);
+    //HDC hdc = mAlphaBitmap.hdc;
+    HDC hdcBmp = CreateCompatibleDC(hdc);
+
+    // Write with a known font by selecting it into our HDC
+    HFONT hOldFont = (HFONT) SelectObject(hdcBmp, g_hFont);
+
+    // Determine the length of the string, then determine the
+    // dimensions (in pixels) of the character string using the
+    // currently selected font.  These dimensions are used to create
+    // a bitmap below.
+    int nLength, nTextBmpWidth, nTextBmpHeight;
+    SIZE sz={0};
+    
+	TCHAR* szNewText = _T("Annodex Me Baby !");//inSubtitle.c_str();
+	nLength = _tcslen(szNewText); ;//(int) inSubtitle.size();
+
+    GetTextExtentPoint32(hdcBmp, szNewText, nLength, &sz);
+    nTextBmpHeight = sz.cy;
+    nTextBmpWidth  = sz.cx;
+
+    // Create a new bitmap that is compatible with the current window
+    HBITMAP hbm = CreateCompatibleBitmap(hdc, nTextBmpWidth, nTextBmpHeight);
+    //ReleaseDC(hwndApp, hdc);
+
+    // Select our bitmap into the device context and save the old one
+    BITMAP bm;
+    HBITMAP hbmOld;
+    GetObject(hbm, sizeof(bm), &bm);
+    hbmOld = (HBITMAP)SelectObject(hdcBmp, hbm);
+
+    // Set initial bitmap settings
+    RECT rcText;
+    SetRect(&rcText, 0, 0, nTextBmpWidth, nTextBmpHeight);
+    SetBkColor(hdcBmp, RGB(255, 255, 255)); // Pure white background
+    SetTextColor(hdcBmp, g_rgbColors);      // Write text with requested color
+
+    // Draw the requested text string onto the bitmap
+    BOOL ret = TextOut(hdcBmp, 0, 0, szNewText, nLength);
+
+    // Configure the VMR's bitmap structure
+    VMR9AlphaBitmap bmpInfo;
+    ZeroMemory(&bmpInfo, sizeof(bmpInfo) );
+    bmpInfo.dwFlags = VMRBITMAP_HDC;
+    bmpInfo.hdc = hdcBmp;  // DC which has selected our bitmap
+
+    // Remember the width of this new bitmap
+    //g_nImageWidth = bm.bmWidth;
+
+    // Save the ratio of the bitmap's width to the width of the video file.
+    // This value is used to reposition the bitmap in composition space.
+    //g_fBitmapCompWidth = (float)g_nImageWidth / (float)cx;
+
+    // Display the bitmap in the bottom right corner.
+    // rSrc specifies the source rectangle in the GDI device context 
+    // rDest specifies the destination rectangle in composition space (0.0f to 1.0f)
+
+	const float X_EDGE_BUFFER=0.05f; // Pixel buffer between bitmap and window edge
+                                 // (represented in composition space [0 - 1.0f])
+	const float Y_EDGE_BUFFER=0.05f;
+
+    bmpInfo.rDest.left  = 0.0f + X_EDGE_BUFFER;
+    bmpInfo.rDest.right = 1.0f - X_EDGE_BUFFER;
+    //bmpInfo.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
+	//bmpInfo.rDest.top = (float)(200.0f - bm.bmHeight) / (float)200.0f - Y_EDGE_BUFFER;
+	bmpInfo.rDest.top = 0.8f;//(float)(200.0f - bm.bmHeight) / (float)200.0f - Y_EDGE_BUFFER;
+    bmpInfo.rDest.bottom = 1.0f - Y_EDGE_BUFFER;
+    bmpInfo.rSrc = rcText;
+
+    // Transparency value 1.0 is opaque, 0.0 is transparent.
+    bmpInfo.fAlpha = TRANSPARENCY_VALUE;
+
+    // Set the COLORREF so that the bitmap outline will be transparent
+    SetColorRef(bmpInfo);
+
+    // Give the bitmap to the VMR for display
+    hr = mBitmapMixer->SetAlphaBitmap(&bmpInfo);
+    if (FAILED(hr))
+        //Msg(TEXT("SetAlphaBitmap FAILED!  hr=0x%x\r\n\r\n%s\0"), hr,
+          //  STR_VMR_DISPLAY_WARNING);
+
+    // Select the initial objects back into our device context
+    DeleteObject(SelectObject(hdcBmp, hbmOld));
+    SelectObject(hdc, hOldFont);
+
+    // Clean up resources
+    DeleteObject(hbm);
+    DeleteDC(hdcBmp);
+
+    return hr;
+}
+
+void SubtitleVMR9Filter::SetColorRef(VMR9AlphaBitmap& bmpInfo)
+{
+    // Set the COLORREF so that the bitmap outline will be transparent
+    bmpInfo.clrSrcKey = RGB(255, 255, 255);  // Pure white
+    bmpInfo.dwFlags |= VMRBITMAP_SRCCOLORKEY;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9Filter.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,54 @@
+#pragma once
+#include "subtitledllstuff.h"
+#include <d3d9.h>
+#include <vmr9.h>
+#include <tchar.h>
+#include <string>
+using namespace std;
+
+#define TRANSPARENCY_VALUE   (0.5f)
+
+#define PURE_WHITE          RGB(255,255,255)
+#define ALMOST_WHITE        RGB(250,250,250)
+
+#define BLEND_TEXT          TEXT("This is a demonstration of alpha-blended dynamic text.\0")
+#define DYNAMIC_TEXT_SIZE   255
+
+#define DEFAULT_FONT_NAME   TEXT("Impact\0")
+#define DEFAULT_FONT_STYLE  TEXT("Regular\0")
+#define DEFAULT_FONT_SIZE   12
+#define DEFAULT_FONT_COLOR  RGB(255,0,0)
+#define MAX_FONT_SIZE		25
+
+class SubtitleVMR9OutputPin;
+
+class SubtitleVMR9Filter
+	:	public CBaseRenderer
+{
+public:
+	DECLARE_IUNKNOWN
+	static CUnknown* WINAPI CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr);
+	SubtitleVMR9Filter(void);
+	virtual ~SubtitleVMR9Filter(void);
+
+	//Base Filter Implementation
+	virtual int GetPinCount(void);
+	virtual CBasePin* GetPin(int inPinNo);
+
+	HRESULT CheckMediaType(const CMediaType* inMediaType);
+	HRESULT DoRenderSample(IMediaSample *pMediaSample);
+
+
+
+
+
+
+protected:
+	void SetColorRef(VMR9AlphaBitmap& bmpInfo);
+	HRESULT mHR;
+	//SubtitleVMR9OutputPin* mOutputPin;
+	virtual HRESULT SetSubtitle(wstring inSubtitle);
+	IVideoWindow* mVideoWindow;
+	IVMRMixerBitmap9* mBitmapMixer;
+	VMR9AlphaBitmap mAlphaBitmap;
+};

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,17 @@
+#include "StdAfx.h"
+#include "subtitlevmr9inputpin.h"
+
+SubtitleVMR9InputPin::SubtitleVMR9InputPin(SubtitleVMR9Filter* inParentFilter, HRESULT* inHR, LPCWSTR inPinName)
+	:	CRendererInputPin(inParentFilter, inHR, inPinName)
+	,	mParentFilter(inParentFilter)
+{
+}
+
+SubtitleVMR9InputPin::~SubtitleVMR9InputPin(void)
+{
+}
+
+HRESULT SubtitleVMR9InputPin::CheckMediaType(const CMediaType *pmt) {
+	//Fix this up after testing.
+	return S_OK;
+}

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9InputPin.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,13 @@
+#pragma once
+#include "subtitledllstuff.h"
+class SubtitleVMR9InputPin
+	:	public CRendererInputPin
+{
+public:
+	SubtitleVMR9InputPin(SubtitleVMR9Filter* inParentFilter, HRESULT* inHR, LPCWSTR inPinName);
+	virtual ~SubtitleVMR9InputPin(void);
+
+	HRESULT SubtitleVMR9InputPin::CheckMediaType(const CMediaType *pmt);
+protected:
+	SubtitleVMR9Filter* mParentFilter;
+};

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,301 @@
+#include "StdAfx.h"
+#include "subtitlevmr9outputpin.h"
+
+SubtitleVMR9OutputPin::SubtitleVMR9OutputPin(SubtitleVMR9Filter* inParentFilter, CCritSec* inFilterLock, CHAR* inObjectName, LPCWSTR inPinDisplayName)
+	:	CBasePin(inObjectName, inParentFilter, inFilterLock, &mHR, inPinDisplayName, PINDIR_OUTPUT)
+	,	mParentFilter(inParentFilter)
+	,	mBitmapMixer(NULL)
+{
+}
+
+SubtitleVMR9OutputPin::~SubtitleVMR9OutputPin(void)
+{
+}
+
+HRESULT SubtitleVMR9OutputPin::CheckConnect(IPin* inPin) {
+	//Query for the video mixing bitmap interface
+    //HRESULT locHR = inPin->QueryInterface(IID_IVMRMixerBitmap9, (void**)&mBitmapMixer);
+	//if (locHR == S_OK) {
+		return S_OK;
+	//} else {
+	//	return S_FALSE;
+	//}
+
+
+}
+void SubtitleVMR9OutputPin::FillMediaType(CMediaType* outMediaType) {
+	outMediaType->SetType(&MEDIATYPE_Video);
+	outMediaType->SetSubtype(&MEDIASUBTYPE_YV12);
+	outMediaType->SetFormatType(&FORMAT_VideoInfo);
+	outMediaType->SetTemporalCompression(FALSE);
+	outMediaType->SetSampleSize(0);
+
+}
+HRESULT SubtitleVMR9OutputPin::GetMediaType(int inPosition, CMediaType *outMediaType) {
+
+	if (inPosition < 0) {
+		return E_INVALIDARG;
+	}
+	
+	if (inPosition == 0) {
+		FillMediaType(outMediaType);
+		VIDEOINFOHEADER* locVideoFormat = (VIDEOINFOHEADER*)outMediaType->AllocFormatBuffer(sizeof(VIDEOINFOHEADER));
+		FillVideoInfoHeader(locVideoFormat);
+		return S_OK;
+	} else {
+		return VFW_S_NO_MORE_ITEMS;
+	}
+}
+
+bool SubtitleVMR9OutputPin::FillVideoInfoHeader(VIDEOINFOHEADER* inFormatBuffer) {
+	
+
+	inFormatBuffer->AvgTimePerFrame = (UNITS * 1) / 25;
+	inFormatBuffer->dwBitRate = 0;
+	
+	inFormatBuffer->bmiHeader.biBitCount = 12;   //12 bits per pixel
+	inFormatBuffer->bmiHeader.biClrImportant = 0;   //All colours important
+	inFormatBuffer->bmiHeader.biClrUsed = 0;        //Use max colour depth
+	inFormatBuffer->bmiHeader.biCompression = MAKEFOURCC('Y','V','1','2');
+	inFormatBuffer->bmiHeader.biHeight = 0;   //Not sure
+	inFormatBuffer->bmiHeader.biPlanes = 1;    //Must be 1
+	inFormatBuffer->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);    //????? Size of what ?
+	inFormatBuffer->bmiHeader.biSizeImage = 0;    //Size in bytes of image ??
+	inFormatBuffer->bmiHeader.biWidth = 0;
+	inFormatBuffer->bmiHeader.biXPelsPerMeter = 2000;   //Fuck knows
+	inFormatBuffer->bmiHeader.biYPelsPerMeter = 2000;   //" " " " " 
+	
+	inFormatBuffer->rcSource.top = 0;
+	inFormatBuffer->rcSource.bottom = 0;
+	inFormatBuffer->rcSource.left = 0;
+	inFormatBuffer->rcSource.right = 0;
+
+	inFormatBuffer->rcTarget.top = 0;
+	inFormatBuffer->rcTarget.bottom = 0;
+	inFormatBuffer->rcTarget.left = 0;
+	inFormatBuffer->rcTarget.right = 0;
+
+	inFormatBuffer->dwBitErrorRate=0;
+	return true;
+}
+HRESULT SubtitleVMR9OutputPin::CheckMediaType(const CMediaType *pmt) {
+	//Fix this up after testing.
+	return S_OK;
+}
+
+STDMETHODIMP SubtitleVMR9OutputPin::BeginFlush() {
+	return S_OK;
+}
+STDMETHODIMP SubtitleVMR9OutputPin::EndFlush() {
+	return S_OK;
+}
+
+HRESULT SubtitleVMR9OutputPin::SetSubtitle(wstring inSubtitle) {
+ //   LONG cx, cy;
+ //   HRESULT locHR;
+
+ //   // Read the default video size
+ //   //hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+ //   //if (FAILED(hr))
+ //   //{
+ //   //    Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);
+ //   //    return hr;
+ //   //}
+
+ //   // Create a device context compatible with the current window
+
+	//locHR = mBitmapMixer->GetAlphaBitmapParameters(&mAlphaBitmap);
+ //   //HDC hdc = GetDC(hwndApp);
+ //   HDC locHDCBitmap = CreateCompatibleDC(mAlphaBitmap.hdc);
+
+ //   // Write with a known font by selecting it into our HDC
+ //   HFONT locFontHandle = (HFONT) SelectObject(locHDCBitmap, g_hFont);
+
+ //   // Determine the length of the string, then determine the
+ //   // dimensions (in pixels) of the character string using the
+ //   // currently selected font.  These dimensions are used to create
+ //   // a bitmap below.
+ //   int locLength, locTextBmpWidth, locTextBmpHeight;
+ //   SIZE sz={0};
+ //   locLength = inSubtitle.size();
+ //   GetTextExtentPoint32(locHDCBitmap, inSubtitle.c_str(), locLength, &sz);
+ //   locTextBmpHeight = sz.cy;
+ //   locTextBmpWidth  = sz.cx;
+
+ //   // Create a new bitmap that is compatible with the current window
+ //   HBITMAP locBitmapHandle = CreateCompatibleBitmap(mAlphaBitmap.hdc, locTextBmpWidth, locTextBmpHeight);
+ //   //ReleaseDC(hwndApp, hdc);
+
+ //   // Select our bitmap into the device context and save the old one
+ //   BITMAP locBitmap;
+ //   HBITMAP locOldBitmapHandle;
+ //   GetObject(locBitmapHandle, sizeof(locBitmap), &locBitmap);
+ //   locOldBitmapHandle = (HBITMAP)SelectObject(locBitmapHandle, locBitmapHandle);
+
+ //   // Set initial bitmap settings
+ //   RECT rcText;
+ //   SetRect(&rcText, 0, 0, nTextBmpWidth, nTextBmpHeight);
+ //   SetBkColor(locBitmapHandle, RGB(255, 255, 255)); // Pure white background
+ //   SetTextColor(locBitmapHandle, g_rgbColors);      // Write text with requested color
+
+ //   // Draw the requested text string onto the bitmap
+ //   TextOut(locBitmapHandle, 0, 0, inSubtitle.c_str(), locLength);
+
+ //   // Configure the VMR's bitmap structure
+ //   //VMR9AlphaBitmap bmpInfo;
+ //   ZeroMemory(&mAlphaBitmap, sizeof(mAlphaBitmap) );
+ //   mAlphaBitmap.dwFlags = VMRBITMAP_HDC;
+ //   mAlphaBitmap.hdc = locHDCBitmap;  // DC which has selected our bitmap
+
+ //   // Remember the width of this new bitmap
+ //   g_nImageWidth = bm.bmWidth;
+
+ //   // Save the ratio of the bitmap's width to the width of the video file.
+ //   // This value is used to reposition the bitmap in composition space.
+ //   g_fBitmapCompWidth = (float)g_nImageWidth / (float)cx;
+
+ //   // Display the bitmap in the bottom right corner.
+ //   // rSrc specifies the source rectangle in the GDI device context 
+ //   // rDest specifies the destination rectangle in composition space (0.0f to 1.0f)
+ //   mAlphaBitmap.rDest.left  = 0.0f + X_EDGE_BUFFER;
+ //   mAlphaBitmap.rDest.right = 1.0f - X_EDGE_BUFFER;
+ //   mAlphaBitmap.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
+ //   bmAlphaBitmap.rDest.bottom = 1.0f - Y_EDGE_BUFFER;
+ //   mAlphaBitmap.rSrc = rcText;
+
+ //   // Transparency value 1.0 is opaque, 0.0 is transparent.
+ //   mAlphaBitmap.fAlpha = TRANSPARENCY_VALUE;
+
+ //   // Set the COLORREF so that the bitmap outline will be transparent
+ //   SetColorRef(mAlphaBitmap);
+
+ //   // Give the bitmap to the VMR for display
+ //   locHR = mBitmapMixer->SetAlphaBitmap(&mAlphaBitmap);
+ //   if (FAILED(hr))
+ //       Msg(TEXT("SetAlphaBitmap FAILED!  hr=0x%x\r\n\r\n%s\0"), hr,
+ //           STR_VMR_DISPLAY_WARNING);
+
+ //   // Select the initial objects back into our device context
+ //   DeleteObject(SelectObject(locBitmapHDC,locOldBitmapHandle ));
+ //   SelectObject(locHDCBitmap, locFont);
+
+ //   // Clean up resources
+ //   DeleteObject(hbm);
+ //   DeleteDC(hdcBmp);
+
+ //   return hr;
+
+
+	// Text font information
+	HFONT g_hFont=0;
+	LONG g_lFontPointSize   = DEFAULT_FONT_SIZE;
+	COLORREF g_rgbColors    = DEFAULT_FONT_COLOR;
+	TCHAR g_szFontName[100] = {DEFAULT_FONT_NAME};
+	TCHAR g_szFontStyle[32] = {DEFAULT_FONT_STYLE};
+
+	LONG cx, cy;
+    HRESULT hr;
+
+    // Read the default video size
+    //hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);
+    //if (FAILED(hr))
+    //{
+    //    Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);
+    //    return hr;
+    //}
+
+    // Create a device context compatible with the current window
+	hr = mBitmapMixer->GetAlphaBitmapParameters(&mAlphaBitmap);
+    HDC hdc = mAlphaBitmap.hdc;
+    HDC hdcBmp = CreateCompatibleDC(hdc);
+
+    // Write with a known font by selecting it into our HDC
+    HFONT hOldFont = (HFONT) SelectObject(hdcBmp, g_hFont);
+
+    // Determine the length of the string, then determine the
+    // dimensions (in pixels) of the character string using the
+    // currently selected font.  These dimensions are used to create
+    // a bitmap below.
+    int nLength, nTextBmpWidth, nTextBmpHeight;
+    SIZE sz={0};
+    nLength = (int) inSubtitle.size();
+	TCHAR* szNewText = _T("Blah blah");//inSubtitle.c_str();
+    GetTextExtentPoint32(hdcBmp, szNewText, nLength, &sz);
+    nTextBmpHeight = sz.cy;
+    nTextBmpWidth  = sz.cx;
+
+    // Create a new bitmap that is compatible with the current window
+    HBITMAP hbm = CreateCompatibleBitmap(hdc, nTextBmpWidth, nTextBmpHeight);
+    //ReleaseDC(hwndApp, hdc);
+
+    // Select our bitmap into the device context and save the old one
+    BITMAP bm;
+    HBITMAP hbmOld;
+    GetObject(hbm, sizeof(bm), &bm);
+    hbmOld = (HBITMAP)SelectObject(hdcBmp, hbm);
+
+    // Set initial bitmap settings
+    RECT rcText;
+    SetRect(&rcText, 0, 0, nTextBmpWidth, nTextBmpHeight);
+    SetBkColor(hdcBmp, RGB(255, 255, 255)); // Pure white background
+    SetTextColor(hdcBmp, g_rgbColors);      // Write text with requested color
+
+    // Draw the requested text string onto the bitmap
+    TextOut(hdcBmp, 0, 0, szNewText, nLength);
+
+    // Configure the VMR's bitmap structure
+    VMR9AlphaBitmap bmpInfo;
+    ZeroMemory(&bmpInfo, sizeof(bmpInfo) );
+    bmpInfo.dwFlags = VMRBITMAP_HDC;
+    bmpInfo.hdc = hdcBmp;  // DC which has selected our bitmap
+
+    // Remember the width of this new bitmap
+    //g_nImageWidth = bm.bmWidth;
+
+    // Save the ratio of the bitmap's width to the width of the video file.
+    // This value is used to reposition the bitmap in composition space.
+    //g_fBitmapCompWidth = (float)g_nImageWidth / (float)cx;
+
+    // Display the bitmap in the bottom right corner.
+    // rSrc specifies the source rectangle in the GDI device context 
+    // rDest specifies the destination rectangle in composition space (0.0f to 1.0f)
+
+	const float X_EDGE_BUFFER=0.05f; // Pixel buffer between bitmap and window edge
+                                 // (represented in composition space [0 - 1.0f])
+	const float Y_EDGE_BUFFER=0.05f;
+
+    bmpInfo.rDest.left  = 0.0f + X_EDGE_BUFFER;
+    bmpInfo.rDest.right = 1.0f - X_EDGE_BUFFER;
+    bmpInfo.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;
+    bmpInfo.rDest.bottom = 1.0f - Y_EDGE_BUFFER;
+    bmpInfo.rSrc = rcText;
+
+    // Transparency value 1.0 is opaque, 0.0 is transparent.
+    bmpInfo.fAlpha = TRANSPARENCY_VALUE;
+
+    // Set the COLORREF so that the bitmap outline will be transparent
+    SetColorRef(bmpInfo);
+
+    // Give the bitmap to the VMR for display
+    hr = mBitmapMixer->SetAlphaBitmap(&bmpInfo);
+    if (FAILED(hr))
+        //Msg(TEXT("SetAlphaBitmap FAILED!  hr=0x%x\r\n\r\n%s\0"), hr,
+          //  STR_VMR_DISPLAY_WARNING);
+
+    // Select the initial objects back into our device context
+    DeleteObject(SelectObject(hdcBmp, hbmOld));
+    SelectObject(hdc, hOldFont);
+
+    // Clean up resources
+    DeleteObject(hbm);
+    DeleteDC(hdcBmp);
+
+    return hr;
+}
+
+void SubtitleVMR9OutputPin::SetColorRef(VMR9AlphaBitmap& bmpInfo)
+{
+    // Set the COLORREF so that the bitmap outline will be transparent
+    bmpInfo.clrSrcKey = RGB(255, 255, 255);  // Pure white
+    bmpInfo.dwFlags |= VMRBITMAP_SRCCOLORKEY;
+}
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/SubtitleVMR9OutputPin.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,52 @@
+#pragma once
+#include "subtitledllstuff.h"
+#include <d3d9.h>
+#include <vmr9.h>
+#include <tchar.h>
+#include <string>
+using namespace std;
+
+#define TRANSPARENCY_VALUE   (0.5f)
+
+#define PURE_WHITE          RGB(255,255,255)
+#define ALMOST_WHITE        RGB(250,250,250)
+
+#define BLEND_TEXT          TEXT("This is a demonstration of alpha-blended dynamic text.\0")
+#define DYNAMIC_TEXT_SIZE   255
+
+#define DEFAULT_FONT_NAME   TEXT("Impact\0")
+#define DEFAULT_FONT_STYLE  TEXT("Regular\0")
+#define DEFAULT_FONT_SIZE   12
+#define DEFAULT_FONT_COLOR  RGB(255,0,0)
+#define MAX_FONT_SIZE		25
+
+
+class SubtitleVMR9OutputPin
+	:	public CBasePin
+{
+public:
+	SubtitleVMR9OutputPin(SubtitleVMR9Filter* inParentFilter, CCritSec* inFilterLock, CHAR* inObjectName, LPCWSTR inPinDisplayName);
+	virtual ~SubtitleVMR9OutputPin(void);
+
+
+
+	virtual HRESULT CheckConnect(IPin *pPin);
+	virtual HRESULT CheckMediaType(const CMediaType *pmt);
+	virtual STDMETHODIMP BeginFlush();
+	virtual STDMETHODIMP EndFlush();
+
+	virtual HRESULT SetSubtitle(wstring inSubtitle);
+
+	HRESULT SubtitleVMR9OutputPin::GetMediaType(int inPosition, CMediaType *outMediaType);
+	bool SubtitleVMR9OutputPin::FillVideoInfoHeader(VIDEOINFOHEADER* inFormatBuffer);
+	void SubtitleVMR9OutputPin::FillMediaType(CMediaType* outMediaType);
+	
+	
+
+protected:
+	void SetColorRef(VMR9AlphaBitmap& bmpInfo);
+	SubtitleVMR9Filter* mParentFilter;
+	HRESULT mHR;
+	IVMRMixerBitmap9* mBitmapMixer;
+	VMR9AlphaBitmap mAlphaBitmap;
+};

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,12 @@
+// dsfSubtitleVMR9.cpp : Defines the entry point for the DLL application.
+//
+
+#include "stdafx.h"
+BOOL APIENTRY DllMain( HANDLE hModule, 
+                       DWORD  ul_reason_for_call, 
+                       LPVOID lpReserved
+					 )
+{
+    return TRUE;
+}
+

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/dsfSubtitleVMR9.vcproj	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding = "Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.00"
+	Name="dsfSubtitleVMR9"
+	ProjectGUID="{88532BA9-1EED-421F-84BF-88A7A87FB2D3}"
+	Keyword="Win32Proj">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="Debug"
+			IntermediateDirectory="Debug"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories=""C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include"
+				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DSFSUBTITLEVMR9_EXPORTS"
+				MinimalRebuild="TRUE"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="4"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="Strmbasd.lib Msvcrtd.lib Winmm.lib Strmiids.lib  Quartz.lib"
+				OutputFile="$(OutDir)/dsfSubtitleVMR9.dll"
+				LinkIncremental="2"
+				AdditionalLibraryDirectories=""C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug""
+				ModuleDefinitionFile="subtitleVMR9.def"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile="$(OutDir)/dsfSubtitleVMR9.pdb"
+				SubSystem="2"
+				ImportLibrary="$(OutDir)/dsfSubtitleVMR9.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="Release"
+			IntermediateDirectory="Release"
+			ConfigurationType="2"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="2"
+				InlineFunctionExpansion="1"
+				OmitFramePointers="TRUE"
+				AdditionalIncludeDirectories=""C:\DXSDK\Samples\C++\DirectShow\BaseClasses";C:\DXSDK\Include;"C:\DXSDK\Samples\C++\DirectShow\VMR9\Inc\""
+				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;DSFSUBTITLEVMR9_EXPORTS"
+				StringPooling="TRUE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				UsePrecompiledHeader="3"
+				WarningLevel="3"
+				Detect64BitPortabilityProblems="TRUE"
+				DebugInformationFormat="3"
+				CallingConvention="2"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="Strmbase.lib Msvcrt.lib Winmm.lib Strmiids.lib  Quartz.lib"
+				OutputFile="$(OutDir)/dsfSubtitleVMR9.dll"
+				LinkIncremental="1"
+				AdditionalLibraryDirectories=""C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release""
+				ModuleDefinitionFile="subtitleVMR9.def"
+				GenerateDebugInformation="TRUE"
+				SubSystem="2"
+				OptimizeReferences="2"
+				EnableCOMDATFolding="2"
+				ImportLibrary="$(OutDir)/dsfSubtitleVMR9.lib"
+				TargetMachine="1"/>
+			<Tool
+				Name="VCMIDLTool"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+		</Configuration>
+	</Configurations>
+	<Files>
+		<Filter
+			Name="Source Files"
+			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm">
+			<File
+				RelativePath="SubtitleVMR9Filter.cpp">
+			</File>
+			<File
+				RelativePath="SubtitleVMR9InputPin.cpp">
+			</File>
+			<File
+				RelativePath="SubtitleVMR9OutputPin.cpp">
+			</File>
+			<File
+				RelativePath="stdafx.cpp">
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="subtitleVMR9.def">
+			</File>
+			<File
+				RelativePath="subtitledllstuff.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="Header Files"
+			Filter="h;hpp;hxx;hm;inl;inc">
+			<File
+				RelativePath="SubtitleVMR9Filter.h">
+			</File>
+			<File
+				RelativePath="SubtitleVMR9InputPin.h">
+			</File>
+			<File
+				RelativePath="SubtitleVMR9OutputPin.h">
+			</File>
+			<File
+				RelativePath="stdafx.h">
+			</File>
+			<File
+				RelativePath="subtitledllstuff.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="Resource Files"
+			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+		</Filter>
+		<File
+			RelativePath="ReadMe.txt">
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,8 @@
+// stdafx.cpp : source file that includes just the standard includes
+// dsfSubtitleVMR9.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
+
+// TODO: reference any additional headers you need in STDAFX.H
+// and not in this file

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/stdafx.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,15 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently, but
+// are changed infrequently
+//
+
+#pragma once
+
+#define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
+// Windows Header Files:
+#include <windows.h>
+
+// TODO: reference additional headers your program requires here
+#include "SubtitleVMR9Filter.h"
+#include "SubtitleVMR9OutputPin.h"
+#include "SubtitleVMR9InputPin.h"
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitleVMR9.def
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitleVMR9.def	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitleVMR9.def	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,7 @@
+LIBRARY	dsfSubtitleVMR9
+EXPORTS 
+	DllMain				PRIVATE
+    DllGetClassObject   PRIVATE
+    DllCanUnloadNow     PRIVATE
+    DllRegisterServer   PRIVATE
+    DllUnregisterServer PRIVATE
\ No newline at end of file

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.cpp
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.cpp	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.cpp	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,98 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+
+#include "StdAfx.h"
+#include "subtitledllstuff.h"
+
+extern "C" BOOL WINAPI DllEntryPoint(HINSTANCE, ULONG, LPVOID);
+BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
+{
+    return DllEntryPoint((HINSTANCE)(hModule), dwReason, lpReserved);
+}
+
+
+//The folowing two functions do the registration and deregistration of the dll and it's contained com objects.
+STDAPI DllRegisterServer()
+{
+
+    HRESULT hr;
+    IFilterMapper2* locFilterMapper = NULL;
+
+    hr = AMovieDllRegisterServer2(TRUE);
+
+
+	
+
+    hr = CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER, IID_IFilterMapper2, (void **)&locFilterMapper);
+
+
+	hr = locFilterMapper->RegisterFilter(
+		CLSID_SubtitleVMR9Filter,						// Filter CLSID. 
+		L"Subtitle VMR9 Filter",							// Filter name.
+        NULL,										// Device moniker. 
+        &CLSID_LegacyAmFilterCategory,				// Direct Show general category
+        L"Subtitle VMR9 Filter",							// Instance data. ???????
+        &SubtitleVMR9FilterReg								// Pointer to filter information.
+    );
+
+    locFilterMapper->Release();
+
+    return hr;
+
+}
+
+STDAPI DllUnregisterServer()
+{
+   HRESULT hr;
+    IFilterMapper2* locFilterMapper = NULL;
+
+    hr = AMovieDllRegisterServer2(FALSE);
+	if (FAILED(hr)) {
+		
+        return hr;
+	}
+ 
+    hr = CoCreateInstance(CLSID_FilterMapper2, NULL, CLSCTX_INPROC_SERVER,
+            IID_IFilterMapper2, (void **)&locFilterMapper);
+
+	if (FAILED(hr)) {
+        return hr;
+	}
+	
+
+    hr = locFilterMapper->UnregisterFilter(&CLSID_LegacyAmFilterCategory, L"Vorbis Decode Filter", CLSID_SubtitleVMR9Filter);
+
+
+	//
+    locFilterMapper->Release();
+    return hr;
+
+}

Added: trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h
===================================================================
--- trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h	2004-06-01 17:32:59 UTC (rev 6796)
+++ trunk/oggdsf/src/lib/core/directshow/dsfSubtitleVMR9/subtitledllstuff.h	2004-06-01 17:58:05 UTC (rev 6797)
@@ -0,0 +1,99 @@
+//===========================================================================
+//Copyright (C) 2003, 2004 Zentaro Kavanagh
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+//- Redistributions of source code must retain the above copyright
+//  notice, this list of conditions and the following disclaimer.
+//
+//- Redistributions in binary form must reproduce the above copyright
+//  notice, this list of conditions and the following disclaimer in the
+//  documentation and/or other materials provided with the distribution.
+//
+//- Neither the name of Zentaro Kavanagh nor the names of contributors 
+//  may be used to endorse or promote products derived from this software 
+//  without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+//PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
+//CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+//EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+//PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+//PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+//LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+//NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+//SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//===========================================================================
+
+#pragma once
+#include <streams.h>
+#include <initguid.h>
+// {966D76B4-7D2F-4f01-B840-94E425D2214F}
+DEFINE_GUID(MEDIASUBTYPE_SubtitleVMR9, 
+0x966d76b4, 0x7d2f, 0x4f01, 0xb8, 0x40, 0x94, 0xe4, 0x25, 0xd2, 0x21, 0x4f);
+
+// {5709E326-01D8-49ad-9D08-F8723112D82E}
+DEFINE_GUID(CLSID_SubtitleVMR9Filter, 
+0x5709e326, 0x1d8, 0x49ad, 0x9d, 0x8, 0xf8, 0x72, 0x31, 0x12, 0xd8, 0x2e);
+
+
+const REGPINTYPES SubtitleVMR9OutputTypes = {
+    &MEDIATYPE_Video,
+	&MEDIASUBTYPE_YV12
+};
+
+const REGPINTYPES SubtitleVMR9InputTypes = {
+	&MEDIATYPE_Text,
+	&MEDIASUBTYPE_SubtitleVMR9
+};
+
+const REGFILTERPINS SubtitleVMR9PinReg[] = {
+	{
+    L"Subtitle Input",						//Name (obsoleted)
+	FALSE,								//Renders from this pin ?? Not sure about this.
+	FALSE,								//Not an output pin
+	FALSE,								//Cannot have zero instances of this pin
+	FALSE,								//Cannot have more than one instance of this pin
+	NULL,								//Connects to filter (obsoleted)
+	NULL,								//Connects to pin (obsoleted)
+	1,									//upport two media type
+	&SubtitleVMR9InputTypes				//Pointer to media type (Audio/Vorbis or Audio/Speex)
+	} ,
+
+	{
+	L"Subtitle Output",						//Name (obsoleted)
+	FALSE,								//Renders from this pin ?? Not sure about this.
+	TRUE,								//Is an output pin
+	FALSE,								//Cannot have zero instances of this pin
+	FALSE,								//Cannot have more than one instance of this pin
+	NULL,								//Connects to filter (obsoleted)
+	NULL,								//Connects to pin (obsoleted)
+	1,									//Only support one media type
+	&SubtitleVMR9OutputTypes					//Pointer to media type (Audio/PCM)
+
+	}
+};
+
+
+
+const REGFILTER2 SubtitleVMR9FilterReg = {
+		1,
+		MERIT_NORMAL,
+		2,
+        SubtitleVMR9PinReg
+		
+};
+	   
+
+struct sVorbisFormatBlock {
+	unsigned long vorbisVersion;
+	unsigned long samplesPerSec;
+	unsigned long minBitsPerSec;
+	unsigned long avgBitsPerSec;
+	unsigned long maxBitsPerSec;
+	unsigned char numChannels;
+};
\ No newline at end of file

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'cvs-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the commits mailing list