OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / tstools / DtsEdit / src / gpac / internal / bifs_tables.h
1 /*\r
2  *                      GPAC - Multimedia Framework C SDK\r
3  *\r
4  *                      Copyright (c) Jean Le Feuvre 2000-2005\r
5  *                                      All rights reserved\r
6  *\r
7  *  This file is part of GPAC / BIFS codec sub-project\r
8  *\r
9  *  GPAC is free software; you can redistribute it and/or modify\r
10  *  it under the terms of the GNU Lesser General Public License as published by\r
11  *  the Free Software Foundation; either version 2, or (at your option)\r
12  *  any later version.\r
13  *\r
14  *  GPAC is distributed in the hope that it will be useful,\r
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
17  *  GNU Lesser General Public License for more details. \r
18  *\r
19  *  You should have received a copy of the GNU Lesser General Public\r
20  *  License along with this library; see the file COPYING.  If not, write to\r
21  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.\r
22  *\r
23  */\r
24 \r
25 \r
26 /*\r
27         DO NOT MOFIFY - File generated on GMT Thu Aug 07 11:43:26 2008\r
28 \r
29         BY MPEG4Gen for GPAC Version 0.4.5-DEV\r
30 */\r
31 \r
32 #ifndef _NDT_H\r
33 #define _NDT_H\r
34 \r
35 #include <gpac/nodes_mpeg4.h>\r
36 \r
37 \r
38 \r
39 u32 ALL_GetNodeType(const u32 *table, const u32 count, u32 NodeTag, u32 Version);\r
40 \r
41 \r
42 \r
43 /* NDT BIFS Version 1 */\r
44 \r
45 #define SFWorldNode_V1_NUMBITS          7\r
46 #define SFWorldNode_V1_Count    100\r
47 \r
48 static const u32 SFWorldNode_V1_TypeToTag[100] = {\r
49  TAG_MPEG4_Anchor, TAG_MPEG4_AnimationStream, TAG_MPEG4_Appearance, TAG_MPEG4_AudioBuffer, TAG_MPEG4_AudioClip, TAG_MPEG4_AudioDelay, TAG_MPEG4_AudioFX, TAG_MPEG4_AudioMix, TAG_MPEG4_AudioSource, TAG_MPEG4_AudioSwitch, TAG_MPEG4_Background, TAG_MPEG4_Background2D, TAG_MPEG4_Billboard, TAG_MPEG4_Bitmap, TAG_MPEG4_Box, TAG_MPEG4_Circle, TAG_MPEG4_Collision, TAG_MPEG4_Color, TAG_MPEG4_ColorInterpolator, TAG_MPEG4_CompositeTexture2D, TAG_MPEG4_CompositeTexture3D, TAG_MPEG4_Conditional, TAG_MPEG4_Cone, TAG_MPEG4_Coordinate, TAG_MPEG4_Coordinate2D, TAG_MPEG4_CoordinateInterpolator, TAG_MPEG4_CoordinateInterpolator2D, TAG_MPEG4_Curve2D, TAG_MPEG4_Cylinder, TAG_MPEG4_CylinderSensor, TAG_MPEG4_DirectionalLight, TAG_MPEG4_DiscSensor, TAG_MPEG4_ElevationGrid, TAG_MPEG4_Expression, TAG_MPEG4_Extrusion, TAG_MPEG4_Face, TAG_MPEG4_FaceDefMesh, TAG_MPEG4_FaceDefTables, TAG_MPEG4_FaceDefTransform, TAG_MPEG4_FAP, TAG_MPEG4_FDP, TAG_MPEG4_FIT, TAG_MPEG4_Fog, TAG_MPEG4_FontStyle, TAG_MPEG4_Form, TAG_MPEG4_Group, TAG_MPEG4_ImageTexture, TAG_MPEG4_IndexedFaceSet, TAG_MPEG4_IndexedFaceSet2D, TAG_MPEG4_IndexedLineSet, TAG_MPEG4_IndexedLineSet2D, TAG_MPEG4_Inline, TAG_MPEG4_LOD, TAG_MPEG4_Layer2D, TAG_MPEG4_Layer3D, TAG_MPEG4_Layout, TAG_MPEG4_LineProperties, TAG_MPEG4_ListeningPoint, TAG_MPEG4_Material, TAG_MPEG4_Material2D, TAG_MPEG4_MovieTexture, TAG_MPEG4_NavigationInfo, TAG_MPEG4_Normal, TAG_MPEG4_NormalInterpolator, TAG_MPEG4_OrderedGroup, TAG_MPEG4_OrientationInterpolator, TAG_MPEG4_PixelTexture, TAG_MPEG4_PlaneSensor, TAG_MPEG4_PlaneSensor2D, TAG_MPEG4_PointLight, TAG_MPEG4_PointSet, TAG_MPEG4_PointSet2D, TAG_MPEG4_PositionInterpolator, TAG_MPEG4_PositionInterpolator2D, TAG_MPEG4_ProximitySensor2D, TAG_MPEG4_ProximitySensor, TAG_MPEG4_QuantizationParameter, TAG_MPEG4_Rectangle, TAG_MPEG4_ScalarInterpolator, TAG_MPEG4_Script, TAG_MPEG4_Shape, TAG_MPEG4_Sound, TAG_MPEG4_Sound2D, TAG_MPEG4_Sphere, TAG_MPEG4_SphereSensor, TAG_MPEG4_SpotLight, TAG_MPEG4_Switch, TAG_MPEG4_TermCap, TAG_MPEG4_Text, TAG_MPEG4_TextureCoordinate, TAG_MPEG4_TextureTransform, TAG_MPEG4_TimeSensor, TAG_MPEG4_TouchSensor, TAG_MPEG4_Transform, TAG_MPEG4_Transform2D, TAG_MPEG4_Valuator, TAG_MPEG4_Viewpoint, TAG_MPEG4_VisibilitySensor, TAG_MPEG4_Viseme, TAG_MPEG4_WorldInfo\r
50 };\r
51 \r
52 #define SF3DNode_V1_NUMBITS             6\r
53 #define SF3DNode_V1_Count       52\r
54 \r
55 static const u32 SF3DNode_V1_TypeToTag[52] = {\r
56  TAG_MPEG4_Anchor, TAG_MPEG4_AnimationStream, TAG_MPEG4_Background, TAG_MPEG4_Background2D, TAG_MPEG4_Billboard, TAG_MPEG4_Collision, TAG_MPEG4_ColorInterpolator, TAG_MPEG4_Conditional, TAG_MPEG4_CoordinateInterpolator, TAG_MPEG4_CoordinateInterpolator2D, TAG_MPEG4_CylinderSensor, TAG_MPEG4_DirectionalLight, TAG_MPEG4_DiscSensor, TAG_MPEG4_Face, TAG_MPEG4_Fog, TAG_MPEG4_Form, TAG_MPEG4_Group, TAG_MPEG4_Inline, TAG_MPEG4_LOD, TAG_MPEG4_Layer2D, TAG_MPEG4_Layer3D, TAG_MPEG4_Layout, TAG_MPEG4_ListeningPoint, TAG_MPEG4_NavigationInfo, TAG_MPEG4_NormalInterpolator, TAG_MPEG4_OrderedGroup, TAG_MPEG4_OrientationInterpolator, TAG_MPEG4_PlaneSensor, TAG_MPEG4_PlaneSensor2D, TAG_MPEG4_PointLight, TAG_MPEG4_PositionInterpolator, TAG_MPEG4_PositionInterpolator2D, TAG_MPEG4_ProximitySensor2D, TAG_MPEG4_ProximitySensor, TAG_MPEG4_QuantizationParameter, TAG_MPEG4_ScalarInterpolator, TAG_MPEG4_Script, TAG_MPEG4_Shape, TAG_MPEG4_Sound, TAG_MPEG4_Sound2D, TAG_MPEG4_SphereSensor, TAG_MPEG4_SpotLight, TAG_MPEG4_Switch, TAG_MPEG4_TermCap, TAG_MPEG4_TimeSensor, TAG_MPEG4_TouchSensor, TAG_MPEG4_Transform, TAG_MPEG4_Transform2D, TAG_MPEG4_Valuator, TAG_MPEG4_Viewpoint, TAG_MPEG4_VisibilitySensor, TAG_MPEG4_WorldInfo\r
57 };\r
58 \r
59 #define SF2DNode_V1_NUMBITS             5\r
60 #define SF2DNode_V1_Count       31\r
61 \r
62 static const u32 SF2DNode_V1_TypeToTag[31] = {\r
63  TAG_MPEG4_Anchor, TAG_MPEG4_AnimationStream, TAG_MPEG4_Background2D, TAG_MPEG4_ColorInterpolator, TAG_MPEG4_Conditional, TAG_MPEG4_CoordinateInterpolator2D, TAG_MPEG4_DiscSensor, TAG_MPEG4_Face, TAG_MPEG4_Form, TAG_MPEG4_Group, TAG_MPEG4_Inline, TAG_MPEG4_LOD, TAG_MPEG4_Layer2D, TAG_MPEG4_Layer3D, TAG_MPEG4_Layout, TAG_MPEG4_OrderedGroup, TAG_MPEG4_PlaneSensor2D, TAG_MPEG4_PositionInterpolator2D, TAG_MPEG4_ProximitySensor2D, TAG_MPEG4_QuantizationParameter, TAG_MPEG4_ScalarInterpolator, TAG_MPEG4_Script, TAG_MPEG4_Shape, TAG_MPEG4_Sound2D, TAG_MPEG4_Switch, TAG_MPEG4_TermCap, TAG_MPEG4_TimeSensor, TAG_MPEG4_TouchSensor, TAG_MPEG4_Transform2D, TAG_MPEG4_Valuator, TAG_MPEG4_WorldInfo\r
64 };\r
65 \r
66 #define SFStreamingNode_V1_NUMBITS              3\r
67 #define SFStreamingNode_V1_Count        5\r
68 \r
69 static const u32 SFStreamingNode_V1_TypeToTag[5] = {\r
70  TAG_MPEG4_AnimationStream, TAG_MPEG4_AudioClip, TAG_MPEG4_AudioSource, TAG_MPEG4_Inline, TAG_MPEG4_MovieTexture\r
71 };\r
72 \r
73 #define SFAppearanceNode_V1_NUMBITS             1\r
74 #define SFAppearanceNode_V1_Count       1\r
75 \r
76 static const u32 SFAppearanceNode_V1_TypeToTag[1] = {\r
77  TAG_MPEG4_Appearance\r
78 };\r
79 \r
80 #define SFAudioNode_V1_NUMBITS          3\r
81 #define SFAudioNode_V1_Count    7\r
82 \r
83 static const u32 SFAudioNode_V1_TypeToTag[7] = {\r
84  TAG_MPEG4_AudioBuffer, TAG_MPEG4_AudioClip, TAG_MPEG4_AudioDelay, TAG_MPEG4_AudioFX, TAG_MPEG4_AudioMix, TAG_MPEG4_AudioSource, TAG_MPEG4_AudioSwitch\r
85 };\r
86 \r
87 #define SFBackground3DNode_V1_NUMBITS           1\r
88 #define SFBackground3DNode_V1_Count     1\r
89 \r
90 static const u32 SFBackground3DNode_V1_TypeToTag[1] = {\r
91  TAG_MPEG4_Background\r
92 };\r
93 \r
94 #define SFBackground2DNode_V1_NUMBITS           1\r
95 #define SFBackground2DNode_V1_Count     1\r
96 \r
97 static const u32 SFBackground2DNode_V1_TypeToTag[1] = {\r
98  TAG_MPEG4_Background2D\r
99 };\r
100 \r
101 #define SFGeometryNode_V1_NUMBITS               5\r
102 #define SFGeometryNode_V1_Count 17\r
103 \r
104 static const u32 SFGeometryNode_V1_TypeToTag[17] = {\r
105  TAG_MPEG4_Bitmap, TAG_MPEG4_Box, TAG_MPEG4_Circle, TAG_MPEG4_Cone, TAG_MPEG4_Curve2D, TAG_MPEG4_Cylinder, TAG_MPEG4_ElevationGrid, TAG_MPEG4_Extrusion, TAG_MPEG4_IndexedFaceSet, TAG_MPEG4_IndexedFaceSet2D, TAG_MPEG4_IndexedLineSet, TAG_MPEG4_IndexedLineSet2D, TAG_MPEG4_PointSet, TAG_MPEG4_PointSet2D, TAG_MPEG4_Rectangle, TAG_MPEG4_Sphere, TAG_MPEG4_Text\r
106 };\r
107 \r
108 #define SFColorNode_V1_NUMBITS          1\r
109 #define SFColorNode_V1_Count    1\r
110 \r
111 static const u32 SFColorNode_V1_TypeToTag[1] = {\r
112  TAG_MPEG4_Color\r
113 };\r
114 \r
115 #define SFTextureNode_V1_NUMBITS                3\r
116 #define SFTextureNode_V1_Count  5\r
117 \r
118 static const u32 SFTextureNode_V1_TypeToTag[5] = {\r
119  TAG_MPEG4_CompositeTexture2D, TAG_MPEG4_CompositeTexture3D, TAG_MPEG4_ImageTexture, TAG_MPEG4_MovieTexture, TAG_MPEG4_PixelTexture\r
120 };\r
121 \r
122 #define SFCoordinateNode_V1_NUMBITS             1\r
123 #define SFCoordinateNode_V1_Count       1\r
124 \r
125 static const u32 SFCoordinateNode_V1_TypeToTag[1] = {\r
126  TAG_MPEG4_Coordinate\r
127 };\r
128 \r
129 #define SFCoordinate2DNode_V1_NUMBITS           1\r
130 #define SFCoordinate2DNode_V1_Count     1\r
131 \r
132 static const u32 SFCoordinate2DNode_V1_TypeToTag[1] = {\r
133  TAG_MPEG4_Coordinate2D\r
134 };\r
135 \r
136 #define SFExpressionNode_V1_NUMBITS             1\r
137 #define SFExpressionNode_V1_Count       1\r
138 \r
139 static const u32 SFExpressionNode_V1_TypeToTag[1] = {\r
140  TAG_MPEG4_Expression\r
141 };\r
142 \r
143 #define SFFaceDefMeshNode_V1_NUMBITS            1\r
144 #define SFFaceDefMeshNode_V1_Count      1\r
145 \r
146 static const u32 SFFaceDefMeshNode_V1_TypeToTag[1] = {\r
147  TAG_MPEG4_FaceDefMesh\r
148 };\r
149 \r
150 #define SFFaceDefTablesNode_V1_NUMBITS          1\r
151 #define SFFaceDefTablesNode_V1_Count    1\r
152 \r
153 static const u32 SFFaceDefTablesNode_V1_TypeToTag[1] = {\r
154  TAG_MPEG4_FaceDefTables\r
155 };\r
156 \r
157 #define SFFaceDefTransformNode_V1_NUMBITS               1\r
158 #define SFFaceDefTransformNode_V1_Count 1\r
159 \r
160 static const u32 SFFaceDefTransformNode_V1_TypeToTag[1] = {\r
161  TAG_MPEG4_FaceDefTransform\r
162 };\r
163 \r
164 #define SFFAPNode_V1_NUMBITS            1\r
165 #define SFFAPNode_V1_Count      1\r
166 \r
167 static const u32 SFFAPNode_V1_TypeToTag[1] = {\r
168  TAG_MPEG4_FAP\r
169 };\r
170 \r
171 #define SFFDPNode_V1_NUMBITS            1\r
172 #define SFFDPNode_V1_Count      1\r
173 \r
174 static const u32 SFFDPNode_V1_TypeToTag[1] = {\r
175  TAG_MPEG4_FDP\r
176 };\r
177 \r
178 #define SFFITNode_V1_NUMBITS            1\r
179 #define SFFITNode_V1_Count      1\r
180 \r
181 static const u32 SFFITNode_V1_TypeToTag[1] = {\r
182  TAG_MPEG4_FIT\r
183 };\r
184 \r
185 #define SFFogNode_V1_NUMBITS            1\r
186 #define SFFogNode_V1_Count      1\r
187 \r
188 static const u32 SFFogNode_V1_TypeToTag[1] = {\r
189  TAG_MPEG4_Fog\r
190 };\r
191 \r
192 #define SFFontStyleNode_V1_NUMBITS              1\r
193 #define SFFontStyleNode_V1_Count        1\r
194 \r
195 static const u32 SFFontStyleNode_V1_TypeToTag[1] = {\r
196  TAG_MPEG4_FontStyle\r
197 };\r
198 \r
199 #define SFTopNode_V1_NUMBITS            3\r
200 #define SFTopNode_V1_Count      4\r
201 \r
202 static const u32 SFTopNode_V1_TypeToTag[4] = {\r
203  TAG_MPEG4_Group, TAG_MPEG4_Layer2D, TAG_MPEG4_Layer3D, TAG_MPEG4_OrderedGroup\r
204 };\r
205 \r
206 #define SFLinePropertiesNode_V1_NUMBITS         1\r
207 #define SFLinePropertiesNode_V1_Count   1\r
208 \r
209 static const u32 SFLinePropertiesNode_V1_TypeToTag[1] = {\r
210  TAG_MPEG4_LineProperties\r
211 };\r
212 \r
213 #define SFMaterialNode_V1_NUMBITS               2\r
214 #define SFMaterialNode_V1_Count 2\r
215 \r
216 static const u32 SFMaterialNode_V1_TypeToTag[2] = {\r
217  TAG_MPEG4_Material, TAG_MPEG4_Material2D\r
218 };\r
219 \r
220 #define SFNavigationInfoNode_V1_NUMBITS         1\r
221 #define SFNavigationInfoNode_V1_Count   1\r
222 \r
223 static const u32 SFNavigationInfoNode_V1_TypeToTag[1] = {\r
224  TAG_MPEG4_NavigationInfo\r
225 };\r
226 \r
227 #define SFNormalNode_V1_NUMBITS         1\r
228 #define SFNormalNode_V1_Count   1\r
229 \r
230 static const u32 SFNormalNode_V1_TypeToTag[1] = {\r
231  TAG_MPEG4_Normal\r
232 };\r
233 \r
234 #define SFTextureCoordinateNode_V1_NUMBITS              1\r
235 #define SFTextureCoordinateNode_V1_Count        1\r
236 \r
237 static const u32 SFTextureCoordinateNode_V1_TypeToTag[1] = {\r
238  TAG_MPEG4_TextureCoordinate\r
239 };\r
240 \r
241 #define SFTextureTransformNode_V1_NUMBITS               1\r
242 #define SFTextureTransformNode_V1_Count 1\r
243 \r
244 static const u32 SFTextureTransformNode_V1_TypeToTag[1] = {\r
245  TAG_MPEG4_TextureTransform\r
246 };\r
247 \r
248 #define SFViewpointNode_V1_NUMBITS              1\r
249 #define SFViewpointNode_V1_Count        1\r
250 \r
251 static const u32 SFViewpointNode_V1_TypeToTag[1] = {\r
252  TAG_MPEG4_Viewpoint\r
253 };\r
254 \r
255 #define SFVisemeNode_V1_NUMBITS         1\r
256 #define SFVisemeNode_V1_Count   1\r
257 \r
258 static const u32 SFVisemeNode_V1_TypeToTag[1] = {\r
259  TAG_MPEG4_Viseme\r
260 };\r
261 \r
262 \r
263 u32 NDT_V1_GetNumBits(u32 NDT_Tag);\r
264 u32 NDT_V1_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
265 u32 NDT_V1_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
266 \r
267 \r
268 \r
269 \r
270 /* NDT BIFS Version 2 */\r
271 \r
272 #define SFWorldNode_V2_NUMBITS          4\r
273 #define SFWorldNode_V2_Count    12\r
274 \r
275 static const u32 SFWorldNode_V2_TypeToTag[12] = {\r
276  TAG_MPEG4_AcousticMaterial, TAG_MPEG4_AcousticScene, TAG_MPEG4_ApplicationWindow, TAG_MPEG4_BAP, TAG_MPEG4_BDP, TAG_MPEG4_Body, TAG_MPEG4_BodyDefTable, TAG_MPEG4_BodySegmentConnectionHint, TAG_MPEG4_DirectiveSound, TAG_MPEG4_Hierarchical3DMesh, TAG_MPEG4_MaterialKey, TAG_MPEG4_PerceptualParameters\r
277 };\r
278 \r
279 #define SF3DNode_V2_NUMBITS             3\r
280 #define SF3DNode_V2_Count       3\r
281 \r
282 static const u32 SF3DNode_V2_TypeToTag[3] = {\r
283  TAG_MPEG4_AcousticScene, TAG_MPEG4_Body, TAG_MPEG4_DirectiveSound\r
284 };\r
285 \r
286 #define SF2DNode_V2_NUMBITS             2\r
287 #define SF2DNode_V2_Count       2\r
288 \r
289 static const u32 SF2DNode_V2_TypeToTag[2] = {\r
290  TAG_MPEG4_ApplicationWindow, TAG_MPEG4_Body\r
291 };\r
292 \r
293 #define SFGeometryNode_V2_NUMBITS               2\r
294 #define SFGeometryNode_V2_Count 1\r
295 \r
296 static const u32 SFGeometryNode_V2_TypeToTag[1] = {\r
297  TAG_MPEG4_Hierarchical3DMesh\r
298 };\r
299 \r
300 #define SFMaterialNode_V2_NUMBITS               2\r
301 #define SFMaterialNode_V2_Count 2\r
302 \r
303 static const u32 SFMaterialNode_V2_TypeToTag[2] = {\r
304  TAG_MPEG4_AcousticMaterial, TAG_MPEG4_MaterialKey\r
305 };\r
306 \r
307 #define SFBAPNode_V2_NUMBITS            2\r
308 #define SFBAPNode_V2_Count      1\r
309 \r
310 static const u32 SFBAPNode_V2_TypeToTag[1] = {\r
311  TAG_MPEG4_BAP\r
312 };\r
313 \r
314 #define SFBDPNode_V2_NUMBITS            2\r
315 #define SFBDPNode_V2_Count      1\r
316 \r
317 static const u32 SFBDPNode_V2_TypeToTag[1] = {\r
318  TAG_MPEG4_BDP\r
319 };\r
320 \r
321 #define SFBodyDefTableNode_V2_NUMBITS           2\r
322 #define SFBodyDefTableNode_V2_Count     1\r
323 \r
324 static const u32 SFBodyDefTableNode_V2_TypeToTag[1] = {\r
325  TAG_MPEG4_BodyDefTable\r
326 };\r
327 \r
328 #define SFBodySegmentConnectionHintNode_V2_NUMBITS              2\r
329 #define SFBodySegmentConnectionHintNode_V2_Count        1\r
330 \r
331 static const u32 SFBodySegmentConnectionHintNode_V2_TypeToTag[1] = {\r
332  TAG_MPEG4_BodySegmentConnectionHint\r
333 };\r
334 \r
335 #define SFPerceptualParameterNode_V2_NUMBITS            2\r
336 #define SFPerceptualParameterNode_V2_Count      1\r
337 \r
338 static const u32 SFPerceptualParameterNode_V2_TypeToTag[1] = {\r
339  TAG_MPEG4_PerceptualParameters\r
340 };\r
341 \r
342 \r
343 u32 NDT_V2_GetNumBits(u32 NDT_Tag);\r
344 u32 NDT_V2_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
345 u32 NDT_V2_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
346 \r
347 \r
348 \r
349 \r
350 /* NDT BIFS Version 3 */\r
351 \r
352 #define SFWorldNode_V3_NUMBITS          2\r
353 #define SFWorldNode_V3_Count    3\r
354 \r
355 static const u32 SFWorldNode_V3_TypeToTag[3] = {\r
356  TAG_MPEG4_TemporalTransform, TAG_MPEG4_TemporalGroup, TAG_MPEG4_ServerCommand\r
357 };\r
358 \r
359 #define SF3DNode_V3_NUMBITS             2\r
360 #define SF3DNode_V3_Count       3\r
361 \r
362 static const u32 SF3DNode_V3_TypeToTag[3] = {\r
363  TAG_MPEG4_TemporalTransform, TAG_MPEG4_TemporalGroup, TAG_MPEG4_ServerCommand\r
364 };\r
365 \r
366 #define SF2DNode_V3_NUMBITS             2\r
367 #define SF2DNode_V3_Count       3\r
368 \r
369 static const u32 SF2DNode_V3_TypeToTag[3] = {\r
370  TAG_MPEG4_TemporalTransform, TAG_MPEG4_TemporalGroup, TAG_MPEG4_ServerCommand\r
371 };\r
372 \r
373 #define SFTemporalNode_V3_NUMBITS               2\r
374 #define SFTemporalNode_V3_Count 2\r
375 \r
376 static const u32 SFTemporalNode_V3_TypeToTag[2] = {\r
377  TAG_MPEG4_TemporalTransform, TAG_MPEG4_TemporalGroup\r
378 };\r
379 \r
380 \r
381 u32 NDT_V3_GetNumBits(u32 NDT_Tag);\r
382 u32 NDT_V3_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
383 u32 NDT_V3_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
384 \r
385 \r
386 \r
387 \r
388 /* NDT BIFS Version 4 */\r
389 \r
390 #define SFWorldNode_V4_NUMBITS          3\r
391 #define SFWorldNode_V4_Count    5\r
392 \r
393 static const u32 SFWorldNode_V4_TypeToTag[5] = {\r
394  TAG_MPEG4_InputSensor, TAG_MPEG4_MatteTexture, TAG_MPEG4_MediaBuffer, TAG_MPEG4_MediaControl, TAG_MPEG4_MediaSensor\r
395 };\r
396 \r
397 #define SF3DNode_V4_NUMBITS             3\r
398 #define SF3DNode_V4_Count       5\r
399 \r
400 static const u32 SF3DNode_V4_TypeToTag[5] = {\r
401  TAG_MPEG4_InputSensor, TAG_MPEG4_MatteTexture, TAG_MPEG4_MediaBuffer, TAG_MPEG4_MediaControl, TAG_MPEG4_MediaSensor\r
402 };\r
403 \r
404 #define SF2DNode_V4_NUMBITS             3\r
405 #define SF2DNode_V4_Count       5\r
406 \r
407 static const u32 SF2DNode_V4_TypeToTag[5] = {\r
408  TAG_MPEG4_InputSensor, TAG_MPEG4_MatteTexture, TAG_MPEG4_MediaBuffer, TAG_MPEG4_MediaControl, TAG_MPEG4_MediaSensor\r
409 };\r
410 \r
411 #define SFTextureNode_V4_NUMBITS                1\r
412 #define SFTextureNode_V4_Count  1\r
413 \r
414 static const u32 SFTextureNode_V4_TypeToTag[1] = {\r
415  TAG_MPEG4_MatteTexture\r
416 };\r
417 \r
418 \r
419 u32 NDT_V4_GetNumBits(u32 NDT_Tag);\r
420 u32 NDT_V4_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
421 u32 NDT_V4_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
422 \r
423 \r
424 \r
425 \r
426 /* NDT BIFS Version 5 */\r
427 \r
428 #define SFWorldNode_V5_NUMBITS          6\r
429 #define SFWorldNode_V5_Count    39\r
430 \r
431 static const u32 SFWorldNode_V5_TypeToTag[39] = {\r
432  TAG_MPEG4_BitWrapper, TAG_MPEG4_CoordinateInterpolator4D, TAG_MPEG4_DepthImage, TAG_MPEG4_FFD, TAG_MPEG4_Implicit, TAG_MPEG4_XXLFM_Appearance, TAG_MPEG4_XXLFM_BlendList, TAG_MPEG4_XXLFM_FrameList, TAG_MPEG4_XXLFM_LightMap, TAG_MPEG4_XXLFM_SurfaceMapList, TAG_MPEG4_XXLFM_ViewMapList, TAG_MPEG4_MeshGrid, TAG_MPEG4_NonLinearDeformer, TAG_MPEG4_NurbsCurve, TAG_MPEG4_NurbsCurve2D, TAG_MPEG4_NurbsSurface, TAG_MPEG4_OctreeImage, TAG_MPEG4_XXParticles, TAG_MPEG4_XXParticleInitBox, TAG_MPEG4_XXPlanarObstacle, TAG_MPEG4_XXPointAttractor, TAG_MPEG4_PointTexture, TAG_MPEG4_PositionAnimator, TAG_MPEG4_PositionAnimator2D, TAG_MPEG4_PositionInterpolator4D, TAG_MPEG4_ProceduralTexture, TAG_MPEG4_Quadric, TAG_MPEG4_SBBone, TAG_MPEG4_SBMuscle, TAG_MPEG4_SBSegment, TAG_MPEG4_SBSite, TAG_MPEG4_SBSkinnedModel, TAG_MPEG4_SBVCAnimation, TAG_MPEG4_ScalarAnimator, TAG_MPEG4_SimpleTexture, TAG_MPEG4_SolidRep, TAG_MPEG4_SubdivisionSurface, TAG_MPEG4_SubdivSurfaceSector, TAG_MPEG4_WaveletSubdivisionSurface\r
433 };\r
434 \r
435 #define SF3DNode_V5_NUMBITS             5\r
436 #define SF3DNode_V5_Count       17\r
437 \r
438 static const u32 SF3DNode_V5_TypeToTag[17] = {\r
439  TAG_MPEG4_BitWrapper, TAG_MPEG4_CoordinateInterpolator4D, TAG_MPEG4_DepthImage, TAG_MPEG4_FFD, TAG_MPEG4_OctreeImage, TAG_MPEG4_XXParticles, TAG_MPEG4_PositionAnimator, TAG_MPEG4_PositionAnimator2D, TAG_MPEG4_PositionInterpolator4D, TAG_MPEG4_SBBone, TAG_MPEG4_SBMuscle, TAG_MPEG4_SBSegment, TAG_MPEG4_SBSite, TAG_MPEG4_SBSkinnedModel, TAG_MPEG4_SBVCAnimation, TAG_MPEG4_ScalarAnimator, TAG_MPEG4_WaveletSubdivisionSurface\r
440 };\r
441 \r
442 #define SF2DNode_V5_NUMBITS             4\r
443 #define SF2DNode_V5_Count       9\r
444 \r
445 static const u32 SF2DNode_V5_TypeToTag[9] = {\r
446  TAG_MPEG4_BitWrapper, TAG_MPEG4_PositionAnimator2D, TAG_MPEG4_SBBone, TAG_MPEG4_SBMuscle, TAG_MPEG4_SBSegment, TAG_MPEG4_SBSite, TAG_MPEG4_SBSkinnedModel, TAG_MPEG4_SBVCAnimation, TAG_MPEG4_ScalarAnimator\r
447 };\r
448 \r
449 #define SFAppearanceNode_V5_NUMBITS             1\r
450 #define SFAppearanceNode_V5_Count       1\r
451 \r
452 static const u32 SFAppearanceNode_V5_TypeToTag[1] = {\r
453  TAG_MPEG4_XXLFM_Appearance\r
454 };\r
455 \r
456 #define SFGeometryNode_V5_NUMBITS               4\r
457 #define SFGeometryNode_V5_Count 10\r
458 \r
459 static const u32 SFGeometryNode_V5_TypeToTag[10] = {\r
460  TAG_MPEG4_BitWrapper, TAG_MPEG4_Implicit, TAG_MPEG4_MeshGrid, TAG_MPEG4_NonLinearDeformer, TAG_MPEG4_NurbsCurve, TAG_MPEG4_NurbsCurve2D, TAG_MPEG4_NurbsSurface, TAG_MPEG4_Quadric, TAG_MPEG4_SolidRep, TAG_MPEG4_SubdivisionSurface\r
461 };\r
462 \r
463 #define SFTextureNode_V5_NUMBITS                1\r
464 #define SFTextureNode_V5_Count  1\r
465 \r
466 static const u32 SFTextureNode_V5_TypeToTag[1] = {\r
467  TAG_MPEG4_ProceduralTexture\r
468 };\r
469 \r
470 #define SFDepthImageNode_V5_NUMBITS             1\r
471 #define SFDepthImageNode_V5_Count       1\r
472 \r
473 static const u32 SFDepthImageNode_V5_TypeToTag[1] = {\r
474  TAG_MPEG4_DepthImage\r
475 };\r
476 \r
477 #define SFBlendListNode_V5_NUMBITS              1\r
478 #define SFBlendListNode_V5_Count        1\r
479 \r
480 static const u32 SFBlendListNode_V5_TypeToTag[1] = {\r
481  TAG_MPEG4_XXLFM_BlendList\r
482 };\r
483 \r
484 #define SFFrameListNode_V5_NUMBITS              1\r
485 #define SFFrameListNode_V5_Count        1\r
486 \r
487 static const u32 SFFrameListNode_V5_TypeToTag[1] = {\r
488  TAG_MPEG4_XXLFM_FrameList\r
489 };\r
490 \r
491 #define SFLightMapNode_V5_NUMBITS               1\r
492 #define SFLightMapNode_V5_Count 1\r
493 \r
494 static const u32 SFLightMapNode_V5_TypeToTag[1] = {\r
495  TAG_MPEG4_XXLFM_LightMap\r
496 };\r
497 \r
498 #define SFSurfaceMapNode_V5_NUMBITS             1\r
499 #define SFSurfaceMapNode_V5_Count       1\r
500 \r
501 static const u32 SFSurfaceMapNode_V5_TypeToTag[1] = {\r
502  TAG_MPEG4_XXLFM_SurfaceMapList\r
503 };\r
504 \r
505 #define SFViewMapNode_V5_NUMBITS                1\r
506 #define SFViewMapNode_V5_Count  1\r
507 \r
508 static const u32 SFViewMapNode_V5_TypeToTag[1] = {\r
509  TAG_MPEG4_XXLFM_ViewMapList\r
510 };\r
511 \r
512 #define SFParticleInitializerNode_V5_NUMBITS            1\r
513 #define SFParticleInitializerNode_V5_Count      1\r
514 \r
515 static const u32 SFParticleInitializerNode_V5_TypeToTag[1] = {\r
516  TAG_MPEG4_XXParticleInitBox\r
517 };\r
518 \r
519 #define SFInfluenceNode_V5_NUMBITS              2\r
520 #define SFInfluenceNode_V5_Count        2\r
521 \r
522 static const u32 SFInfluenceNode_V5_TypeToTag[2] = {\r
523  TAG_MPEG4_XXPlanarObstacle, TAG_MPEG4_XXPointAttractor\r
524 };\r
525 \r
526 #define SFDepthTextureNode_V5_NUMBITS           2\r
527 #define SFDepthTextureNode_V5_Count     2\r
528 \r
529 static const u32 SFDepthTextureNode_V5_TypeToTag[2] = {\r
530  TAG_MPEG4_PointTexture, TAG_MPEG4_SimpleTexture\r
531 };\r
532 \r
533 #define SFSBBoneNode_V5_NUMBITS         1\r
534 #define SFSBBoneNode_V5_Count   1\r
535 \r
536 static const u32 SFSBBoneNode_V5_TypeToTag[1] = {\r
537  TAG_MPEG4_SBBone\r
538 };\r
539 \r
540 #define SFSBMuscleNode_V5_NUMBITS               1\r
541 #define SFSBMuscleNode_V5_Count 1\r
542 \r
543 static const u32 SFSBMuscleNode_V5_TypeToTag[1] = {\r
544  TAG_MPEG4_SBMuscle\r
545 };\r
546 \r
547 #define SFSBSegmentNode_V5_NUMBITS              1\r
548 #define SFSBSegmentNode_V5_Count        1\r
549 \r
550 static const u32 SFSBSegmentNode_V5_TypeToTag[1] = {\r
551  TAG_MPEG4_SBSegment\r
552 };\r
553 \r
554 #define SFSBSiteNode_V5_NUMBITS         1\r
555 #define SFSBSiteNode_V5_Count   1\r
556 \r
557 static const u32 SFSBSiteNode_V5_TypeToTag[1] = {\r
558  TAG_MPEG4_SBSite\r
559 };\r
560 \r
561 #define SFBaseMeshNode_V5_NUMBITS               1\r
562 #define SFBaseMeshNode_V5_Count 1\r
563 \r
564 static const u32 SFBaseMeshNode_V5_TypeToTag[1] = {\r
565  TAG_MPEG4_SubdivisionSurface\r
566 };\r
567 \r
568 #define SFSubdivSurfaceSectorNode_V5_NUMBITS            1\r
569 #define SFSubdivSurfaceSectorNode_V5_Count      1\r
570 \r
571 static const u32 SFSubdivSurfaceSectorNode_V5_TypeToTag[1] = {\r
572  TAG_MPEG4_SubdivSurfaceSector\r
573 };\r
574 \r
575 \r
576 u32 NDT_V5_GetNumBits(u32 NDT_Tag);\r
577 u32 NDT_V5_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
578 u32 NDT_V5_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
579 \r
580 \r
581 \r
582 \r
583 /* NDT BIFS Version 6 */\r
584 \r
585 #define SFWorldNode_V6_NUMBITS          4\r
586 #define SFWorldNode_V6_Count    12\r
587 \r
588 static const u32 SFWorldNode_V6_TypeToTag[12] = {\r
589  TAG_MPEG4_Clipper2D, TAG_MPEG4_ColorTransform, TAG_MPEG4_Ellipse, TAG_MPEG4_LinearGradient, TAG_MPEG4_PathLayout, TAG_MPEG4_RadialGradient, TAG_MPEG4_SynthesizedTexture, TAG_MPEG4_TransformMatrix2D, TAG_MPEG4_Viewport, TAG_MPEG4_XCurve2D, TAG_MPEG4_XFontStyle, TAG_MPEG4_XLineProperties\r
590 };\r
591 \r
592 #define SF3DNode_V6_NUMBITS             3\r
593 #define SF3DNode_V6_Count       5\r
594 \r
595 static const u32 SF3DNode_V6_TypeToTag[5] = {\r
596  TAG_MPEG4_Clipper2D, TAG_MPEG4_ColorTransform, TAG_MPEG4_PathLayout, TAG_MPEG4_TransformMatrix2D, TAG_MPEG4_Viewport\r
597 };\r
598 \r
599 #define SF2DNode_V6_NUMBITS             3\r
600 #define SF2DNode_V6_Count       5\r
601 \r
602 static const u32 SF2DNode_V6_TypeToTag[5] = {\r
603  TAG_MPEG4_Clipper2D, TAG_MPEG4_ColorTransform, TAG_MPEG4_PathLayout, TAG_MPEG4_TransformMatrix2D, TAG_MPEG4_Viewport\r
604 };\r
605 \r
606 #define SFGeometryNode_V6_NUMBITS               2\r
607 #define SFGeometryNode_V6_Count 2\r
608 \r
609 static const u32 SFGeometryNode_V6_TypeToTag[2] = {\r
610  TAG_MPEG4_Ellipse, TAG_MPEG4_XCurve2D\r
611 };\r
612 \r
613 #define SFTextureNode_V6_NUMBITS                2\r
614 #define SFTextureNode_V6_Count  3\r
615 \r
616 static const u32 SFTextureNode_V6_TypeToTag[3] = {\r
617  TAG_MPEG4_LinearGradient, TAG_MPEG4_RadialGradient, TAG_MPEG4_SynthesizedTexture\r
618 };\r
619 \r
620 #define SFFontStyleNode_V6_NUMBITS              1\r
621 #define SFFontStyleNode_V6_Count        1\r
622 \r
623 static const u32 SFFontStyleNode_V6_TypeToTag[1] = {\r
624  TAG_MPEG4_XFontStyle\r
625 };\r
626 \r
627 #define SFLinePropertiesNode_V6_NUMBITS         1\r
628 #define SFLinePropertiesNode_V6_Count   1\r
629 \r
630 static const u32 SFLinePropertiesNode_V6_TypeToTag[1] = {\r
631  TAG_MPEG4_XLineProperties\r
632 };\r
633 \r
634 #define SFTextureTransformNode_V6_NUMBITS               1\r
635 #define SFTextureTransformNode_V6_Count 1\r
636 \r
637 static const u32 SFTextureTransformNode_V6_TypeToTag[1] = {\r
638  TAG_MPEG4_TransformMatrix2D\r
639 };\r
640 \r
641 #define SFViewportNode_V6_NUMBITS               1\r
642 #define SFViewportNode_V6_Count 1\r
643 \r
644 static const u32 SFViewportNode_V6_TypeToTag[1] = {\r
645  TAG_MPEG4_Viewport\r
646 };\r
647 \r
648 \r
649 u32 NDT_V6_GetNumBits(u32 NDT_Tag);\r
650 u32 NDT_V6_GetNodeTag(u32 Context_NDT_Tag, u32 NodeType);\r
651 u32 NDT_V6_GetNodeType(u32 NDT_Tag, u32 NodeTag);\r
652 \r
653 \r
654 \r
655 u32 NDT_GetChildTable(u32 NodeTag);\r
656 \r
657 \r
658 \r
659 \r
660 #endif          /*_NDT_H*/\r
661 \r