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 
00046 //DEFINE_GUID(FORMAT_CMML, 
00047 //0x53696c76, 0x6961, 0x40b2, 0xb1, 0x36, 0x43, 0x6f, 0x6e, 0x72, 0x61, 0x64);
00048 //
00049 //
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 // {60891713-C24F-4767-B6C9-6CA05B3338FC}
00059 DEFINE_GUID(MEDIATYPE_OggPacketStream, 
00060 0x60891713, 0xc24f, 0x4767, 0xb6, 0xc9, 0x6c, 0xa0, 0x5b, 0x33, 0x38, 0xfc);
00061 
00062 // {95388704-162C-42a9-8149-C3577C12AAF9}
00063 DEFINE_GUID(FORMAT_OggIdentHeader, 
00064 0x95388704, 0x162c, 0x42a9, 0x81, 0x49, 0xc3, 0x57, 0x7c, 0x12, 0xaa, 0xf9);
00065 
00066 // {43F0F818-10B0-4c86-B9F1-F6B6E2D33462}
00067 DEFINE_GUID(IID_IOggDecoder, 
00068 0x43f0f818, 0x10b0, 0x4c86, 0xb9, 0xf1, 0xf6, 0xb6, 0xe2, 0xd3, 0x34, 0x62);
00069 
00070 //This structure defines the type of input we accept on the input pin... Stream/Annodex
00071 
00072 const REGPINTYPES CMMLDecodeOutputTypes = {
00073     &MEDIATYPE_Text,
00074         &MEDIASUBTYPE_SubtitleVMR9
00075 };
00076 
00077 const REGPINTYPES CMMLDecodeInputTypes = {
00078         &MEDIATYPE_OggPacketStream,
00079         &MEDIASUBTYPE_None
00080 };
00081 const REGFILTERPINS CMMLDecodePinReg[] = {
00082         {
00083     L"CMML Input",                                              //Name (obsoleted)
00084         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00085         FALSE,                                                          //Not 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,                                                                      //upport two media type
00091         &CMMLDecodeInputTypes                           //Pointer to media type (Audio/Vorbis or Audio/Speex)
00092         } ,
00093 
00094         {
00095         L"Subtitle VMR9 Output",                        //Name (obsoleted)
00096         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00097         TRUE,                                                           //Is an output pin
00098         FALSE,                                                          //Cannot have zero instances of this pin
00099         FALSE,                                                          //Cannot have more than one instance of this pin
00100         NULL,                                                           //Connects to filter (obsoleted)
00101         NULL,                                                           //Connects to pin (obsoleted)
00102         1,                                                                      //Only support one media type
00103         &CMMLDecodeOutputTypes                          //Pointer to media type (Audio/PCM)
00104 
00105         }
00106 };
00107 
00108 
00109 
00110 const REGFILTER2 CMMLDecodeFilterReg = {
00111                 1,
00112                 MERIT_PREFERRED + 2,
00113                 2,
00114         CMMLDecodePinReg
00115                 
00116 };
00117            
00118 
00119 struct sCMMLFormatBlock {
00120         __int64 granuleNumerator;
00121         __int64 granuleDenominator;
00122         unsigned short granuleSplitBits;
00123 };

Generated on Thu Feb 16 23:48:00 2006 for oggdsf by  doxygen 1.3.9