moreuuids.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:7k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* 
  2.  * Copyright (C) 2003-2005 Gabest
  3.  * http://www.gabest.org
  4.  *
  5.  *  This Program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2, or (at your option)
  8.  *  any later version.
  9.  *   
  10.  *  This Program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13.  *  GNU General Public License for more details.
  14.  *   
  15.  *  You should have received a copy of the GNU General Public License
  16.  *  along with GNU Make; see the file COPYING.  If not, write to
  17.  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
  18.  *  http://www.gnu.org/copyleft/gpl.html
  19.  *
  20.  *  Note: This interface was defined for the matroska container format 
  21.  *  originally, but can be implemented for other formats as well.
  22.  *
  23.  */
  24. #pragma once
  25. #include "matroska/matroska.h"
  26. // 30323449-0000-0010-8000-00AA00389B71  'I420' == MEDIASUBTYPE_I420
  27. DEFINE_GUID(MEDIASUBTYPE_I420,
  28. 0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  29. #define WAVE_FORMAT_DOLBY_AC3 0x2000
  30. // {00002000-0000-0010-8000-00aa00389b71}
  31. DEFINE_GUID(MEDIASUBTYPE_WAVE_DOLBY_AC3, 
  32. WAVE_FORMAT_DOLBY_AC3, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  33. #define WAVE_FORMAT_DVD_DTS 0x2001
  34. // {00002001-0000-0010-8000-00aa00389b71}
  35. DEFINE_GUID(MEDIASUBTYPE_WAVE_DTS, 
  36. WAVE_FORMAT_DVD_DTS, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  37. // Be compatible with 3ivx
  38. #define WAVE_FORMAT_AAC 0x00FF
  39. // {000000FF-0000-0010-8000-00AA00389B71}
  40. DEFINE_GUID(MEDIASUBTYPE_AAC,
  41. WAVE_FORMAT_AAC, 0x000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  42. // ... and also compatible with nero
  43. // {4134504D-0000-0010-8000-00AA00389B71}
  44. DEFINE_GUID(MEDIASUBTYPE_MP4A,
  45. 0x4134504D, 0x000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  46. #define WAVE_FORMAT_MP3 0x0055
  47. // 00000055-0000-0010-8000-00AA00389B71
  48. DEFINE_GUID(MEDIASUBTYPE_MP3,
  49. WAVE_FORMAT_MP3, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  50. #define WAVE_FORMAT_FLAC 0xF1AC
  51. // 0000F1AC-0000-0010-8000-00AA00389B71
  52. DEFINE_GUID(MEDIASUBTYPE_FLAC,
  53. WAVE_FORMAT_FLAC, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  54. // {1541C5C0-CDDF-477d-BC0A-86F8AE7F8354}
  55. DEFINE_GUID(MEDIASUBTYPE_FLAC_FRAMED,
  56. 0x1541c5c0, 0xcddf, 0x477d, 0xbc, 0xa, 0x86, 0xf8, 0xae, 0x7f, 0x83, 0x54);
  57. #define WAVE_FORMAT_TTA1 0x77A1
  58. // {000077A1-0000-0010-8000-00AA00389B71}
  59. DEFINE_GUID(MEDIASUBTYPE_TTA1,
  60. WAVE_FORMAT_TTA1, 0x000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  61. // {DA5B82EE-6BD2-426f-BF1E-30112DA78AE1}
  62. DEFINE_GUID(MEDIASUBTYPE_SVCD_SUBPICTURE, 
  63. 0xda5b82ee, 0x6bd2, 0x426f, 0xbf, 0x1e, 0x30, 0x11, 0x2d, 0xa7, 0x8a, 0xe1);
  64. // {7B57308F-5154-4c36-B903-52FE76E184FC}
  65. DEFINE_GUID(MEDIASUBTYPE_CVD_SUBPICTURE, 
  66. 0x7b57308f, 0x5154, 0x4c36, 0xb9, 0x3, 0x52, 0xfe, 0x76, 0xe1, 0x84, 0xfc);
  67. // {0E3A2342-F6E2-4c91-BDAE-87C71EAD0D63}
  68. DEFINE_GUID(MEDIASUBTYPE_MPEG2_PVA, 
  69. 0xe3a2342, 0xf6e2, 0x4c91, 0xbd, 0xae, 0x87, 0xc7, 0x1e, 0xad, 0xd, 0x63);
  70. // {6B6D0800-9ADA-11d0-A520-00A0D10129C0}
  71. DEFINE_GUID(CLSID_NetShowSource, 
  72. 0x6b6d0800, 0x9ada, 0x11d0, 0xa5, 0x20, 0x0, 0xa0, 0xd1, 0x1, 0x29, 0xc0);
  73. // DirectShowMedia
  74. // {5E9C9EE0-2E4A-4f22-9906-7BBBB75AA2B6}
  75. DEFINE_GUID(MEDIASUBTYPE_DirectShowMedia, 
  76. 0x5e9c9ee0, 0x2e4a, 0x4f22, 0x99, 0x6, 0x7b, 0xbb, 0xb7, 0x5a, 0xa2, 0xb6);
  77. // Dirac
  78. // {A29DA00F-A22B-40ea-98DE-2F7FECADA5DE}
  79. DEFINE_GUID(MEDIASUBTYPE_Dirac, 
  80. 0xa29da00f, 0xa22b, 0x40ea, 0x98, 0xde, 0x2f, 0x7f, 0xec, 0xad, 0xa5, 0xde);
  81. // {64726376-0000-0010-8000-00AA00389B71}
  82. DEFINE_GUID(MEDIASUBTYPE_DiracVideo,
  83. 0x64726376, 0x000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  84. // {D2667A7E-4055-4244-A65F-DDDDF2B74BD7}
  85. DEFINE_GUID(FORMAT_DiracVideoInfo, 
  86. 0xd2667a7e, 0x4055, 0x4244, 0xa6, 0x5f, 0xdd, 0xdd, 0xf2, 0xb7, 0x4b, 0xd7);
  87. struct DIRACINFOHEADER
  88. {
  89.     VIDEOINFOHEADER2 hdr;
  90.     DWORD cbSequenceHeader;
  91.     DWORD dwSequenceHeader[1];
  92. };
  93. // MP4
  94. // {08E22ADA-B715-45ed-9D20-7B87750301D4}
  95. DEFINE_GUID(MEDIASUBTYPE_MP4, 
  96. 0x8e22ada, 0xb715, 0x45ed, 0x9d, 0x20, 0x7b, 0x87, 0x75, 0x3, 0x1, 0xd4);
  97. //
  98. // RealMedia
  99. //
  100. // {57428EC6-C2B2-44a2-AA9C-28F0B6A5C48E}
  101. DEFINE_GUID(MEDIASUBTYPE_RealMedia, 
  102. 0x57428ec6, 0xc2b2, 0x44a2, 0xaa, 0x9c, 0x28, 0xf0, 0xb6, 0xa5, 0xc4, 0x8e);
  103. // 30315652-0000-0010-8000-00AA00389B71
  104. DEFINE_GUID(MEDIASUBTYPE_RV10,
  105. 0x30315652, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  106. // 30325652-0000-0010-8000-00AA00389B71
  107. DEFINE_GUID(MEDIASUBTYPE_RV20,
  108. 0x30325652, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  109. // 30335652-0000-0010-8000-00AA00389B71
  110. DEFINE_GUID(MEDIASUBTYPE_RV30,
  111. 0x30335652, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  112. // 30345652-0000-0010-8000-00AA00389B71
  113. DEFINE_GUID(MEDIASUBTYPE_RV40,
  114. 0x30345652, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  115. // 31345652-0000-0010-8000-00AA00389B71
  116. DEFINE_GUID(MEDIASUBTYPE_RV41,
  117. 0x31345652, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  118. // 345f3431-0000-0010-8000-00AA00389B71
  119. DEFINE_GUID(MEDIASUBTYPE_14_4,
  120. 0x345f3431, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  121. // 385f3832-0000-0010-8000-00AA00389B71
  122. DEFINE_GUID(MEDIASUBTYPE_28_8,
  123. 0x385f3832, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  124. // 43525441-0000-0010-8000-00AA00389B71
  125. DEFINE_GUID(MEDIASUBTYPE_ATRC,
  126. 0x43525441, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  127. // 4b4f4f43-0000-0010-8000-00AA00389B71
  128. DEFINE_GUID(MEDIASUBTYPE_COOK,
  129. 0x4b4f4f43, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  130. // 54454e44-0000-0010-8000-00AA00389B71
  131. DEFINE_GUID(MEDIASUBTYPE_DNET,
  132. 0x54454e44, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  133. // 52504953-0000-0010-8000-00AA00389B71
  134. DEFINE_GUID(MEDIASUBTYPE_SIPR,
  135. 0x52504953, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  136. // 43414152-0000-0010-8000-00AA00389B71
  137. DEFINE_GUID(MEDIASUBTYPE_RAAC,
  138. 0x43414152, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  139. // 50434152-0000-0010-8000-00AA00389B71
  140. DEFINE_GUID(MEDIASUBTYPE_RACP,
  141. 0x50434152, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71);
  142. enum 
  143. {
  144. WAVE_FORMAT_14_4 = 0x2002,
  145. WAVE_FORMAT_28_8 = 0x2003,
  146. WAVE_FORMAT_ATRC = 0x0270, //WAVE_FORMAT_SONY_SCX,
  147. WAVE_FORMAT_COOK = 0x2004,
  148. WAVE_FORMAT_DNET = 0x2005,
  149. WAVE_FORMAT_RAAC = 0x2006,
  150. WAVE_FORMAT_RACP = 0x2007,
  151. WAVE_FORMAT_SIPR = 0x0130, //WAVE_FORMAT_SIPROLAB_ACEPLNET,
  152. };
  153. //
  154. // PS2
  155. //
  156. #define WAVE_FORMAT_PS2_PCM 0xF521
  157. // 0000F521-0000-0010-8000-00AA00389B71
  158. DEFINE_GUID(MEDIASUBTYPE_PS2_PCM,
  159. WAVE_FORMAT_PS2_PCM, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  160. #define WAVE_FORMAT_PS2_ADPCM 0xF522
  161. // 0000F522-0000-0010-8000-00AA00389B71
  162. DEFINE_GUID(MEDIASUBTYPE_PS2_ADPCM,
  163. WAVE_FORMAT_PS2_ADPCM, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
  164. struct WAVEFORMATEXPS2 : public WAVEFORMATEX
  165. {
  166.     DWORD dwInterleave;
  167. struct WAVEFORMATEXPS2()
  168. {
  169. memset(this, 0, sizeof(*this)); 
  170. cbSize = sizeof(WAVEFORMATEXPS2) - sizeof(WAVEFORMATEX);
  171. }
  172. };
  173. // {4F3D3D21-6D7C-4f73-AA05-E397B5EAE0AA}
  174. DEFINE_GUID(MEDIASUBTYPE_PS2_SUB, 
  175. 0x4f3d3d21, 0x6d7c, 0x4f73, 0xaa, 0x5, 0xe3, 0x97, 0xb5, 0xea, 0xe0, 0xaa);