2009-08-26 Chris Toshok <toshok@ximian.com>
[moon.git] / src / asf / asf-guids.h
blobbe5a9dcb993a03cd4a1cb6986b9c6a913a9b4948
1 /*
2 * asf-guids.h:
4 * Contact:
5 * Moonlight List (moonlight-list@lists.ximian.com)
7 * Copyright 2007 Novell, Inc. (http://www.novell.com)
9 * See the LICENSE file included with the distribution for details.
12 #ifndef _ASF_GUIDS_MOONLIGHT_H
13 #define _ASF_GUIDS_MOONLIGHT_H
15 struct asf_guid {
16 asf_dword a;
17 asf_word b;
18 asf_word c;
19 asf_byte d [8];
22 enum ASFTypes {
23 ASF_NONE = 0,
24 ASF_HEADER,
25 ASF_DATA,
26 ASF_INDEX,
27 ASF_SIMPLE_INDEX,
28 ASF_MEDIA_OBJECT_INDEX,
29 ASF_TIMECODE_INDEX,
31 ASF_FILE_PROPERTIES,
32 ASF_STREAM_PROPERTIES,
33 ASF_HEADER_EXTENSION,
34 ASF_CODEC_LIST,
35 ASF_SCRIPT_COMMAND,
36 ASF_MARKER,
37 ASF_BITRATE_MUTUAL_EXCLUSION,
38 ASF_ERROR_CORRECTION,
39 ASF_CONTENT_DESCRIPTION,
40 ASF_EXTENDED_CONTENT_DESCRIPTION,
41 ASF_CONTENT_BRANDING,
42 ASF_STREAM_BITRATE_PROPERTIES,
43 ASF_CONTENT_ENCRYPTION,
44 ASF_EXTENDED_CONTENT_ENCRYPTION,
45 ASF_DIGITAL_SIGNATURE,
46 ASF_PADDING,
48 ASF_EXTENDED_STREAM_PROPERTIES,
49 ASF_ADVANCED_MUTUAL_EXCLUSION,
50 ASF_GROUP_MUTUAL_EXCLUSION,
51 ASF_STREAM_PRIORITIZATION,
52 ASF_BANDWIDTH_SHARING,
53 ASF_LANGUAGE_LIST,
54 ASF_METADATA,
55 ASF_METADATA_LIBRARY,
56 ASF_INDEX_PARAMETERS,
57 ASF_MEDIA_OBJECT_INDEX_PARAMETERS,
58 ASF_TIMECODE_INDEX_PARAMETERS,
59 ASF_COMPATIBILITY,
60 ASF_ADVANCED_CONTENT_ENCRYPTION,
62 ASF_MEDIA_AUDIO,
63 ASF_MEDIA_VIDEO,
64 ASF_MEDIA_COMMAND,
65 ASF_MEDIA_JFIF,
66 ASF_MEDIA_DEGRADABLE_JPEG,
67 ASF_FILE_TRANSFER,
68 ASF_BINARY,
70 ASF_WEBSTREAM_MEDIA_SUBTYPE,
71 ASF_WEBSTREAM_FORMAT,
73 ASF_NO_ERROR_CORRECTION,
74 ASF_AUDIO_STREAD,
76 ASF_RESERVED1,
78 ASF_DRM,
80 ASF_RESERVED2,
82 ASF_RESERVED3,
84 ASF_RESERVED4,
86 ASF_MUTEX_LANGUAGE,
87 ASF_MUTEX_BITRATE,
88 ASF_MUTEX_UNKNOWN,
90 ASF_BANDWIDTH_SHARING_EXCLUSIVE,
91 ASF_BANDWIDTH_SHARING_PARTIAL,
93 ASF_PAYLOAD_TIMECODE,
94 ASF_PAYLOAD_FILENAME,
95 ASF_PAYLOAD_CONTENT_TYPE,
96 ASF_PAYLOAD_PIXEL_ASPECT_RATIO,
97 ASF_PAYLOAD_SAMPLE_DURATION,
98 ASF_PAYLOAD_ENCRYPTION_SAMPLE_ID,
100 ASF_LAST_TYPE
104 extern asf_guid asf_guids_empty;
106 /* Top level object guids */
108 extern asf_guid asf_guids_header;
109 extern asf_guid asf_guids_data;
110 extern asf_guid asf_guids_index;
111 extern asf_guid asf_guids_simple_index;
112 extern asf_guid asf_guids_media_object_index;
113 extern asf_guid asf_guids_timecode_index;
115 /* Header object guids */
116 extern asf_guid asf_guids_file_properties;
117 extern asf_guid asf_guids_stream_properties;
118 extern asf_guid asf_guids_header_extension;
119 extern asf_guid asf_guids_codec_list;
120 extern asf_guid asf_guids_script_command;
121 extern asf_guid asf_guids_marker;
122 extern asf_guid asf_guids_bitrate_mutual_exclusion;
123 extern asf_guid asf_guids_error_correction;
124 extern asf_guid asf_guids_content_description;
125 extern asf_guid asf_guids_extended_content_description;
126 extern asf_guid asf_guids_content_branding;
127 extern asf_guid asf_guids_stream_bitrate_properties;
128 extern asf_guid asf_guids_content_encryption;
129 extern asf_guid asf_guids_extended_content_encryption;
130 extern asf_guid asf_guids_digital_signature;
131 extern asf_guid asf_guids_padding;
133 /* Header extension object guids */
134 extern asf_guid asf_guids_extended_stream_properties;
135 extern asf_guid asf_guids_advanced_mutual_exclusion;
136 extern asf_guid asf_guids_group_mutual_exclusion;
137 extern asf_guid asf_guids_stream_prioritization;
138 extern asf_guid asf_guids_bandwidth_sharing;
139 extern asf_guid asf_guids_language_list;
140 extern asf_guid asf_guids_metadata;
141 extern asf_guid asf_guids_metadata_library;
142 extern asf_guid asf_guids_index_parameters;
143 extern asf_guid asf_guids_media_object_index_parameters;
144 extern asf_guid asf_guids_timecode_index_parameters;
145 extern asf_guid asf_guids_compatibility;
146 extern asf_guid asf_guids_advanced_content_encryption;
148 /* Stream properties object, stream type guids */
149 extern asf_guid asf_guids_media_audio;
150 extern asf_guid asf_guids_media_video;
151 extern asf_guid asf_guids_media_command;
152 extern asf_guid asf_guids_media_jfif;
153 extern asf_guid asf_guids_media_degradable_jpeg;
154 extern asf_guid asf_guids_file_transfer;
155 extern asf_guid asf_guids_binary;
157 /* Web stream type-specific data guids */
158 extern asf_guid asf_guids_webstream_media_subtype;
159 extern asf_guid asf_guids_webstream_format;
161 /* Stream properties, object error correction type guids */
162 extern asf_guid asf_guids_no_error_correction;
163 extern asf_guid asf_guids_audio_stread;
165 /* Header extension object guids */
166 extern asf_guid asf_guids_reserved1;
168 /* Advanced content encryption object system id guids */
169 extern asf_guid asf_guids_drm;
170 // drm = Content_Encryption_System_Windows_Media_DRM_Network_Devides in the spec
171 // Figured it was somewhat long, so it got abbreviated
173 /* Codec list object guids */
174 extern asf_guid asf_guids_reserved2;
176 /* Script command object guids */
177 extern asf_guid asf_guids_reserved3;
179 /* Marker object guids */
180 extern asf_guid asf_guids_reserved4;
182 /* Mutual exclusion object exclusion type guids */
183 extern asf_guid asf_guids_mutex_language;
184 extern asf_guid asf_guids_mutex_bitrate;
185 extern asf_guid asf_guids_mutex_unknown;
187 /* Bandwidth sharing object guids */
188 extern asf_guid asf_guids_bandwidth_sharing_exclusive;
189 extern asf_guid asf_guids_bandwidth_sharing_partial;
191 /* Standard payload extension system guids */
192 extern asf_guid asf_guids_payload_timecode;
193 extern asf_guid asf_guids_payload_filename;
194 extern asf_guid asf_guids_payload_content_type;
195 extern asf_guid asf_guids_payload_pixel_aspect_ratio;
196 extern asf_guid asf_guids_payload_sample_duration;
197 extern asf_guid asf_guids_payload_encryption_sample_id;
199 G_BEGIN_DECLS
200 /* Misc funtions */
201 bool asf_guid_compare (const asf_guid* a, const asf_guid* b);
202 ASFTypes asf_get_guid_type (const asf_guid* guid);
203 const char* asf_guid_get_name (const asf_guid* guid);
204 const char* asf_type_get_name (ASFTypes type);
205 char* asf_guid_tostring (const asf_guid* obj);
206 bool asf_guid_validate (const asf_guid* guid_actual, const asf_guid* guid_expected, ASFParser* parser);
207 G_END_DECLS
209 #endif