Recognizes if input is ogg or not.
[xiph.git] / oggds / OggDS.h
blob9b61c045d9ec1d7e190dc51f7160a7f9b4f498b3
1 /*******************************************************************************
2 * *
3 * This file is part of the Ogg Vorbis DirectShow filter collection *
4 * *
5 * Copyright (c) 2001, Tobias Waldvogel *
6 * All rights reserved. *
7 * *
8 * Redistribution and use in source and binary forms, with or without *
9 * modification, are permitted provided that the following conditions are met: *
10 * *
11 * - Redistributions of source code must retain the above copyright notice, *
12 * this list of conditions and the following disclaimer. *
13 * *
14 * - Redistributions in binary form must reproduce the above copyright notice, *
15 * this list of conditions and the following disclaimer in the documentation *
16 * and/or other materials provided with the distribution. *
17 * *
18 * - The names of the contributors may not be used to endorse or promote *
19 * products derived from this software without specific prior written *
20 * permission. *
21 * *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" *
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE *
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE *
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE *
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF *
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS *
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN *
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) *
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *
32 * POSSIBILITY OF SUCH DAMAGE. *
33 * *
34 *******************************************************************************/
36 // Contains all CLSIDs
38 #ifndef _OggDS_h_
39 #define _OggDS_h_
41 #include <mmreg.h>
43 // f07e245f-5a1f-4d1e-8bff-dc31d84a55ab
44 DEFINE_GUID(CLSID_OggSplitter,
45 0xf07e245f, 0x5a1f, 0x4d1e, 0x8b, 0xff, 0xdc, 0x31, 0xd8, 0x4a, 0x55, 0xab);
47 // {078C3DAA-9E58-4d42-9E1C-7C8EE79539C5}
48 DEFINE_GUID(CLSID_OggSplitPropPage,
49 0x78c3daa, 0x9e58, 0x4d42, 0x9e, 0x1c, 0x7c, 0x8e, 0xe7, 0x95, 0x39, 0xc5);
51 // 8cae96b7-85b1-4605-b23c-17ff5262b296
52 DEFINE_GUID(CLSID_OggMux,
53 0x8cae96b7, 0x85b1, 0x4605, 0xb2, 0x3c, 0x17, 0xff, 0x52, 0x62, 0xb2, 0x96);
55 // {AB97AFC3-D08E-4e2d-98E0-AEE6D4634BA4}
56 DEFINE_GUID(CLSID_OggMuxPropPage,
57 0xab97afc3, 0xd08e, 0x4e2d, 0x98, 0xe0, 0xae, 0xe6, 0xd4, 0x63, 0x4b, 0xa4);
59 // {889EF574-0656-4B52-9091-072E52BB1B80}
60 DEFINE_GUID(CLSID_VorbisEnc,
61 0x889ef574, 0x0656, 0x4b52, 0x90, 0x91, 0x07, 0x2e, 0x52, 0xbb, 0x1b, 0x80);
63 // {c5379125-fd36-4277-a7cd-fab469ef3a2f}
64 DEFINE_GUID(CLSID_VorbisEncPropPage,
65 0xc5379125, 0xfd36, 0x4277, 0xa7, 0xcd, 0xfa, 0xb4, 0x69, 0xef, 0x3a, 0x2f);
67 // 02391f44-2767-4e6a-a484-9b47b506f3a4
68 DEFINE_GUID(CLSID_VorbisDec,
69 0x02391f44, 0x2767, 0x4e6a, 0xa4, 0x84, 0x9b, 0x47, 0xb5, 0x06, 0xf3, 0xa4);
71 // {915E0060-918C-4a02-A585-1B912BA71CEE}
72 DEFINE_GUID(CLSID_VorbisDecPropPage,
73 0x915e0060, 0x918c, 0x4a02, 0xa5, 0x85, 0x1b, 0x91, 0x2b, 0xa7, 0x1c, 0xee);
75 // 77983549-ffda-4a88-b48f-b924e8d1f01c
76 DEFINE_GUID(CLSID_OggDSAboutPage,
77 0x77983549, 0xffda, 0x4a88, 0xb4, 0x8f, 0xb9, 0x24, 0xe8, 0xd1, 0xf0, 0x1c);
79 // {D2855FA9-61A7-4db0-B979-71F297C17A04}
80 DEFINE_GUID(MEDIASUBTYPE_Ogg,
81 0xd2855fa9, 0x61a7, 0x4db0, 0xb9, 0x79, 0x71, 0xf2, 0x97, 0xc1, 0x7a, 0x4);
83 // cddca2d5-6d75-4f98-840e-737bedd5c63b
84 DEFINE_GUID(MEDIASUBTYPE_Vorbis,
85 0xcddca2d5, 0x6d75, 0x4f98, 0x84, 0x0e, 0x73, 0x7b, 0xed, 0xd5, 0xc6, 0x3b);
87 // 6bddfa7e-9f22-46a9-ab5e-884eff294d9f
88 DEFINE_GUID(FORMAT_VorbisFormat,
89 0x6bddfa7e, 0x9f22, 0x46a9, 0xab, 0x5e, 0x88, 0x4e, 0xff, 0x29, 0x4d, 0x9f);
91 DEFINE_GUID(MEDIASUBTYPE_EXTPCM,
92 WAVE_FORMAT_EXTENSIBLE, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
95 typedef struct tagVORBISFORMAT
97 WORD nChannels;
98 long nSamplesPerSec;
99 long nMinBitsPerSec;
100 long nAvgBitsPerSec;
101 long nMaxBitsPerSec;
102 float fQuality;
103 } VORBISFORMAT, *PVORBISFORMAT, FAR *LPVORBISFORMAT;
105 #endif _OggDS_h_