theoradecoderdllstuff.h

Go to the documentation of this file.
00001 //===========================================================================
00002 //Copyright (C) 2003, 2004 Zentaro Kavanagh
00003 //
00004 //Redistribution and use in source and binary forms, with or without
00005 //modification, are permitted provided that the following conditions
00006 //are met:
00007 //
00008 //- Redistributions of source code must retain the above copyright
00009 //  notice, this list of conditions and the following disclaimer.
00010 //
00011 //- Redistributions in binary form must reproduce the above copyright
00012 //  notice, this list of conditions and the following disclaimer in the
00013 //  documentation and/or other materials provided with the distribution.
00014 //
00015 //- Neither the name of Zentaro Kavanagh nor the names of contributors 
00016 //  may be used to endorse or promote products derived from this software 
00017 //  without specific prior written permission.
00018 //
00019 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00020 //``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00021 //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00022 //PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE ORGANISATION OR
00023 //CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00024 //EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00025 //PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00026 //PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00027 //LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00028 //NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00029 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00030 //===========================================================================
00031 
00032 #pragma once
00033 #include <streams.h>
00034 #include <pullpin.h>
00035 #include <initguid.h>
00036 
00037 //#ifdef DSFABSTRACTOGGVIDEODECODER_EXPORTS
00038 //#pragma message("----> Exporting from Abstract Video Library...")
00039 //#define ABS_VIDEO_DEC_API __declspec(dllexport)
00040 //#else
00041 //#pragma message("<---- Importing from Abstract Video Library...")
00042 //#define ABS_VIDEO_DEC_API __declspec(dllimport)
00043 //#endif
00044 
00045 #ifdef LIBOOOGG_EXPORTS
00046 #define LIBOOOGG_API __declspec(dllexport)
00047 #else
00048 #define LIBOOOGG_API __declspec(dllimport)
00049 #endif
00050 
00051 // {05187161-5C36-4324-A734-22BF37509F2D}
00052 DEFINE_GUID(CLSID_TheoraDecodeFilter, 
00053 0x5187161, 0x5c36, 0x4324, 0xa7, 0x34, 0x22, 0xbf, 0x37, 0x50, 0x9f, 0x2d);
00054 
00055 // {D124B2B1-8968-4ae8-B288-FE16EA34B0CE}
00056 DEFINE_GUID(MEDIASUBTYPE_Theora, 
00057 0xd124b2b1, 0x8968, 0x4ae8, 0xb2, 0x88, 0xfe, 0x16, 0xea, 0x34, 0xb0, 0xce);
00058 
00059 // {A99F116C-DFFA-412c-95DE-725F99874826}
00060 DEFINE_GUID(FORMAT_Theora, 
00061 0xa99f116c, 0xdffa, 0x412c, 0x95, 0xde, 0x72, 0x5f, 0x99, 0x87, 0x48, 0x26);
00062 
00063 const REGPINTYPES TheoraDecodeOutputTypes = {
00064     &MEDIATYPE_Video,
00065         &MEDIASUBTYPE_YV12
00066 };
00067 
00068 const REGPINTYPES TheoraDecodeInputTypes = {
00069         &MEDIATYPE_Video,
00070         &MEDIASUBTYPE_Theora
00071 };
00072 const REGFILTERPINS TheoraDecodePinReg[] = {
00073         {
00074     L"Theora Input",                                            //Name (obsoleted)
00075         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00076         FALSE,                                                          //Not an output pin
00077         FALSE,                                                          //Cannot have zero instances of this pin
00078         FALSE,                                                          //Cannot have more than one instance of this pin
00079         NULL,                                                           //Connects to filter (obsoleted)
00080         NULL,                                                           //Connects to pin (obsoleted)
00081         1,                                                                      //upport two media type
00082         &TheoraDecodeInputTypes                         //Pointer to media type (Video/Theora)
00083         } ,
00084 
00085         {
00086         L"YV12 Output",                                         //Name (obsoleted)
00087         FALSE,                                                          //Renders from this pin ?? Not sure about this.
00088         TRUE,                                                           //Is an output pin
00089         FALSE,                                                          //Cannot have zero instances of this pin
00090         FALSE,                                                          //Cannot have more than one instance of this pin
00091         NULL,                                                           //Connects to filter (obsoleted)
00092         NULL,                                                           //Connects to pin (obsoleted)
00093         1,                                                                      //Only support one media type
00094         &TheoraDecodeOutputTypes                                        //Pointer to media type (YV12)
00095 
00096         }
00097 };
00098 
00099 
00100 
00101 const REGFILTER2 TheoraDecodeFilterReg = {
00102                 1,
00103                 MERIT_NORMAL,
00104                 2,
00105         TheoraDecodePinReg
00106                 
00107 };
00108            
00109 
00110 struct sTheoraFormatBlock {
00111         unsigned long theoraVersion;
00112         unsigned long outerFrameWidth;
00113         unsigned long outerFrameHeight;
00114         unsigned long pictureWidth;
00115         unsigned long pictureHeight;
00116         unsigned long frameRateNumerator;
00117         unsigned long frameRateDenominator;
00118         unsigned long aspectNumerator;
00119         unsigned long aspectDenominator;
00120         unsigned long maxKeyframeInterval;
00121         unsigned long targetBitrate;
00122         unsigned char targetQuality;
00123         unsigned char xOffset;
00124         unsigned char yOffset;
00125         unsigned char colourSpace;
00126 };

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