descriptors.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * The contents of this file are subject to the Mozilla Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/MPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is MPEG4IP.
  13.  * 
  14.  * The Initial Developer of the Original Code is Cisco Systems Inc.
  15.  * Portions created by Cisco Systems Inc. are
  16.  * Copyright (C) Cisco Systems Inc. 2001.  All Rights Reserved.
  17.  * 
  18.  * Contributor(s): 
  19.  * Dave Mackie dmackie@cisco.com
  20.  */
  21. #ifndef __DESCRIPTORS_INCLUDED__
  22. #define __DESCRIPTORS_INCLUDED__
  23. const u_int8_t MP4ODescrTag = 0x01; 
  24. const u_int8_t MP4IODescrTag = 0x02; 
  25. const u_int8_t MP4ESDescrTag = 0x03; 
  26. const u_int8_t MP4DecConfigDescrTag = 0x04; 
  27. const u_int8_t MP4DecSpecificDescrTag = 0x05; 
  28. const u_int8_t MP4SLConfigDescrTag   = 0x06; 
  29. const u_int8_t MP4ContentIdDescrTag   = 0x07; 
  30. const u_int8_t MP4SupplContentIdDescrTag  = 0x08; 
  31. const u_int8_t MP4IPIPtrDescrTag   = 0x09; 
  32. const u_int8_t MP4IPMPPtrDescrTag   = 0x0A; 
  33. const u_int8_t MP4IPMPDescrTag   = 0x0B; 
  34. const u_int8_t MP4RegistrationDescrTag   = 0x0D; 
  35. const u_int8_t MP4ESIDIncDescrTag = 0x0E; 
  36. const u_int8_t MP4ESIDRefDescrTag = 0x0F; 
  37. const u_int8_t MP4FileIODescrTag = 0x10; 
  38. const u_int8_t MP4FileODescrTag = 0x11; 
  39. const u_int8_t MP4ExtProfileLevelDescrTag  = 0x13; 
  40. const u_int8_t MP4ExtDescrTagsStart = 0x80; 
  41. const u_int8_t MP4ExtDescrTagsEnd = 0xFE; 
  42. class MP4IODescriptor : public MP4Descriptor {
  43. public:
  44. MP4IODescriptor();
  45. void Generate();
  46. protected:
  47. void Mutate();
  48. };
  49. class MP4ODescriptor : public MP4Descriptor {
  50. public:
  51. MP4ODescriptor();
  52. void Generate();
  53. protected:
  54. void Mutate();
  55. };
  56. class MP4ESIDIncDescriptor : public MP4Descriptor {
  57. public:
  58. MP4ESIDIncDescriptor();
  59. };
  60. class MP4ESIDRefDescriptor : public MP4Descriptor {
  61. public:
  62. MP4ESIDRefDescriptor();
  63. };
  64. class MP4ESDescriptor : public MP4Descriptor {
  65. public:
  66. MP4ESDescriptor();
  67. protected:
  68. void Mutate();
  69. };
  70. class MP4DecConfigDescriptor : public MP4Descriptor {
  71. public:
  72. MP4DecConfigDescriptor();
  73. void Generate();
  74. };
  75. class MP4DecSpecificDescriptor : public MP4Descriptor {
  76. public:
  77. MP4DecSpecificDescriptor();
  78. void Read(MP4File* pFile);
  79. };
  80. class MP4SLConfigDescriptor : public MP4Descriptor {
  81. public:
  82. MP4SLConfigDescriptor();
  83. void Generate();
  84. void Read(MP4File* pFile);
  85. protected:
  86. void Mutate();
  87. };
  88. class MP4IPIPtrDescriptor : public MP4Descriptor {
  89. public:
  90. MP4IPIPtrDescriptor();
  91. };
  92. class MP4ContentIdDescriptor : public MP4Descriptor {
  93. public:
  94. MP4ContentIdDescriptor();
  95. void Read(MP4File* pFile);
  96. protected:
  97. void Mutate();
  98. };
  99. class MP4SupplContentIdDescriptor : public MP4Descriptor {
  100. public:
  101. MP4SupplContentIdDescriptor();
  102. };
  103. class MP4IPMPPtrDescriptor : public MP4Descriptor {
  104. public:
  105. MP4IPMPPtrDescriptor();
  106. };
  107. class MP4IPMPDescriptor : public MP4Descriptor {
  108. public:
  109. MP4IPMPDescriptor();
  110. void Read(MP4File* pFile);
  111. };
  112. class MP4RegistrationDescriptor : public MP4Descriptor {
  113. public:
  114. MP4RegistrationDescriptor();
  115. void Read(MP4File* pFile);
  116. };
  117. class MP4ExtProfileLevelDescriptor : public MP4Descriptor {
  118. public:
  119. MP4ExtProfileLevelDescriptor();
  120. };
  121. class MP4ExtensionDescriptor : public MP4Descriptor {
  122. public:
  123. MP4ExtensionDescriptor();
  124. void Read(MP4File* pFile);
  125. };
  126. // associated values in descriptors
  127. // ES objectTypeId
  128. const u_int8_t MP4SystemsV1ObjectType = 0x01; 
  129. const u_int8_t MP4SystemsV2ObjectType = 0x02; 
  130. // ES streamType
  131. const u_int8_t MP4ObjectDescriptionStreamType = 0x01; 
  132. const u_int8_t MP4ClockReferenceStreamType = 0x02; 
  133. const u_int8_t MP4SceneDescriptionStreamType = 0x03; 
  134. const u_int8_t MP4VisualStreamType = 0x04; 
  135. const u_int8_t MP4AudioStreamType = 0x05; 
  136. const u_int8_t MP4Mpeg7StreamType = 0x06; 
  137. const u_int8_t MP4IPMPStreamType = 0x07; 
  138. const u_int8_t MP4OCIStreamType = 0x08; 
  139. const u_int8_t MP4MPEGJStreamType = 0x09; 
  140. const u_int8_t MP4UserPrivateStreamType = 0x20; 
  141. #endif /* __DESCRIPTORS_INCLUDED__ */