/src/vlc/modules/demux/asf/libasf_guid.h
Line | Count | Source |
1 | | /***************************************************************************** |
2 | | * libasf_guid.h : |
3 | | ***************************************************************************** |
4 | | * Copyright © 2001-2004, 2011 VLC authors and VideoLAN |
5 | | * |
6 | | * Authors: Laurent Aimar <fenrir@via.ecp.fr> |
7 | | * |
8 | | * This program is free software; you can redistribute it and/or modify it |
9 | | * under the terms of the GNU Lesser General Public License as published by |
10 | | * the Free Software Foundation; either version 2.1 of the License, or |
11 | | * (at your option) any later version. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU Lesser General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU Lesser General Public License |
19 | | * along with this program; if not, write to the Free Software Foundation, |
20 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
21 | | *****************************************************************************/ |
22 | | |
23 | | #ifndef LIBASG_GUID_H |
24 | | #define LIBASG_GUID_H |
25 | | |
26 | | #include <vlc_codecs.h> |
27 | | |
28 | | /***************************************************************************** |
29 | | * Structure needed for decoder |
30 | | *****************************************************************************/ |
31 | | enum |
32 | | { |
33 | | ASF_OBJECT_NULL = 0, |
34 | | ASF_OBJECT_ROOT, |
35 | | ASF_OBJECT_HEADER, |
36 | | ASF_OBJECT_DATA, |
37 | | ASF_OBJECT_INDEX, |
38 | | ASF_OBJECT_FILE_PROPERTIES, |
39 | | ASF_OBJECT_STREAM_PROPERTIES, |
40 | | ASF_OBJECT_HEADER_EXTENSION, |
41 | | ASF_OBJECT_CODEC_LIST, |
42 | | ASF_OBJECT_MARKER, |
43 | | ASF_OBJECT_CONTENT_DESCRIPTION, |
44 | | ASF_OBJECT_METADATA, |
45 | | ASF_OBJECT_PADDING, |
46 | | ASF_OBJECT_OTHER, |
47 | | }; |
48 | | |
49 | | static const vlc_guid_t asf_object_null_guid = |
50 | | { |
51 | | 0x00000000, |
52 | | 0x0000, |
53 | | 0x0000, |
54 | | { 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00 } |
55 | | }; |
56 | | |
57 | | static const vlc_guid_t vlc_object_root_guid = |
58 | | { |
59 | | 0x00000000, |
60 | | 0x0000, |
61 | | 0x0000, |
62 | | { 0x56, 0x4C, 0x43, 0x52, 0x4F, 0x4F, 0x54, 0x00 } |
63 | | }; |
64 | | |
65 | | /* Top-Level object */ |
66 | | static const vlc_guid_t asf_object_header_guid = |
67 | | {0x75B22630, 0x668E, 0x11CF, {0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C}}; |
68 | | |
69 | | static const vlc_guid_t asf_object_data_guid = |
70 | | {0x75B22636, 0x668E, 0x11CF, {0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C}}; |
71 | | |
72 | | static const vlc_guid_t asf_object_simple_index_guid = |
73 | | {0x33000890, 0xE5B1, 0x11CF, {0x89, 0xF4, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xCB}}; |
74 | | |
75 | | static const vlc_guid_t asf_object_index_guid = |
76 | | {0xD6E229D3, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
77 | | |
78 | | /* Header object */ |
79 | | static const vlc_guid_t asf_object_file_properties_guid = |
80 | | {0x8cabdca1, 0xa947, 0x11cf, {0x8e, 0xe4, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65}}; |
81 | | |
82 | | static const vlc_guid_t asf_object_stream_properties_guid = |
83 | | {0xB7DC0791, 0xA9B7, 0x11CF, {0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65}}; |
84 | | |
85 | | static const vlc_guid_t asf_object_header_extension_guid = |
86 | | {0x5FBF03B5, 0xA92E, 0x11CF, {0x8E, 0xE3, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65}}; |
87 | | |
88 | | static const vlc_guid_t asf_object_codec_list_guid = |
89 | | {0x86D15240, 0x311D, 0x11D0, {0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6}}; |
90 | | |
91 | | static const vlc_guid_t asf_object_marker_guid = |
92 | | {0xF487CD01, 0xA951, 0x11CF, {0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65}}; |
93 | | |
94 | | static const vlc_guid_t asf_object_content_description_guid = |
95 | | {0x75B22633, 0x668E, 0x11CF, {0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c}}; |
96 | | |
97 | | static const vlc_guid_t asf_object_extended_content_description = |
98 | | {0xD2D0A440, 0xE307, 0x11D2, {0x97, 0xF0, 0x00, 0xA0, 0xC9, 0x5E, 0xA8, 0x50}}; |
99 | | |
100 | | static const vlc_guid_t asf_object_padding = |
101 | | {0x1806D474, 0xCADF, 0x4509, {0xA4, 0xBA, 0x9A, 0xAB, 0xCB, 0x96, 0xAA, 0xE8}}; |
102 | | |
103 | | /* Header Extension object */ |
104 | | static const vlc_guid_t asf_object_advanced_mutual_exclusion = |
105 | | {0xA08649CF, 0x4775, 0x4670, {0x8A, 0x16, 0x6E, 0x35, 0x35, 0x75, 0x66, 0xCD}}; |
106 | | |
107 | | static const vlc_guid_t asf_object_stream_prioritization = |
108 | | {0xD4FED15B, 0x88D3, 0x454F, {0x81, 0xF0, 0xED, 0x5C, 0x45, 0x99, 0x9E, 0x24}}; |
109 | | |
110 | | static const vlc_guid_t asf_object_metadata_guid = |
111 | | {0xC5F8CBEA, 0x5BAF, 0x4877, {0x84, 0x67, 0xAA, 0x8C, 0x44, 0xFA, 0x4C, 0xCA}}; |
112 | | |
113 | | /* Stream Properties object */ |
114 | | static const vlc_guid_t asf_object_stream_type_audio = |
115 | | {0xF8699E40, 0x5B4D, 0x11CF, {0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B}}; |
116 | | |
117 | | static const vlc_guid_t asf_object_stream_type_video = |
118 | | {0xbc19efc0, 0x5B4D, 0x11CF, {0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B}}; |
119 | | |
120 | | static const vlc_guid_t asf_object_stream_type_command = |
121 | | {0x59DACFC0, 0x59E6, 0x11D0, {0xA3, 0xAC, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6}}; |
122 | | |
123 | | static const vlc_guid_t asf_object_stream_type_binary = |
124 | | {0x3AFB65E2, 0x47EF, 0x40F2, {0xAC, 0x2C, 0x70, 0xA9, 0x0D, 0x71, 0xD3, 0x43}}; |
125 | | |
126 | | /* TODO */ |
127 | | // top-level |
128 | | static const vlc_guid_t asf_object_media_index_guid = |
129 | | {0xFEB103F8, 0x12AD, 0x4C64, {0x84, 0x0F, 0x2A, 0x1D, 0x2F, 0x7A, 0xD4, 0x8C}}; |
130 | | |
131 | | static const vlc_guid_t asf_object_timecode_index_guid = |
132 | | {0x3CB73FD0, 0x0C4A, 0x4803, {0x95, 0x3D, 0xED, 0xF7, 0xB6, 0x22, 0x8F, 0x0C}}; |
133 | | |
134 | | // header |
135 | | static const vlc_guid_t asf_object_script_command_guid = |
136 | | {0x1EFB1A30, 0x0B62, 0x11D0, {0xA3, 0x9B, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6}}; |
137 | | |
138 | | static const vlc_guid_t asf_object_bitrate_mutual_exclusion_guid = |
139 | | {0xD6E229DC, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
140 | | |
141 | | static const vlc_guid_t asf_object_error_correction_guid = |
142 | | {0x75B22635, 0x668E, 0x11CF, {0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C}}; |
143 | | |
144 | | static const vlc_guid_t asf_object_content_branding_guid = |
145 | | {0x2211B3FA, 0xBD23, 0x11D2, {0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E}}; |
146 | | |
147 | | static const vlc_guid_t asf_object_stream_bitrate_properties = |
148 | | {0x7BF875CE, 0x468D, 0x11D1, {0x8D, 0x82, 0x00, 0x60, 0x97, 0xC9, 0xA2, 0xB2}}; |
149 | | |
150 | | static const vlc_guid_t asf_object_content_encryption_guid = |
151 | | {0x2211B3FB, 0xBD23, 0x11D2, {0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E}}; |
152 | | |
153 | | static const vlc_guid_t asf_object_extended_content_encryption_guid = |
154 | | {0x298AE614, 0x2622, 0x4C17, {0xB9, 0x35, 0xDA, 0xE0, 0x7E, 0xE9, 0x28, 0x9C}}; |
155 | | |
156 | | static const vlc_guid_t asf_object_digital_signature_guid = |
157 | | {0x2211B3FC, 0xBD23, 0x11D2, {0xB4, 0xB7, 0x00, 0xA0, 0xC9, 0x55, 0xFC, 0x6E}}; |
158 | | |
159 | | // header extension |
160 | | static const vlc_guid_t asf_object_extended_stream_properties_guid = |
161 | | {0x14E6A5CB, 0xC672, 0x4332, {0x83, 0x99, 0xA9, 0x69, 0x52, 0x06, 0x5B, 0x5A}}; |
162 | | |
163 | | static const vlc_guid_t asf_object_group_mutual_exclusion_guid = |
164 | | {0xD1465A40, 0x5A79, 0x4338, {0xB7, 0x1B, 0xE3, 0x6B, 0x8F, 0xD6, 0xC2, 0x49}}; |
165 | | |
166 | | static const vlc_guid_t asf_object_bandwidth_sharing_guid = |
167 | | {0xA69609E6, 0x517B, 0x11D2, {0xB6, 0xAF, 0x00, 0xC0, 0x4F, 0xD9, 0x08, 0xE9}}; |
168 | | |
169 | | static const vlc_guid_t asf_object_language_list = |
170 | | {0x7C4346A9, 0xEFE0, 0x4BFC, {0xB2, 0x29, 0x39, 0x3E, 0xDE, 0x41, 0x5C, 0x85}}; |
171 | | |
172 | | static const vlc_guid_t asf_object_metadata_library_guid = |
173 | | {0x44231C94, 0x9498, 0x49D1, {0xA1, 0x41, 0x1D, 0x13, 0x4E, 0x45, 0x70, 0x54}}; |
174 | | |
175 | | static const vlc_guid_t asf_object_index_parameters_guid = |
176 | | {0xD6E229DF, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
177 | | |
178 | | static const vlc_guid_t asf_object_media_object_index_parameters_guid = |
179 | | {0x6B203BAD, 0x3F11, 0x48E4, {0xAC, 0xA8, 0xD7, 0x61, 0x3D, 0xE2, 0xCF, 0xA7}}; |
180 | | |
181 | | static const vlc_guid_t asf_object_timecode_index_parameters_guid = |
182 | | {0xF55E496D, 0x9797, 0x4B5D, {0x8C, 0x8B, 0x60, 0x4D, 0xFE, 0x9B, 0xFB, 0x24}}; |
183 | | |
184 | | static const vlc_guid_t asf_object_compatibility_guid = |
185 | | {0x26F18B5D, 0x4584, 0x47EC, {0x9F, 0x5F, 0x0E, 0x65, 0x1F, 0x04, 0x52, 0xC9}}; |
186 | | |
187 | | static const vlc_guid_t asf_object_advanced_content_encryption_guid = |
188 | | {0x43058533, 0x6981, 0x49E6, {0x9B, 0x74, 0xAD, 0x12, 0xCB, 0x86, 0xD5, 0x8C}}; |
189 | | |
190 | | // |
191 | | static const vlc_guid_t asf_object_extended_stream_type_audio = |
192 | | {0x31178C9D, 0x03E1, 0x4528, {0xB5, 0x82, 0x3D, 0xF9, 0xDB, 0x22, 0xF5, 0x03}}; |
193 | | |
194 | | static const vlc_guid_t asf_guid_reserved_1 = |
195 | | {0xABD3D211, 0xA9BA, 0x11cf, {0x8E, 0xE6, 0x00, 0xC0, 0x0C ,0x20, 0x53, 0x65}}; |
196 | | |
197 | | static const vlc_guid_t asf_guid_reserved_2 = //object_codec_list_reserved_guid = |
198 | | {0x86D15241, 0x311D, 0x11D0, {0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6}}; |
199 | | |
200 | | // Stream Properties Object Error Correction |
201 | | static const vlc_guid_t asf_no_error_correction_guid = |
202 | | {0x20FB5700, 0x5B55, 0x11CF, {0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B}}; |
203 | | |
204 | | static const vlc_guid_t asf_guid_audio_conceal_spread = |
205 | | {0xBFC3CD50, 0x618F, 0x11CF, {0x8B, 0xB2, 0x00, 0xAA, 0x00, 0xB4, 0xE2, 0x20}}; |
206 | | |
207 | | // Mutual exclusion |
208 | | static const vlc_guid_t asf_guid_mutex_language = |
209 | | {0xD6E22A00, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
210 | | |
211 | | static const vlc_guid_t asf_guid_mutex_bitrate = |
212 | | {0xD6E22A01, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
213 | | |
214 | | static const vlc_guid_t asf_guid_mutex_unknown = |
215 | | {0xD6E22A02, 0x35DA, 0x11D1, {0x90, 0x34, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xBE}}; |
216 | | |
217 | | // Obscure ones |
218 | | // http://cpan.uwinnipeg.ca/htdocs/Audio-WMA/Audio/WMA.pm.html |
219 | | |
220 | | static const vlc_guid_t nonasf_object_index_placeholder_guid = |
221 | | {0xD9AADE20, 0x7C17, 0x4F9C, {0xBC, 0x28, 0x85, 0x55, 0xDD, 0x98, 0xE2, 0xA2}}; |
222 | | |
223 | | static const vlc_guid_t nonasf_object_compatibility = |
224 | | {0x26F18B5D, 0x4584, 0x47EC, {0x9F, 0x5F, 0x0E, 0x65, 0x1F, 0x04, 0x52, 0xC9}}; |
225 | | |
226 | | // MS foundations Payload Extensions for non compressed payloads |
227 | | // http://msdn.microsoft.com/en-us/library/windows/desktop/dd757606%28v=vs.85%29.aspx |
228 | | |
229 | | static const vlc_guid_t mfasf_sampleextension_sampleduration_guid = |
230 | | {0xC6BD9450, 0x867F, 0x4907, {0x83, 0xA3, 0xC7, 0x79, 0x21, 0xB7, 0x33, 0xAD}}; |
231 | | |
232 | | static const vlc_guid_t mfasf_sampleextension_outputcleanpoint_guid = |
233 | | {0xF72A3C6F, 0x6EB4, 0x4EBC, {0xB1, 0x92, 0x09, 0xAD, 0x97, 0x59, 0xE8, 0x28}}; |
234 | | |
235 | | static const vlc_guid_t mfasf_sampleextension_smtpe_guid = |
236 | | {0x399595EC, 0x8667, 0x4E2D, {0x8F, 0xDB, 0x98, 0x81, 0x4C, 0xE7, 0x6C, 0x1E}}; |
237 | | |
238 | | static const vlc_guid_t mfasf_sampleextension_filename_guid = |
239 | | {0xE165EC0E, 0x19ED, 0x45D7, {0xB4, 0xA7, 0x25, 0xCB, 0xD1, 0xE2, 0x8E, 0x9B}}; |
240 | | |
241 | | static const vlc_guid_t mfasf_sampleextension_contenttype_guid = |
242 | | {0xD590DC20, 0x07BC, 0x436C, {0x9C, 0xF7, 0xF3, 0xBB, 0xFB, 0xF1, 0xA4, 0xDC}}; |
243 | | |
244 | | static const vlc_guid_t mfasf_sampleextension_pixelaspectratio_guid = |
245 | | {0x1B1EE554, 0xF9EA, 0x4BC8, {0x82, 0x1A, 0x37, 0x6B, 0x74, 0xE4, 0xC4, 0xB8}}; |
246 | | |
247 | | static const vlc_guid_t mfasf_sampleextension_encryptionsampleid_guid = |
248 | | {0x6698B84E, 0x0AFA, 0x4330, {0xAE, 0xB2, 0x1C, 0x0A, 0x98, 0xD7, 0xA4, 0x4D}}; |
249 | | |
250 | | static const vlc_guid_t mfasf_sampleextension_encryptionkeyid_guid = |
251 | | {0x76376591, 0x795F, 0x4DA1, {0x86, 0xED, 0x9D, 0x46, 0xEC, 0xA1, 0x09, 0x49}}; |
252 | | |
253 | | // DVR ones |
254 | | |
255 | | static const vlc_guid_t asf_dvr_sampleextension_videoframe_guid = |
256 | | {0xDD6432CC, 0xE229, 0x40DB, {0x80, 0xF6, 0xD2, 0x63, 0x28, 0xD2, 0x76, 0x1F}}; |
257 | | |
258 | | static const vlc_guid_t asf_dvr_sampleextension_timing_rep_data_guid = |
259 | | {0xFD3CC02A, 0x06DB, 0x4CFA, {0x80, 0x1C, 0x72, 0x12, 0xd3, 0x87, 0x45, 0xE4}}; |
260 | | |
261 | | /**************************************************************************** |
262 | | * GUID functions |
263 | | ****************************************************************************/ |
264 | | static inline void ASF_GetGUID( vlc_guid_t *p_guid, const uint8_t *p_data ) |
265 | 669k | { |
266 | 669k | p_guid->Data1 = GetDWLE( p_data ); |
267 | 669k | p_guid->Data2 = GetWLE( p_data + 4); |
268 | 669k | p_guid->Data3 = GetWLE( p_data + 6); |
269 | 669k | memcpy( p_guid->Data4, p_data + 8, 8 ); |
270 | 669k | } Line | Count | Source | 265 | 13.4k | { | 266 | 13.4k | p_guid->Data1 = GetDWLE( p_data ); | 267 | 13.4k | p_guid->Data2 = GetWLE( p_data + 4); | 268 | 13.4k | p_guid->Data3 = GetWLE( p_data + 6); | 269 | 13.4k | memcpy( p_guid->Data4, p_data + 8, 8 ); | 270 | 13.4k | } |
Line | Count | Source | 265 | 655k | { | 266 | 655k | p_guid->Data1 = GetDWLE( p_data ); | 267 | 655k | p_guid->Data2 = GetWLE( p_data + 4); | 268 | 655k | p_guid->Data3 = GetWLE( p_data + 6); | 269 | 655k | memcpy( p_guid->Data4, p_data + 8, 8 ); | 270 | 655k | } |
Unexecuted instantiation: asfpacket.c:ASF_GetGUID Unexecuted instantiation: mp4.c:ASF_GetGUID Unexecuted instantiation: essetup.c:ASF_GetGUID |
271 | | |
272 | | #endif |