61
|
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
|
|
22 #ifndef __DESCRIPTORS_INCLUDED__
|
|
23 #define __DESCRIPTORS_INCLUDED__
|
|
24
|
|
25 const u_int8_t MP4ODescrTag = 0x01;
|
|
26 const u_int8_t MP4IODescrTag = 0x02;
|
|
27 const u_int8_t MP4ESDescrTag = 0x03;
|
|
28 const u_int8_t MP4DecConfigDescrTag = 0x04;
|
|
29 const u_int8_t MP4DecSpecificDescrTag = 0x05;
|
|
30 const u_int8_t MP4SLConfigDescrTag = 0x06;
|
|
31 const u_int8_t MP4ContentIdDescrTag = 0x07;
|
|
32 const u_int8_t MP4SupplContentIdDescrTag = 0x08;
|
|
33 const u_int8_t MP4IPIPtrDescrTag = 0x09;
|
|
34 const u_int8_t MP4IPMPPtrDescrTag = 0x0A;
|
|
35 const u_int8_t MP4IPMPDescrTag = 0x0B;
|
|
36 const u_int8_t MP4RegistrationDescrTag = 0x0D;
|
|
37 const u_int8_t MP4ESIDIncDescrTag = 0x0E;
|
|
38 const u_int8_t MP4ESIDRefDescrTag = 0x0F;
|
|
39 const u_int8_t MP4FileIODescrTag = 0x10;
|
|
40 const u_int8_t MP4FileODescrTag = 0x11;
|
|
41 const u_int8_t MP4ExtProfileLevelDescrTag = 0x13;
|
|
42 const u_int8_t MP4ExtDescrTagsStart = 0x80;
|
|
43 const u_int8_t MP4ExtDescrTagsEnd = 0xFE;
|
|
44
|
|
45 class MP4IODescriptor : public MP4Descriptor {
|
|
46 public:
|
|
47 MP4IODescriptor();
|
|
48 void Generate();
|
|
49 protected:
|
|
50 void Mutate();
|
|
51 };
|
|
52
|
|
53 class MP4ODescriptor : public MP4Descriptor {
|
|
54 public:
|
|
55 MP4ODescriptor();
|
|
56 void Generate();
|
|
57 protected:
|
|
58 void Mutate();
|
|
59 };
|
|
60
|
|
61 class MP4ESIDIncDescriptor : public MP4Descriptor {
|
|
62 public:
|
|
63 MP4ESIDIncDescriptor();
|
|
64 };
|
|
65
|
|
66 class MP4ESIDRefDescriptor : public MP4Descriptor {
|
|
67 public:
|
|
68 MP4ESIDRefDescriptor();
|
|
69 };
|
|
70
|
|
71 class MP4ESDescriptor : public MP4Descriptor {
|
|
72 public:
|
|
73 MP4ESDescriptor();
|
|
74 protected:
|
|
75 void Mutate();
|
|
76 };
|
|
77
|
|
78 class MP4DecConfigDescriptor : public MP4Descriptor {
|
|
79 public:
|
|
80 MP4DecConfigDescriptor();
|
|
81 void Generate();
|
|
82 };
|
|
83
|
|
84 class MP4DecSpecificDescriptor : public MP4Descriptor {
|
|
85 public:
|
|
86 MP4DecSpecificDescriptor();
|
|
87 void Read(MP4File* pFile);
|
|
88 };
|
|
89
|
|
90 class MP4SLConfigDescriptor : public MP4Descriptor {
|
|
91 public:
|
|
92 MP4SLConfigDescriptor();
|
|
93 void Generate();
|
|
94 void Read(MP4File* pFile);
|
|
95 protected:
|
|
96 void Mutate();
|
|
97 };
|
|
98
|
|
99 class MP4IPIPtrDescriptor : public MP4Descriptor {
|
|
100 public:
|
|
101 MP4IPIPtrDescriptor();
|
|
102 };
|
|
103
|
|
104 class MP4ContentIdDescriptor : public MP4Descriptor {
|
|
105 public:
|
|
106 MP4ContentIdDescriptor();
|
|
107 void Read(MP4File* pFile);
|
|
108 protected:
|
|
109 void Mutate();
|
|
110 };
|
|
111
|
|
112 class MP4SupplContentIdDescriptor : public MP4Descriptor {
|
|
113 public:
|
|
114 MP4SupplContentIdDescriptor();
|
|
115 };
|
|
116
|
|
117 class MP4IPMPPtrDescriptor : public MP4Descriptor {
|
|
118 public:
|
|
119 MP4IPMPPtrDescriptor();
|
|
120 };
|
|
121
|
|
122 class MP4IPMPDescriptor : public MP4Descriptor {
|
|
123 public:
|
|
124 MP4IPMPDescriptor();
|
|
125 void Read(MP4File* pFile);
|
|
126 };
|
|
127
|
|
128 class MP4RegistrationDescriptor : public MP4Descriptor {
|
|
129 public:
|
|
130 MP4RegistrationDescriptor();
|
|
131 void Read(MP4File* pFile);
|
|
132 };
|
|
133
|
|
134 class MP4ExtProfileLevelDescriptor : public MP4Descriptor {
|
|
135 public:
|
|
136 MP4ExtProfileLevelDescriptor();
|
|
137 };
|
|
138
|
|
139 class MP4ExtensionDescriptor : public MP4Descriptor {
|
|
140 public:
|
|
141 MP4ExtensionDescriptor();
|
|
142 void Read(MP4File* pFile);
|
|
143 };
|
|
144
|
|
145 // associated values in descriptors
|
|
146
|
|
147 // ES objectTypeId
|
|
148 const u_int8_t MP4SystemsV1ObjectType = 0x01;
|
|
149 const u_int8_t MP4SystemsV2ObjectType = 0x02;
|
|
150
|
|
151 // ES streamType
|
|
152 const u_int8_t MP4ObjectDescriptionStreamType = 0x01;
|
|
153 const u_int8_t MP4ClockReferenceStreamType = 0x02;
|
|
154 const u_int8_t MP4SceneDescriptionStreamType = 0x03;
|
|
155 const u_int8_t MP4VisualStreamType = 0x04;
|
|
156 const u_int8_t MP4AudioStreamType = 0x05;
|
|
157 const u_int8_t MP4Mpeg7StreamType = 0x06;
|
|
158 const u_int8_t MP4IPMPStreamType = 0x07;
|
|
159 const u_int8_t MP4OCIStreamType = 0x08;
|
|
160 const u_int8_t MP4MPEGJStreamType = 0x09;
|
|
161 const u_int8_t MP4UserPrivateStreamType = 0x20;
|
|
162
|
|
163 #endif /* __DESCRIPTORS_INCLUDED__ */
|
|
164
|