cmmldecoderdllstuff.h

Go to the documentation of this file.
00001 //===========================================================================
00002 //Copyright (C) 2003, 2004 Zentaro Kavanagh
00003 //
00004 //Copyright (C) 2003, 2004 Commonwealth Scientific and Industrial Research
00005 //   Organisation (CSIRO) Australia
00006 //
00007 //Redistribution and use in source and binary forms, with or without
00008 //modification, are permitted provided that the following conditions
00009 //are met:
00010 //
00011 //- Redistributions of source code must retain the above copyright
00012 //  notice, this list of conditions and the following disclaimer.
00013 //
00014 //- Redistributions in binary form must reproduce the above copyright
00015 //  notice, this list of conditions and the following disclaimer in the
00016 //  documentation and/or other materials provided with the distribution.
00017 //
00018 //- Neither the name of Zentaro Kavanagh nor the names of contributors 
00019 //  may be used to endorse or promote products derived from this software 
00020 //  without specific prior written permission.
00021 //
00022 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00023 //``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00024 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00025 //PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00026 //CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00027 //EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00028 //PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00029 //PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00030 //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00031 //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00032 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033 //===========================================================================
00034 
00035 #pragma once
00036 #include <streams.h>
00037 #include <pullpin.h>
00038 #include <initguid.h>
00039 
00040 #include "CMMLDecoderIIDs.h"
00041 // {966D76B4-7D2F-4f01-B840-94E425D2214F}
00042 DEFINE_GUID(MEDIASUBTYPE_SubtitleVMR9, 
00043 0x966d76b4, 0x7d2f, 0x4f01, 0xb8, 0x40, 0x94, 0xe4, 0x25, 0xd2, 0x21, 0x4f);
00044 
00045 // {53696C76-6961-40b2-B136-436F6E726164}
00046 DEFINE_GUID(FORMAT_CMML, 
00047 0x53696c76, 0x6961, 0x40b2, 0xb1, 0x36, 0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64);
00048 
00049 
00050 // {5A656E74-6172-6F26-B79C-D6416E647282}
00051 DEFINE_GUID(MEDIASUBTYPE_CMML, 
00052 0x5a656e74, 0x6172, 0x6f26, 0xb7, 0x9c, 0xd6, 0x41, 0x6e, 0x64, 0x72, 0x82);
00053 
00054 // {BF1121D1-8739-45e1-BCD8-90B828F643AB}
00055 DEFINE_GUID(CLSID_CMMLDecodeFilter, 
00056 0xbf1121d1, 0x8739, 0x45e1, 0xbc, 0xd8, 0x90, 0xb8, 0x28, 0xf6, 0x43, 0xab);
00057 
00058 //This structure defines the type of input we accept on the input pin... Stream/Annodex
00059 
00060 const REGPINTYPES CMMLDecodeOutputTypes = {
00061     &MEDIATYPE_Text,
00062         &MEDIASUBTYPE_SubtitleVMR9
00063 };
00064 
00065 const REGPINTYPES CMMLDecodeInputTypes = {
00066         &MEDIATYPE_Text,
00067         &MEDIASUBTYPE_CMML
00068 };
00069 const REGFILTERPINS CMMLDecodePinReg[] = {
00070         {
00071     L"CMML Input",                                              //Name (obsoleted)
00072         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00073         FALSE,                                                          //Not an output pin
00074         FALSE,                                                          //Cannot have zero instances of this pin
00075         FALSE,                                                          //Cannot have more than one instance of this pin
00076         NULL,                                                           //Connects to filter (obsoleted)
00077         NULL,                                                           //Connects to pin (obsoleted)
00078         1,                                                                      //upport two media type
00079         &CMMLDecodeInputTypes                           //Pointer to media type (Audio/Vorbis or Audio/Speex)
00080         } ,
00081 
00082         {
00083         L"Subtitle VMR9 Output",                        //Name (obsoleted)
00084         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00085         TRUE,                                                           //Is an output pin
00086         FALSE,                                                          //Cannot have zero instances of this pin
00087         FALSE,                                                          //Cannot have more than one instance of this pin
00088         NULL,                                                           //Connects to filter (obsoleted)
00089         NULL,                                                           //Connects to pin (obsoleted)
00090         1,                                                                      //Only support one media type
00091         &CMMLDecodeOutputTypes                          //Pointer to media type (Audio/PCM)
00092 
00093         }
00094 };
00095 
00096 
00097 
00098 const REGFILTER2 CMMLDecodeFilterReg = {
00099                 1,
00100                 MERIT_PREFERRED + 2,
00101                 2,
00102         CMMLDecodePinReg
00103                 
00104 };
00105            
00106 
00107 struct sCMMLFormatBlock {
00108         __int64 granuleNumerator;
00109         __int64 granuleDenominator;
00110 };

Generated on Tue Feb 15 14:54:11 2005 for oggdsf by  doxygen 1.3.9