File Coverage

blib/lib/Image/ExifTool/MXF.pm
Criterion Covered Total %
statement 244 300 81.3
branch 128 202 63.3
condition 47 111 42.3
subroutine 11 12 91.6
pod 0 8 0.0
total 430 633 67.9


line stmt bran cond sub pod time code
1             #------------------------------------------------------------------------------
2             # File: MXF.pm
3             #
4             # Description: Read MXF meta information
5             #
6             # Revisions: 2010/12/15 - P. Harvey Created
7             #
8             # References: 1) http://sourceforge.net/projects/mxflib/
9             # 2) http://www.aafassociation.org/downloads/whitepapers/MXFPhysicalview.pdf
10             # 3) http://archive.nlm.nih.gov/pubs/pearson/MJ2_Metadata2005.pdf
11             # 4) http://www.aafassociation.org/downloads/specifications/AMWA-AS-03-Delivery-Spec-1_0.pdf
12             # 5) http://paul-sampson.ca/private/s385m.pdf
13             # 6) http://avwiki.nl/documents/eg41.pdf
14             # 7) http://avwiki.nl/documents/eg42.pdf
15             # 8) http://rhea.tele.ucl.ac.be:8081/Plone/Members/egoray/thesaurus-dictionnaire-metadata/
16             # a) S335M Dictionary structure.pdf
17             # b) S330M UMID.PDF
18             # 9) http://www.smpte-ra.org/mdd/RP210v12-publication-20100623.xls
19             # 10) http://www.amwa.tv/downloads/specifications/aafobjectspec-v1.1.pdf
20             # 11) http://www.mog-solutions.com/img_upload/PDF/XML%20Schema%20for%20MXF%20Metadata.pdf
21             # 12) http://www.freemxf.org/freemxf_board/viewtopic.php?p=545&sid=00a5c17e07d828c1e93ecdbaed3076f7
22             #
23             # Notes: 1) The alternate language support is dependent on the serialization
24             # sequence. Specifically the InstanceUID's must come before any
25             # text in an alternate language set, and these sets must come
26             # after the language definitions.
27             #
28             # 2) UTF-16 surrogate pairs are not handled properly.
29             #
30             # 3) This code is not tested for files larger than 2 GB,
31             # but in theory this should be OK with 64-bit Perl.
32             #------------------------------------------------------------------------------
33              
34             package Image::ExifTool::MXF;
35              
36 2     2   5383 use strict;
  2         4  
  2         69  
37 2     2   12 use vars qw($VERSION);
  2         3  
  2         87  
38 2     2   12 use Image::ExifTool qw(:DataAccess :Utils);
  2         3  
  2         451  
39 2     2   937 use Image::ExifTool::GPS;
  2         6  
  2         27786  
40              
41             $VERSION = '1.08';
42              
43             sub ProcessPrimer($$$);
44             sub ProcessLocalSet($$$);
45             sub ConvLatLon($);
46             sub ReadMXFValue($$$);
47             sub SetGroups($$;$$);
48             sub ConvertDurations($$);
49              
50             # list of currently decoded MXF value types
51             my %knownType = (
52             Alt => 1, Lon => 1, UL => 1,
53             AUID => 1, PackageID => 1, UMID => 1,
54             BatchOfUL => 1, Position => 1, 'UTF-16' => 1,
55             Boolean => 1, ProductVersion => 1, UUID => 1,
56             GUID => 1, StrongReference => 1, VersionType => 1,
57             Hex => 1, StrongReferenceArray => 1, WeakReference => 1,
58             Label => 1, StrongReferenceBatch => 1,
59             Lat => 1, Timestamp => 1,
60             Length => 1, UID => 1,
61             );
62              
63             # common tag info parameters
64             my %header = (
65             IsHeader => 1,
66             SubDirectory => {
67             TagTable => 'Image::ExifTool::MXF::Header',
68             ProcessProc => \&Image::ExifTool::ProcessBinaryData,
69             },
70             );
71             my %localSet = (
72             SubDirectory => { TagTable => 'Image::ExifTool::MXF::Main' },
73             );
74             my %timestamp = (
75             Type => 'Timestamp',
76             Groups => { 2 => 'Time' },
77             PrintConv => '$self->ConvertDateTime($val)',
78             );
79             my %geoLat = (
80             Groups => { 2 => 'Location' },
81             PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
82             );
83             my %geoLon = (
84             Groups => { 2 => 'Location' },
85             PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
86             );
87             my %geoLatLon = (
88             Groups => { 2 => 'Location' },
89             PrintConv => q{
90             my ($lat, $lon) = split ' ', $val;
91             $lat = Image::ExifTool::GPS::ToDMS($self, $lat, 1, 'N');
92             $lon = Image::ExifTool::GPS::ToDMS($self, $lon, 1, 'E');
93             return "$lat, $lon";
94             },
95             );
96             my %duration = (
97             IsDuration => 1, # flag used to correct durations by the appropriate EditRate
98             RawConv => '$val > 1e18 ? undef : $val', # (all 0xff's)
99             PrintConv => 'ConvertDuration($val)',
100             );
101              
102             # ComponentDataDefinition values
103             my %componentDataDef = (
104             PrintConv => {
105             '060e2b34.0401.0101.01030201.01000000' => 'SMPTE 12M Timecode Track',
106             '060e2b34.0401.0101.01030201.02000000' => 'SMPTE 12M Timecode Track with active user bits',
107             '060e2b34.0401.0101.01030201.03000000' => 'SMPTE 309M Timecode Track',
108             '060e2b34.0401.0101.01030201.10000000' => 'Descriptive Metadata Track',
109             '060e2b34.0401.0101.01030202.01000000' => 'Picture Essence Track',
110             '060e2b34.0401.0101.01030202.02000000' => 'Sound Essence Track',
111             '060e2b34.0401.0101.01030202.03000000' => 'Data Essence Track',
112             },
113             );
114              
115             # MXF tags (ref 1)
116             # Note: The Binary flag is automatically set for all Unknown tags with unknown Type
117             %Image::ExifTool::MXF::Main = (
118             GROUPS => { 2 => 'Video' },
119             VARS => { NO_LOOKUP => 1, NO_ID => 1 }, # tag ID's are too bulky
120             NOTES => q{
121             Tags extracted from Material Exchange Format files. Tag ID's are not listed
122             because they are bulky 16-byte binary values.
123             },
124             # '060a2b34.0101.0101.01010100.00000000' => { Name => 'UMIDVideo', Type => 'Node' },
125             # '060a2b34.0101.0101.01010110.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
126             # '060a2b34.0101.0101.01010111.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
127             # '060a2b34.0101.0101.01010112.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
128             # '060a2b34.0101.0101.01010120.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
129             # '060a2b34.0101.0101.01010121.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
130             # '060a2b34.0101.0101.01010122.00000000' => { Name => 'UMIDVideo', Unknown => 1 },
131             # '060a2b34.0101.0101.01010200.00000000' => { Name => 'UMIDAudio', Type => 'Node' },
132             # '060a2b34.0101.0101.01010210.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
133             # '060a2b34.0101.0101.01010211.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
134             # '060a2b34.0101.0101.01010212.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
135             # '060a2b34.0101.0101.01010220.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
136             # '060a2b34.0101.0101.01010221.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
137             # '060a2b34.0101.0101.01010222.00000000' => { Name => 'UMIDAudio', Unknown => 1 },
138             # '060a2b34.0101.0101.01010300.00000000' => { Name => 'UMIDData', Type => 'Node' },
139             # '060a2b34.0101.0101.01010310.00000000' => { Name => 'UMIDData', Unknown => 1 },
140             # '060a2b34.0101.0101.01010311.00000000' => { Name => 'UMIDData', Unknown => 1 },
141             # '060a2b34.0101.0101.01010312.00000000' => { Name => 'UMIDData', Unknown => 1 },
142             # '060a2b34.0101.0101.01010320.00000000' => { Name => 'UMIDData', Unknown => 1 },
143             # '060a2b34.0101.0101.01010321.00000000' => { Name => 'UMIDData', Unknown => 1 },
144             # '060a2b34.0101.0101.01010322.00000000' => { Name => 'UMIDData', Unknown => 1 },
145             # '060a2b34.0101.0101.01010400.00000000' => { Name => 'UMIDSystem', Type => 'Node' },
146             # '060a2b34.0101.0101.01010410.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
147             # '060a2b34.0101.0101.01010411.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
148             # '060a2b34.0101.0101.01010412.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
149             # '060a2b34.0101.0101.01010420.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
150             # '060a2b34.0101.0101.01010421.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
151             # '060a2b34.0101.0101.01010422.00000000' => { Name => 'UMIDSystem', Unknown => 1 },
152              
153             # '060e2b34.0101.0101.00000000.00000000' => { Name => 'Elements', Type => 'Node' },
154             # '060e2b34.0101.0101.01000000.00000000' => { Name => 'Identifiers', Type => 'Node' },
155             # '060e2b34.0101.0101.01010000.00000000' => { Name => 'GloballyUniqueIdentifiers', Type => 'Node' },
156             # '060e2b34.0101.0101.01011000.00000000' => { Name => 'InternationalBroadcastingOrganizationIdentifiers', Type => 'Node' },
157             '060e2b34.0101.0101.01011001.00000000' => { Name => 'OrganizationID', Format => 'string' },
158             # '060e2b34.0101.0101.01011003.00000000' => { Name => 'ProgramIdentifiers', Type => 'Node' },
159             '060e2b34.0101.0101.01011003.01000000' => { Name => 'UPID', Unknown => 1 },
160             '060e2b34.0101.0101.01011003.02000000' => { Name => 'UPN', Unknown => 1 },
161             # '060e2b34.0101.0101.01011004.00000000' => { Name => 'PhysicalMediaIdentifiers', Type => 'Node' },
162             # '060e2b34.0101.0101.01011004.01000000' => { Name => 'TapeIdentifiers', Type => 'Node' },
163             '060e2b34.0101.0101.01011004.01010000' => { Name => 'IBTN', Unknown => 1 },
164             # '060e2b34.0101.0101.01011100.00000000' => { Name => 'InternationalStandardIdentifiers', Type => 'Node' },
165             '060e2b34.0101.0101.01011101.00000000' => { Name => 'ISAN', Unknown => 1 },
166             '060e2b34.0101.0101.01011102.00000000' => { Name => 'ISBN', Unknown => 1 },
167             '060e2b34.0101.0101.01011103.00000000' => { Name => 'ISSN', Unknown => 1 },
168             '060e2b34.0101.0101.01011104.00000000' => { Name => 'ISWC', Unknown => 1 },
169             '060e2b34.0101.0101.01011105.00000000' => { Name => 'ISMN', Unknown => 1 },
170             '060e2b34.0101.0101.01011106.00000000' => { Name => 'ISCI', Unknown => 1 },
171             '060e2b34.0101.0101.01011107.00000000' => { Name => 'ISRC', Unknown => 1 },
172             '060e2b34.0101.0101.01011108.00000000' => { Name => 'ISRN', Unknown => 1 },
173             '060e2b34.0101.0101.01011109.00000000' => { Name => 'ISBD', Unknown => 1 },
174             '060e2b34.0101.0101.0101110a.00000000' => { Name => 'ISTC', Unknown => 1 },
175             # '060e2b34.0101.0101.01011300.00000000' => { Name => 'InternationalStandardCompoundIdentifiers', Type => 'Node' },
176             '060e2b34.0101.0101.01011301.00000000' => { Name => 'SICI', Unknown => 1 },
177             '060e2b34.0101.0101.01011302.00000000' => { Name => 'BICI', Unknown => 1 },
178             '060e2b34.0101.0101.01011303.00000000' => { Name => 'AICI', Unknown => 1 },
179             '060e2b34.0101.0101.01011304.00000000' => { Name => 'PII', Unknown => 1 },
180             # '060e2b34.0101.0101.01011500.00000000' => { Name => 'ObjectIdentifiers', Type => 'Node' },
181             '060e2b34.0101.0101.01011501.00000000' => { Name => 'DOI', Unknown => 1 },
182             '060e2b34.0101.0101.01011502.00000000' => { Name => 'InstanceUID', Type => 'GUID', Unknown => 1 },
183             '060e2b34.0101.0101.01011510.00000000' => { Name => 'PackageID', Type => 'PackageID', Unknown => 1 },
184             # '060e2b34.0101.0101.01012000.00000000' => { Name => 'DeviceIdentifiers', Type => 'Node' },
185             '060e2b34.0101.0101.01012001.00000000' => { Name => 'DeviceDesignation', Format => 'string' },
186             '060e2b34.0101.0101.01012003.00000000' => { Name => 'DeviceModel', Format => 'string' },
187             '060e2b34.0101.0101.01012004.00000000' => { Name => 'DeviceSerialNumber', Format => 'string' },
188             # '060e2b34.0101.0101.01020000.00000000' => { Name => 'GloballyUniqueLocators', Type => 'Node' },
189             # '060e2b34.0101.0101.01020100.00000000' => { Name => 'UniformResourceLocators', Type => 'Node' },
190             '060e2b34.0101.0101.01020101.00000000' => { Name => 'URL', Format => 'string' },
191             '060e2b34.0101.0101.01020101.01000000' => { Name => 'URL', Type => 'UTF-16' },
192             '060e2b34.0101.0101.01020102.00000000' => { Name => 'PURL', Format => 'string' },
193             '060e2b34.0101.0101.01020103.00000000' => { Name => 'URN', Format => 'string' },
194             # '060e2b34.0101.0101.01030000.00000000' => { Name => 'LocallyUniqueIdentifiers', Type => 'Node' },
195             # '060e2b34.0101.0101.01030100.00000000' => { Name => 'AdministrativeIdentifiers', Type => 'Node' },
196             '060e2b34.0101.0101.01030101.00000000' => { Name => 'TransmissionID', Format => 'string' },
197             '060e2b34.0101.0101.01030102.00000000' => { Name => 'ArchiveID', Format => 'string' },
198             '060e2b34.0101.0101.01030103.00000000' => { Name => 'ItemID', Format => 'string' },
199             '060e2b34.0101.0101.01030104.00000000' => { Name => 'AccountingReferenceNumber', Format => 'string' },
200             '060e2b34.0101.0101.01030105.00000000' => { Name => 'TrafficID', Format => 'string' },
201             # '060e2b34.0101.0101.01030200.00000000' => { Name => 'LocalPhysicalMediaIdentifiers', Type => 'Node' },
202             # '060e2b34.0101.0101.01030201.00000000' => { Name => 'LocalFilmID', Type => 'Node' },
203             '060e2b34.0101.0101.01030201.01000000' => { Name => 'ReelOrRollNumber', Format => 'string' },
204             # '060e2b34.0101.0101.01030202.00000000' => { Name => 'LocalTapeIdentifiers', Type => 'Node' },
205             '060e2b34.0101.0101.01030202.01000000' => { Name => 'LocalTapeNumber', Format => 'string' },
206             # '060e2b34.0101.0101.01030300.00000000' => { Name => 'LocalObjectIdentifiers', Type => 'Node' },
207             '060e2b34.0101.0101.01030301.00000000' => { Name => 'LUID', Format => 'int32u' },
208             '060e2b34.0101.0101.01030302.01000000' => { Name => 'PackageName', Type => 'UTF-16' },
209             # '060e2b34.0101.0101.01040000.00000000' => { Name => 'LocallyUniqueLocators', Type => 'Node' },
210             # '060e2b34.0101.0101.01040100.00000000' => { Name => 'MediaLocators', Type => 'Node' },
211             '060e2b34.0101.0101.01040101.00000000' => { Name => 'LocalFilePath', Format => 'string' },
212             # '060e2b34.0101.0101.01040700.00000000' => { Name => 'FilmLocators', Type => 'Node' },
213             '060e2b34.0101.0101.01040701.00000000' => { Name => 'EdgeCode', Format => 'string' },
214             '060e2b34.0101.0101.01040702.00000000' => { Name => 'FrameCode', Format => 'string' },
215             '060e2b34.0101.0101.01040703.00000000' => { Name => 'KeyCode', Type => 'KeyCode', Unknown => 1 },
216             '060e2b34.0101.0101.01040704.00000000' => { Name => 'InkNumber', Format => 'string' },
217             # '060e2b34.0101.0101.01041000.00000000' => { Name => 'ProxyLocators', Type => 'Node' },
218             '060e2b34.0101.0101.01041001.00000000' => { Name => 'KeyText', Format => 'string' },
219             '060e2b34.0101.0101.01041002.00000000' => { Name => 'KeyFrame', Format => 'string' },
220             '060e2b34.0101.0101.01041003.00000000' => { Name => 'KeySound', Format => 'string' },
221             '060e2b34.0101.0101.01041004.00000000' => { Name => 'KeyDataOrProgram', Format => 'string' },
222             # '060e2b34.0101.0101.01050000.00000000' => { Name => 'Titles', Type => 'Node' },
223             '060e2b34.0101.0101.01050100.00000000' => { Name => 'TitleKind', Format => 'string' },
224             '060e2b34.0101.0101.01050200.00000000' => { Name => 'MainTitle', Format => 'string' },
225             '060e2b34.0101.0101.01050300.00000000' => { Name => 'SecondaryTitle', Format => 'string' },
226             '060e2b34.0101.0101.01050400.00000000' => { Name => 'SeriesNumber', Format => 'string' },
227             '060e2b34.0101.0101.01050500.00000000' => { Name => 'EpisodeNumber', Format => 'string' },
228             '060e2b34.0101.0101.01050600.00000000' => { Name => 'SceneNumber', Format => 'string' },
229             '060e2b34.0101.0101.01050700.00000000' => { Name => 'TakeNumber', Format => 'int16u' },
230             # '060e2b34.0101.0101.01100000.00000000' => { Name => 'IntellectualPropertyRightsIdentifiers', Type => 'Node' },
231             # '060e2b34.0101.0101.01100100.00000000' => { Name => 'SUISACISACIPI', Type => 'Node' },
232             '060e2b34.0101.0101.01100101.00000000' => { Name => 'CISACLegalEntityID', Unknown => 1 },
233             # '060e2b34.0101.0101.01100200.00000000' => { Name => 'AGICOAIdentifers', Type => 'Node' },
234             '060e2b34.0101.0101.01100201.00000000' => { Name => 'AGICOAID', Unknown => 1 },
235             # '060e2b34.0101.0101.02000000.00000000' => { Name => 'ADMINISTRATION', Type => 'Node' },
236             # '060e2b34.0101.0101.02010000.00000000' => { Name => 'Supplier', Type => 'Node' },
237             '060e2b34.0101.0101.02010100.00000000' => { Name => 'SourceOrganization', Format => 'string' },
238             '060e2b34.0101.0101.02010200.00000000' => { Name => 'SupplyContractNumber', Format => 'string' },
239             '060e2b34.0101.0101.02010300.00000000' => { Name => 'OriginalProducerName', Format => 'string' },
240             # '060e2b34.0101.0101.02020000.00000000' => { Name => 'Product', Type => 'Node' },
241             '060e2b34.0101.0101.02020100.00000000' => { Name => 'TotalEpisodeCount', Format => 'int16u' },
242             # '060e2b34.0101.0101.02050000.00000000' => { Name => 'Rights', Type => 'Node' },
243             # '060e2b34.0101.0101.02050100.00000000' => { Name => 'Copyright', Type => 'Node' },
244             '060e2b34.0101.0101.02050101.00000000' => { Name => 'CopyrightStatus', Format => 'string' },
245             '060e2b34.0101.0101.02050102.00000000' => { Name => 'CopyrightOwnerName', Format => 'string' },
246             # '060e2b34.0101.0101.02050200.00000000' => { Name => 'IntellectualRights', Type => 'Node' },
247             '060e2b34.0101.0101.02050201.00000000' => { Name => 'IntellectualPropertyDescription', Format => 'string' },
248             '060e2b34.0101.0101.02050202.00000000' => { Name => 'IntellectualPropertyRights', Format => 'string' },
249             # '060e2b34.0101.0101.02050300.00000000' => { Name => 'LegalPersonalities', Type => 'Node' },
250             '060e2b34.0101.0101.02050301.00000000' => { Name => 'Rightsholder', Format => 'string' },
251             '060e2b34.0101.0101.02050302.00000000' => { Name => 'RightsManagementAuthority', Format => 'string' },
252             '060e2b34.0101.0101.02050303.00000000' => { Name => 'InterestedPartyName', Format => 'string' },
253             # '060e2b34.0101.0101.02050400.00000000' => { Name => 'IntellectualPropertyRightsOptions', Type => 'Node' },
254             '060e2b34.0101.0101.02050401.00000000' => { Name => 'MaximumUseCount', Format => 'int16u' },
255             '060e2b34.0101.0101.02050402.00000000' => { Name => 'LicenseOptionsDescription', Format => 'string' },
256             # '060e2b34.0101.0101.02060000.00000000' => { Name => 'FinancialInformation', Type => 'Node' },
257             # '060e2b34.0101.0101.02060100.00000000' => { Name => 'Currencies', Type => 'Node' },
258             '060e2b34.0101.0101.02060101.00000000' => { Name => 'CurrencyCode', Format => 'string' },
259             # '060e2b34.0101.0101.02060200.00000000' => { Name => 'PaymentsAndCosts', Type => 'Node' },
260             '060e2b34.0101.0101.02060201.00000000' => { Name => 'RoyaltyPaymentInformation', Format => 'string' },
261             # '060e2b34.0101.0101.02060300.00000000' => { Name => 'Income', Type => 'Node' },
262             '060e2b34.0101.0101.02060301.00000000' => { Name => 'RoyaltyIncomeInformation', Format => 'string' },
263             # '060e2b34.0101.0101.02070000.00000000' => { Name => 'AccessControl', Type => 'Node' },
264             '060e2b34.0101.0101.02070100.00000000' => { Name => 'RestrictionsonUse', Format => 'string' },
265             '060e2b34.0101.0101.02070200.00000000' => { Name => 'ExCCIData', Type => 'DataBlock', Unknown => 1 },
266             # '060e2b34.0101.0101.02080000.00000000' => { Name => 'Security', Type => 'Node' },
267             # '060e2b34.0101.0101.02080100.00000000' => { Name => 'SystemAccess', Type => 'Node' },
268             '060e2b34.0101.0101.02080101.00000000' => { Name => 'UserName', Format => 'string' },
269             '060e2b34.0101.0101.02080101.01000000' => { Name => 'UserName', Type => 'UTF-16' },
270             '060e2b34.0101.0101.02080102.00000000' => { Name => 'Password', Format => 'string' },
271             '060e2b34.0101.0101.02080102.01000000' => { Name => 'Password', Type => 'UTF-16' },
272             # '060e2b34.0101.0101.02090000.00000000' => { Name => 'Encryption', Type => 'Node' },
273             # '060e2b34.0101.0101.02090100.00000000' => { Name => 'FilmEncryption', Type => 'Node' },
274             # '060e2b34.0101.0101.02090101.00000000' => { Name => 'ScramblingKeys', Type => 'Node' },
275             '060e2b34.0101.0101.02090101.01000000' => { Name => 'ScramblingKeyKind', Format => 'string' },
276             '060e2b34.0101.0101.02090101.02000000' => { Name => 'ScramblingKeyValue', Format => 'int8u' },
277             # '060e2b34.0101.0101.02100000.00000000' => { Name => 'PublicationOutlet', Type => 'Node' },
278             # '060e2b34.0101.0101.02100100.00000000' => { Name => 'Broadcast', Type => 'Node' },
279             # '060e2b34.0101.0101.02100101.00000000' => { Name => 'Broadcaster', Type => 'Node' },
280             '060e2b34.0101.0101.02100101.01000000' => { Name => 'BroadcastOrganizationName', Format => 'string' },
281             '060e2b34.0101.0101.02100101.02000000' => { Name => 'BroadcastChannel', Format => 'string' },
282             '060e2b34.0101.0101.02100101.03000000' => { Name => 'BroadcastMediumKind', Format => 'string' },
283             '060e2b34.0101.0101.02100101.05000000' => { Name => 'BroadcastRegion', Format => 'string' },
284             # '060e2b34.0101.0101.02200000.00000000' => { Name => 'BroadcastAndRepeatInformation', Type => 'Node' },
285             # '060e2b34.0101.0101.02200100.00000000' => { Name => 'BroadcastFlags', Type => 'Node' },
286             '060e2b34.0101.0101.02200101.00000000' => { Name => 'FirstBroadcastFlag', Type => 'Boolean' },
287             # '060e2b34.0101.0101.02200200.00000000' => { Name => 'RepeatNumbers', Type => 'Node' },
288             '060e2b34.0101.0101.02200201.00000000' => { Name => 'CurrentRepeatNumber', Format => 'int16u' },
289             '060e2b34.0101.0101.02200202.00000000' => { Name => 'PreviousRepeatNumber', Format => 'int16u' },
290             # '060e2b34.0101.0101.02200300.00000000' => { Name => 'Ratings', Type => 'Node' },
291             '060e2b34.0101.0101.02200301.00000000' => { Name => 'AudienceRating', Format => 'int32u' },
292             '060e2b34.0101.0101.02200302.00000000' => { Name => 'AudienceReach', Format => 'int32u' },
293             # '060e2b34.0101.0101.02300000.00000000' => { Name => 'ParticipatingParties', Type => 'Node' },
294             # '060e2b34.0101.0101.02300100.00000000' => { Name => 'IndividualsAndGroups', Type => 'Node' },
295             '060e2b34.0101.0101.02300101.00000000' => { Name => 'NatureOfPersonality', Format => 'string' },
296             # '060e2b34.0101.0101.02300102.00000000' => { Name => 'Production', Type => 'Node' },
297             '060e2b34.0101.0101.02300102.01000000' => { Name => 'ContributionStatus', Format => 'string' },
298             # '060e2b34.0101.0101.02300103.00000000' => { Name => 'SupportAndAdministrationDetails', Type => 'Node' },
299             '060e2b34.0101.0101.02300103.01000000' => { Name => 'SupportOrAdministrationStatus', Format => 'string' },
300             # '060e2b34.0101.0101.02300200.00000000' => { Name => 'OrganizationsAndPublicBodies', Type => 'Node' },
301             '060e2b34.0101.0101.02300201.00000000' => { Name => 'OrganizationKind', Format => 'string' },
302             # '060e2b34.0101.0101.02300202.00000000' => { Name => 'ProductionOrganizationOrPublicBody', Type => 'Node' },
303             '060e2b34.0101.0101.02300202.01000000' => { Name => 'ProductionOrganizationRole', Format => 'string' },
304             # '060e2b34.0101.0101.02300203.00000000' => { Name => 'SupportAndAdministrationOrganizationOrPublicBody', Type => 'Node' },
305             '060e2b34.0101.0101.02300203.01000000' => { Name => 'SupportOrganizationRole', Format => 'string' },
306             # '060e2b34.0101.0101.02300500.00000000' => { Name => 'JobFunctionInformation', Type => 'Node' },
307             '060e2b34.0101.0101.02300501.00000000' => { Name => 'JobFunctionName', Format => 'string' },
308             '060e2b34.0101.0101.02300502.00000000' => { Name => 'RoleName', Format => 'string' },
309             # '060e2b34.0101.0101.02300600.00000000' => { Name => 'ContactInformation', Type => 'Node' },
310             '060e2b34.0101.0101.02300601.00000000' => { Name => 'ContactKind', Format => 'string' },
311             '060e2b34.0101.0101.02300602.00000000' => { Name => 'ContactDepartmentName', Format => 'string' },
312             # '060e2b34.0101.0101.02300603.00000000' => { Name => 'PersonOrOrganizationDetails', Type => 'Node' },
313             # '060e2b34.0101.0101.02300603.01000000' => { Name => 'PersonNames', Type => 'Node' },
314             '060e2b34.0101.0101.02300603.01010000' => { Name => 'FamilyName', Format => 'string' },
315             '060e2b34.0101.0101.02300603.01020000' => { Name => 'FirstGivenName', Format => 'string' },
316             '060e2b34.0101.0101.02300603.01030000' => { Name => 'SecondGivenName', Format => 'string' },
317             '060e2b34.0101.0101.02300603.01040000' => { Name => 'ThirdGivenName', Format => 'string' },
318             # '060e2b34.0101.0101.02300603.02000000' => { Name => 'GroupNames', Type => 'Node' },
319             '060e2b34.0101.0101.02300603.02010000' => { Name => 'MainName', Format => 'string' },
320             '060e2b34.0101.0101.02300603.02020000' => { Name => 'SupplementaryName', Format => 'string' },
321             # '060e2b34.0101.0101.02300603.03000000' => { Name => 'OrganizationNames', Type => 'Node' },
322             '060e2b34.0101.0101.02300603.03010000' => { Name => 'OrganizationMainName', Format => 'string' },
323             '060e2b34.0101.0101.02300603.03020000' => { Name => 'SupplementaryOrganizationName', Format => 'string' },
324             # '060e2b34.0101.0101.03000000.00000000' => { Name => 'Interpretive', Type => 'Node' },
325             # '060e2b34.0101.0101.03010000.00000000' => { Name => 'Fundamental', Type => 'Node' },
326             # '060e2b34.0101.0101.03010100.00000000' => { Name => 'CountriesAndLanguages', Type => 'Node' },
327             # '060e2b34.0101.0101.03010101.00000000' => { Name => 'CountryAndRegionCodes', Type => 'Node' },
328             '060e2b34.0101.0101.03010101.01000000' => { Name => 'ISO3166CountryCode', Format => 'string' },
329             # '060e2b34.0101.0101.03010102.00000000' => { Name => 'LanguageCodes', Type => 'Node' },
330             '060e2b34.0101.0101.03010102.01000000' => { Name => 'ISO639-1LanguageCode', Format => 'string' },
331             # '060e2b34.0101.0101.03010201.00000000' => { Name => 'SystemInterpretations', Type => 'Node' },
332             '060e2b34.0101.0101.03010201.01000000' => { Name => 'OperatingSystemInterpretations', Format => 'int8u' },
333             '060e2b34.0101.0101.03010201.02000000' => {
334             Name => 'ByteOrder', #PH (was int16s, but I have seen "II")
335             Format => 'string',
336             PrintConv => {
337             II => 'Little-endian (Intel, II)',
338             MM => 'Big-endian (Motorola, MM)',
339             },
340             },
341             '060e2b34.0101.0101.03010201.03000000' => { Name => 'EssenceIsIdentified', Type => 'Boolean' },
342             # '060e2b34.0101.0101.03010300.00000000' => { Name => 'FundamentalDimensions', Type => 'Node' },
343             # '060e2b34.0101.0101.03010301.00000000' => { Name => 'Length', Type => 'Node' },
344             '060e2b34.0101.0101.03010301.01000000' => { Name => 'LengthSystemName', Format => 'string' },
345             '060e2b34.0101.0101.03010301.02000000' => { Name => 'LengthUnitKind', Format => 'string' },
346             # '060e2b34.0101.0101.03010302.00000000' => { Name => 'Angles', Type => 'Node' },
347             '060e2b34.0101.0101.03010302.01000000' => { Name => 'AngularUnitKind', Format => 'string' },
348             # '060e2b34.0101.0101.03010303.00000000' => { Name => 'Time', Type => 'Node' },
349             '060e2b34.0101.0101.03010303.01000000' => { Name => 'TimeSystemOffset', Format => 'string' },
350             '060e2b34.0101.0101.03010303.02000000' => { Name => 'TimeUnitKind', Format => 'string' },
351             # '060e2b34.0101.0101.03010304.00000000' => { Name => 'Mass', Type => 'Node' },
352             # '060e2b34.0101.0101.03010305.00000000' => { Name => 'Energy', Type => 'Node' },
353             # '060e2b34.0101.0101.03020000.00000000' => { Name => 'HumanAssignedDescriptors', Type => 'Node' },
354             # '060e2b34.0101.0101.03020100.00000000' => { Name => 'Categorization', Type => 'Node' },
355             # '060e2b34.0101.0101.03020101.00000000' => { Name => 'ContentClassification', Type => 'Node' },
356             '060e2b34.0101.0101.03020101.01000000' => { Name => 'ContentCodingSystem', Format => 'string' },
357             '060e2b34.0101.0101.03020101.02000000' => { Name => 'ProgramKind', Format => 'string' },
358             '060e2b34.0101.0101.03020101.03000000' => { Name => 'Genre', Format => 'string' },
359             '060e2b34.0101.0101.03020101.04000000' => { Name => 'TargetAudience', Format => 'string' },
360             # '060e2b34.0101.0101.03020102.00000000' => { Name => 'CatalogingAndIndexing', Type => 'Node' },
361             '060e2b34.0101.0101.03020102.01000000' => { Name => 'CatalogDataStatus', Format => 'string' },
362             '060e2b34.0101.0101.03020102.02000000' => { Name => 'ThesaurusName', Format => 'string' },
363             '060e2b34.0101.0101.03020102.03000000' => { Name => 'Theme', Format => 'string' },
364             '060e2b34.0101.0101.03020102.04000000' => { Name => 'ContentClassification', Format => 'string' },
365             '060e2b34.0101.0101.03020102.05000000' => { Name => 'Keywords', Format => 'string' },
366             '060e2b34.0101.0101.03020102.06000000' => { Name => 'KeyFrames', Format => 'string' },
367             '060e2b34.0101.0101.03020102.07000000' => { Name => 'KeySounds', Format => 'string' },
368             '060e2b34.0101.0101.03020102.08000000' => { Name => 'KeyData', Format => 'string' },
369             # '060e2b34.0101.0101.03020106.00000000' => { Name => 'TextualDescription', Type => 'Node' },
370             '060e2b34.0101.0101.03020106.01000000' => { Name => 'Abstract', Format => 'string' },
371             '060e2b34.0101.0101.03020106.02000000' => { Name => 'Purpose', Format => 'string' },
372             '060e2b34.0101.0101.03020106.03000000' => { Name => 'Description', Format => 'string' },
373             '060e2b34.0101.0101.03020106.04000000' => { Name => 'ColorDescriptor', Format => 'string' },
374             '060e2b34.0101.0101.03020106.05000000' => { Name => 'FormatDescriptor', Format => 'string' },
375             # '060e2b34.0101.0101.03020107.00000000' => { Name => 'Stratum', Type => 'Node' },
376             '060e2b34.0101.0101.03020107.01000000' => { Name => 'StratumKind', Format => 'string' },
377             # '060e2b34.0101.0101.03020200.00000000' => { Name => 'Assessments', Type => 'Node' },
378             # '060e2b34.0101.0101.03020201.00000000' => { Name => 'Awards', Type => 'Node' },
379             '060e2b34.0101.0101.03020201.01000000' => { Name => 'IndividualAwardName', Format => 'string' },
380             '060e2b34.0101.0101.03020201.02000000' => { Name => 'ProgramAwardName', Format => 'string' },
381             # '060e2b34.0101.0101.03020202.00000000' => { Name => 'QualitativeValues', Type => 'Node' },
382             '060e2b34.0101.0101.03020202.01000000' => { Name => 'AssetValue', Format => 'string' },
383             '060e2b34.0101.0101.03020202.02000000' => { Name => 'ContentValue', Format => 'string' },
384             '060e2b34.0101.0101.03020202.03000000' => { Name => 'CulturalValue', Format => 'string' },
385             '060e2b34.0101.0101.03020202.04000000' => { Name => 'AestheticValue', Format => 'string' },
386             '060e2b34.0101.0101.03020202.05000000' => { Name => 'HistoricalValue', Format => 'string' },
387             '060e2b34.0101.0101.03020202.06000000' => { Name => 'TechnicalValue', Format => 'string' },
388             '060e2b34.0101.0101.03020202.07000000' => { Name => 'OtherValues', Format => 'string' },
389             # '060e2b34.0101.0101.03020300.00000000' => { Name => 'TechnicalCommentsAndDescriptions', Type => 'Node' },
390             # '060e2b34.0101.0101.03020301.00000000' => { Name => 'ObjectCommentsAndDescriptions', Type => 'Node' },
391             # '060e2b34.0101.0101.03030000.00000000' => { Name => 'Machine-AssignedOrComputedDescriptions', Type => 'Node' },
392             # '060e2b34.0101.0101.03030100.00000000' => { Name => 'AutomatedCategorization', Type => 'Node' },
393             # '060e2b34.0101.0101.03030101.00000000' => { Name => 'AutomatedContentClassification', Type => 'Node' },
394             # '060e2b34.0101.0101.03030102.00000000' => { Name => 'AutomatedCatalogingAndIndexing', Type => 'Node' },
395             '060e2b34.0101.0101.03030102.01000000' => { Name => 'CatalogDataStatus', Format => 'string' },
396             '060e2b34.0101.0101.03030102.02000000' => { Name => 'CatalogingSystemName', Format => 'string' },
397             '060e2b34.0101.0101.03030102.06000000' => { Name => 'ComputedKeywords', Format => 'string' },
398             '060e2b34.0101.0101.03030102.07000000' => { Name => 'ComputedKeyFrames', Format => 'string' },
399             '060e2b34.0101.0101.03030102.08000000' => { Name => 'ComputedKeySounds', Format => 'string' },
400             '060e2b34.0101.0101.03030102.09000000' => { Name => 'ComputedKeyData', Format => 'string' },
401             # '060e2b34.0101.0101.03030106.00000000' => { Name => 'ComputedTextualDescription', Type => 'Node' },
402             # '060e2b34.0101.0101.03030107.00000000' => { Name => 'AutomatedStratum', Type => 'Node' },
403             '060e2b34.0101.0101.03030107.01000000' => { Name => 'ComputedStratumKind', Format => 'string' },
404             # '060e2b34.0101.0101.03030300.00000000' => { Name => 'ComputedTechnicalCommentsAndDescriptions', Type => 'Node' },
405             # '060e2b34.0101.0101.03030301.00000000' => { Name => 'ComputedObjectCommentsAndDescriptions', Type => 'Node' },
406             # '060e2b34.0101.0101.04000000.00000000' => { Name => 'PARAMETRIC', Type => 'Node' },
407             # '060e2b34.0101.0101.04010000.00000000' => { Name => 'VideoAndImageEssenceCharacteristics', Type => 'Node' },
408             # '060e2b34.0101.0101.04010100.00000000' => { Name => 'FundamentalImageCharacteristics', Type => 'Node' },
409             # '060e2b34.0101.0101.04010101.00000000' => { Name => 'AspectRatios', Type => 'Node' },
410             '060e2b34.0101.0101.04010101.01000000' => { Name => 'PresentationAspectRatio', Format => 'rational64s' },
411             '060e2b34.0101.0101.04010101.02000000' => { Name => 'CaptureAspectRatio', Format => 'string' },
412             # '060e2b34.0101.0101.04010200.00000000' => { Name => 'ImageSourceCharacteristics', Type => 'Node' },
413             # '060e2b34.0101.0101.04010201.00000000' => { Name => 'Opto-ElectronicFormulation', Type => 'Node' },
414             # '060e2b34.0101.0101.04010201.01000000' => { Name => 'TransferCharacteristics', Type => 'Node' },
415             '060e2b34.0101.0101.04010201.01010000' => { Name => 'CaptureGammaEquation', Format => 'string' },
416             '060e2b34.0101.0101.04010201.01010100' => { Name => 'CaptureGammaEquation', Format => 'rational64s' },
417             '060e2b34.0101.0101.04010201.01020000' => { Name => 'LumaEquation', Format => 'string' },
418             '060e2b34.0101.0101.04010201.01030000' => { Name => 'ColorimetryCode', Format => 'string' },
419             '060e2b34.0101.0101.04010201.01040000' => { Name => 'SignalFormCode', Format => 'string' },
420             # '060e2b34.0101.0101.04010300.00000000' => { Name => 'VideoAndImageScanningParameters', Type => 'Node' },
421             # '060e2b34.0101.0101.04010301.00000000' => { Name => 'TemporalParameters', Type => 'Node' },
422             '060e2b34.0101.0101.04010301.01000000' => { Name => 'ColorFieldCode', Format => 'int8u' },
423             '060e2b34.0101.0101.04010301.02000000' => { Name => 'FieldRate', Format => 'int16u' },
424             '060e2b34.0101.0101.04010301.03000000' => { Name => 'FrameRate', Format => 'int16u' },
425             '060e2b34.0101.0101.04010301.04000000' => { Name => 'FrameLayout', Format => 'int8u' },
426             '060e2b34.0101.0101.04010301.05000000' => { Name => 'SamplingStructureCode', Format => 'string' },
427             # '060e2b34.0101.0101.04010302.00000000' => { Name => 'VerticalParameters', Type => 'Node' },
428             '060e2b34.0101.0101.04010302.01000000' => { Name => 'TotalLinesperFrame', Format => 'int16u' },
429             '060e2b34.0101.0101.04010302.02000000' => { Name => 'ActiveLinesperFrame', Format => 'int16u' },
430             '060e2b34.0101.0101.04010302.03000000' => { Name => 'LeadingLines', Format => 'int32s' },
431             '060e2b34.0101.0101.04010302.04000000' => { Name => 'TrailingLines', Format => 'int32s' },
432             # '060e2b34.0101.0101.04010303.00000000' => { Name => 'HorizontalParameters', Type => 'Node' },
433             # '060e2b34.0101.0101.04010400.00000000' => { Name => 'AnalogVideoCodingCharacteristics', Type => 'Node' },
434             '060e2b34.0101.0101.04010401.00000000' => { Name => 'AnalogVideoSystemName', Format => 'string' },
435             # '060e2b34.0101.0101.04010500.00000000' => { Name => 'DigitalVideoAndImageCodingParameters', Type => 'Node' },
436             # '060e2b34.0101.0101.04010501.00000000' => { Name => 'DigitalVideoAndImageSamplingParameters', Type => 'Node' },
437             '060e2b34.0101.0101.04010501.01000000' => { Name => 'LuminanceSampleRate', Format => 'int8u' },
438             '060e2b34.0101.0101.04010501.02000000' => { Name => 'ActiveSamplesperLine', Format => 'int16u' },
439             '060e2b34.0101.0101.04010501.03000000' => { Name => 'TotalSamplesperLine', Format => 'int16u' },
440             '060e2b34.0101.0101.04010501.04000000' => { Name => 'SamplingHierarchyCode', Format => 'string' },
441             '060e2b34.0101.0101.04010501.05000000' => { Name => 'HorizontalSubsampling', Format => 'int32u' },
442             '060e2b34.0101.0101.04010501.06000000' => { Name => 'ColorSiting', Format => 'int8u' },
443             '060e2b34.0101.0101.04010501.07000000' => { Name => 'SampledHeight', Format => 'int32u' },
444             '060e2b34.0101.0101.04010501.08000000' => { Name => 'SampledWidth', Format => 'int32u' },
445             '060e2b34.0101.0101.04010501.09000000' => { Name => 'SampledXOffset', Format => 'int32s' },
446             '060e2b34.0101.0101.04010501.0a000000' => { Name => 'SampledYOffset', Format => 'int32s' },
447             '060e2b34.0101.0101.04010501.0b000000' => { Name => 'DisplayHeight', Format => 'int32u' },
448             '060e2b34.0101.0101.04010501.0c000000' => { Name => 'DisplayWidth', Format => 'int32u' },
449             '060e2b34.0101.0101.04010501.0d000000' => { Name => 'DisplayXOffset', Format => 'int32s' },
450             '060e2b34.0101.0101.04010501.0e000000' => { Name => 'DisplayYOffset', Format => 'int32s' },
451             '060e2b34.0101.0101.04010501.0f000000' => { Name => 'FilteringCode', Format => 'string' },
452             # '060e2b34.0101.0101.04010502.00000000' => { Name => 'DigitalVideoAndImageStorageParameters', Type => 'Node' },
453             '060e2b34.0101.0101.04010502.01000000' => { Name => 'ImageHeight', Format => 'int32u' }, # (renamed from StoredHeight)
454             '060e2b34.0101.0101.04010502.02000000' => { Name => 'ImageWidth', Format => 'int32u' }, # (renamed from StoredWidth)
455             # '060e2b34.0101.0101.04010503.00000000' => { Name => 'DigitalQuantizationAndLevelParameters', Type => 'Node' },
456             '060e2b34.0101.0101.04010503.01000000' => { Name => 'BitsPerPixel', Format => 'int8u' },
457             '060e2b34.0101.0101.04010503.02000000' => { Name => 'RoundingMethodCode', Format => 'string' },
458             '060e2b34.0101.0101.04010503.03000000' => { Name => 'BlackReferenceLevel', Format => 'int32u' },
459             '060e2b34.0101.0101.04010503.04000000' => { Name => 'WhiteReferenceLevel', Format => 'int32u' },
460             # '060e2b34.0101.0101.04010600.00000000' => { Name => 'DigitalVideoAndImageCompressionParameters', Type => 'Node' },
461             # '060e2b34.0101.0101.04010602.00000000' => { Name => 'MPEGCodingParameters', Type => 'Node' },
462             # '060e2b34.0101.0101.04010602.01000000' => { Name => 'MPEG-2CodingParameters', Type => 'Node' },
463             '060e2b34.0101.0101.04010602.01010000' => { Name => 'FieldFrameTypeCode', Format => 'string' },
464             # '060e2b34.0101.0101.04010800.00000000' => { Name => 'Film-to-VideoCharacteristics', Type => 'Node' },
465             # '060e2b34.0101.0101.04010801.00000000' => { Name => 'FilmPulldownCharacteristics', Type => 'Node' },
466             '060e2b34.0101.0101.04010801.01000000' => { Name => 'PulldownSequence', Type => 'PulldownKind', Unknown => 1 },
467             '060e2b34.0101.0101.04010801.02000000' => { Name => 'PulldownFieldDominance', Type => 'Boolean' },
468             '060e2b34.0101.0101.04010801.03000000' => { Name => 'VideoAndFilmFrameRelationship', Format => 'int8u' },
469             # '060e2b34.0101.0101.04010802.00000000' => { Name => 'FilmFrameRates', Type => 'Node' },
470             '060e2b34.0101.0101.04010802.01000000' => { Name => 'CaptureFilmFrameRate', Format => 'string' },
471             '060e2b34.0101.0101.04010802.02000000' => { Name => 'TransferFilmFrameRate', Format => 'string' },
472             # '060e2b34.0101.0101.04011000.00000000' => { Name => 'ImageTestParameters', Type => 'Node' },
473             # '060e2b34.0101.0101.04011001.00000000' => { Name => 'VideoTestParameters', Type => 'Node' },
474             '060e2b34.0101.0101.04011001.01000000' => { Name => 'VideoTestParameter', Format => 'string' },
475             '060e2b34.0101.0101.04011001.02000000' => { Name => 'VideoTestResult', Format => 'float' },
476             '060e2b34.0101.0101.04011001.03000000' => { Name => 'VideoTestResult', Format => 'int32u' },
477             # '060e2b34.0101.0101.04011002.00000000' => { Name => 'FilmTestParameters', Type => 'Node' },
478             '060e2b34.0101.0101.04011002.01000000' => { Name => 'FilmTestParameter', Format => 'string' },
479             '060e2b34.0101.0101.04011002.02000000' => { Name => 'FilmTestResult', Format => 'float' },
480             '060e2b34.0101.0101.04011002.03000000' => { Name => 'FilmTestResult', Type => 'SIMSBF', Unknown => 1, Groups => { 2 => 'Time' } },
481             # '060e2b34.0101.0101.04020000.00000000' => { Name => 'AudioEssenceCharacteristics', Type => 'Node' },
482             # '060e2b34.0101.0101.04020100.00000000' => { Name => 'FundamentalAudioCharacteristics', Type => 'Node' },
483             # '060e2b34.0101.0101.04020101.00000000' => { Name => 'AudioFormulation', Type => 'Node' },
484             '060e2b34.0101.0101.04020101.01000000' => { Name => 'ElectrospatialFormulation', Format => 'int8u', Groups => { 2 => 'Audio' } },
485             '060e2b34.0101.0101.04020101.02000000' => { Name => 'FilteringApplied', Format => 'string', Groups => { 2 => 'Audio' } },
486             '060e2b34.0101.0101.04020101.03000000' => { Name => 'AudioReferenceLevel', Format => 'int8s', Groups => { 2 => 'Audio' } },
487             # '060e2b34.0101.0101.04020101.10000000' => { Name => 'AudioMix', Type => 'Node' },
488             '060e2b34.0101.0101.04020101.10010000' => { Name => 'AudioMonoChannelCount', Format => 'int8u', Groups => { 2 => 'Audio' } },
489             '060e2b34.0101.0101.04020101.10020000' => { Name => 'AudioStereoChannelCount', Format => 'int8u', Groups => { 2 => 'Audio' } },
490             # '060e2b34.0101.0101.04020200.00000000' => { Name => 'AnalogAudioCodingParameters', Type => 'Node' },
491             '060e2b34.0101.0101.04020201.00000000' => { Name => 'AnalogSystem', Format => 'string', Groups => { 2 => 'Audio' } },
492             # '060e2b34.0101.0101.04020300.00000000' => { Name => 'DigitalAudioCodingParameters', Type => 'Node' },
493             # '060e2b34.0101.0101.04020301.00000000' => { Name => 'DigitalSamplingParameters', Type => 'Node' },
494             '060e2b34.0101.0101.04020301.01000000' => { Name => 'AudioSampleRate', Format => 'int8u', Groups => { 2 => 'Audio' } },
495             # '060e2b34.0101.0101.04020302.00000000' => { Name => 'DigitalAudioStorageParameters', Type => 'Node' },
496             # '060e2b34.0101.0101.04020303.00000000' => { Name => 'DigitalAudioQuantizationAndLevelParameters', Type => 'Node' },
497             '060e2b34.0101.0101.04020303.01000000' => { Name => 'BitsPerSample', Format => 'int8u', Groups => { 2 => 'Audio' } },
498             '060e2b34.0101.0101.04020303.02000000' => { Name => 'RoundingLaw', Format => 'string', Groups => { 2 => 'Audio' } },
499             '060e2b34.0101.0101.04020303.03000000' => { Name => 'Dither', Format => 'string', Groups => { 2 => 'Audio' } },
500             # '060e2b34.0101.0101.04020400.00000000' => { Name => 'DigitalAudioCompressionParameters', Type => 'Node' },
501             # '060e2b34.0101.0101.04020403.00000000' => { Name => 'MPEGAudioCodingParameters', Type => 'Node' },
502             # '060e2b34.0101.0101.04020403.01000000' => { Name => 'MPEG-1AudioCodingParameters', Type => 'Node' },
503             # '060e2b34.0101.0101.04020800.00000000' => { Name => 'FilmSoundSource', Type => 'Node' },
504             '060e2b34.0101.0101.04020801.00000000' => { Name => 'OpticalTrack', Format => 'string' },
505             '060e2b34.0101.0101.04020802.00000000' => { Name => 'MagneticTrack', Format => 'string' },
506             # '060e2b34.0101.0101.04021000.00000000' => { Name => 'AudioTestParameters', Type => 'Node' },
507             '060e2b34.0101.0101.04021001.00000000' => { Name => 'Signal-to-NoiseRatio', Format => 'float', Groups => { 2 => 'Audio' } },
508             '060e2b34.0101.0101.04021002.00000000' => { Name => 'Weighting', Format => 'string', Groups => { 2 => 'Audio' } },
509             # '060e2b34.0101.0101.04030000.00000000' => { Name => 'DataEssenceCharacteristics', Type => 'Node' },
510             # '060e2b34.0101.0101.04030100.00000000' => { Name => 'FundamentalDataEssenceParameters', Type => 'Node' },
511             # '060e2b34.0101.0101.04030200.00000000' => { Name => 'AnalogDataEssenceCodingParameters', Type => 'Node' },
512             '060e2b34.0101.0101.04030201.00000000' => { Name => 'AnalogDataCodingKind', Format => 'string' },
513             # '060e2b34.0101.0101.04030300.00000000' => { Name => 'DigitalDataEssenceCodingParameters', Type => 'Node' },
514             # '060e2b34.0101.0101.04031000.00000000' => { Name => 'DataEssenceTestParameters', Type => 'Node' },
515             # '060e2b34.0101.0101.04040000.00000000' => { Name => 'MetadataCharacteristics', Type => 'Node' },
516             # '060e2b34.0101.0101.04040100.00000000' => { Name => 'FundamentalMetadataCharacteristics', Type => 'Node' },
517             # '060e2b34.0101.0101.04040101.00000000' => { Name => 'TimecodeCharacteristics', Type => 'Node' },
518             '060e2b34.0101.0101.04040101.01000000' => { Name => 'TimecodeKind', Format => 'string' },
519             '060e2b34.0101.0101.04040101.02000000' => { Name => 'TimecodeTimebase', Format => 'int8u' },
520             '060e2b34.0101.0101.04040101.03000000' => { Name => 'TimecodeUserBitsFlag', Type => 'Boolean' },
521             '060e2b34.0101.0101.04040101.04000000' => { Name => 'IncludeSync', Type => 'Boolean' },
522             '060e2b34.0101.0101.04040101.05000000' => { Name => 'DropFrame', Type => 'Boolean' },
523             # '060e2b34.0101.0101.04040200.00000000' => { Name => 'AnalogMetadataCodingCharacteristics', Type => 'Node' },
524             '060e2b34.0101.0101.04040201.00000000' => { Name => 'TimecodeSourceKind', Format => 'int8u' },
525             '060e2b34.0101.0101.04040202.00000000' => { Name => 'AnalogMetadataCarrier', Format => 'string' },
526             # '060e2b34.0101.0101.04040300.00000000' => { Name => 'DigitalMetadataCodingCharacteristics', Type => 'Node' },
527             '060e2b34.0101.0101.04040301.00000000' => { Name => 'DigitalMetadataCarrier', Format => 'string' },
528             # '060e2b34.0101.0101.04041000.00000000' => { Name => 'MetadataTestParameters', Type => 'Node' },
529             # '060e2b34.0101.0101.04050000.00000000' => { Name => 'MonitoringAndControlCharacteristics', Type => 'Node' },
530             # '060e2b34.0101.0101.04050100.00000000' => { Name => 'FundamentalMonitoringAndControlCharacteristics', Type => 'Node' },
531             # '060e2b34.0101.0101.04050200.00000000' => { Name => 'AnalogMonitoringAndControlCodingCharacteristics', Type => 'Node' },
532             '060e2b34.0101.0101.04050201.00000000' => { Name => 'AnalogMonitoringAndControlCodingKind', Format => 'string' },
533             # '060e2b34.0101.0101.04050300.00000000' => { Name => 'DigitalMonitoringAndControlCodingParameters', Type => 'Node' },
534             # '060e2b34.0101.0101.04050301.00000000' => { Name => 'DigitalMonitoringAndControlSamplingParameters', Type => 'Node' },
535             # '060e2b34.0101.0101.04051000.00000000' => { Name => 'MonitoringAndControlTestParameters', Type => 'Node' },
536             # '060e2b34.0101.0101.04060000.00000000' => { Name => 'GeneralCodingCharacteristics', Type => 'Node' },
537             # '060e2b34.0101.0101.04060100.00000000' => { Name => 'GeneralEssenceCodingCharacteristics', Type => 'Node' },
538             '060e2b34.0101.0101.04060101.00000000' => { Name => 'SampleRate', Format => 'rational64s' },
539             '060e2b34.0101.0101.04060102.00000000' => { Name => 'EssenceLength', Type => 'Length', %duration },
540             # '060e2b34.0101.0101.04080000.00000000' => { Name => 'ObjectCharacteristics', Type => 'Node' },
541             # '060e2b34.0101.0101.04100000.00000000' => { Name => 'MediumCharacteristics', Type => 'Node' },
542             # '060e2b34.0101.0101.04100100.00000000' => { Name => 'StorageMediumParameters', Type => 'Node' },
543             # '060e2b34.0101.0101.04100101.00000000' => { Name => 'TapeMediumParameters', Type => 'Node' },
544             # '060e2b34.0101.0101.04100102.00000000' => { Name => 'DiscMediumParameters', Type => 'Node' },
545             # '060e2b34.0101.0101.04100103.00000000' => { Name => 'FilmMediumParameters', Type => 'Node' },
546             # '060e2b34.0101.0101.04100103.01000000' => { Name => 'GenericFilmMediumParameters', Type => 'Node' },
547             '060e2b34.0101.0101.04100103.01010000' => { Name => 'FilmColorProcess', Format => 'string' },
548             '060e2b34.0101.0101.04100103.01020000' => { Name => 'EdgeCodeFormat', Type => 'EdgeType', Unknown => 1 },
549             '060e2b34.0101.0101.04100103.01040000' => { Name => 'FilmFormatName', Format => 'string' },
550             '060e2b34.0101.0101.04100103.01050000' => { Name => 'FilmStockKind', Format => 'string' },
551             '060e2b34.0101.0101.04100103.01060000' => { Name => 'FilmStockManufacturerName', Format => 'string' },
552             # '060e2b34.0101.0101.04100103.02000000' => { Name => 'SpecificFilmMediumParameters', Type => 'Node' },
553             '060e2b34.0101.0101.04100103.02010000' => { Name => 'PhysicalMediaLength', Type => 'UIMSBF', Unknown => 1, Groups => { 2 => 'Time' } },
554             '060e2b34.0101.0101.04100103.02020000' => { Name => 'FilmCaptureAperture', Format => 'string' },
555             # '060e2b34.0101.0101.04200000.00000000' => { Name => 'DeviceCharacteristics', Type => 'Node' },
556             # '060e2b34.0101.0101.04200100.00000000' => { Name => 'CameraCharacteristics', Type => 'Node' },
557             # '060e2b34.0101.0101.04200101.00000000' => { Name => 'ImageCharacteristics', Type => 'Node' },
558             '060e2b34.0101.0101.04200101.01000000' => { Name => 'ImageCategory', Format => 'string' },
559             # '060e2b34.0101.0101.04200102.01000000' => { Name => 'ImageDevices', Type => 'Node' },
560             '060e2b34.0101.0101.04200102.01010000' => { Name => 'ImageSourceDeviceKind', Format => 'string' },
561             # '060e2b34.0101.0101.04200200.00000000' => { Name => 'OpticalCharacteristics', Type => 'Node' },
562             # '060e2b34.0101.0101.04200201.00000000' => { Name => 'OpticalTestParameters', Type => 'Node' },
563             # '060e2b34.0101.0101.04200201.01000000' => { Name => 'OpticalDeviceParameters', Type => 'Node' },
564             '060e2b34.0101.0101.04200201.01010000' => { Name => 'OpticalTestParameterName', Format => 'string' },
565             '060e2b34.0101.0101.04200201.01020000' => { Name => 'OpticalTestResult', Format => 'float' },
566             '060e2b34.0101.0101.04200201.01030000' => { Name => 'OpticalTestResult', Format => 'int32s' },
567             # '060e2b34.0101.0101.04200300.00000000' => { Name => 'MicrophoneCharacteristics', Type => 'Node' },
568             '060e2b34.0101.0101.04200301.00000000' => { Name => 'SensorType', Format => 'string' },
569             '060e2b34.0101.0101.04200302.00000000' => { Name => 'PolarCharacteristic', Format => 'string' },
570             # '060e2b34.0101.0101.05000000.00000000' => { Name => 'PROCESS', Type => 'Node' },
571             # '060e2b34.0101.0101.05010000.00000000' => { Name => 'GeneralProcessIndicators', Type => 'Node' },
572             # '060e2b34.0101.0101.05010100.00000000' => { Name => 'ProcessFundamentals', Type => 'Node' },
573             '060e2b34.0101.0101.05010101.00000000' => { Name => 'IntegrationIndication', Format => 'string' },
574             '060e2b34.0101.0101.05010102.00000000' => { Name => 'EventIndication', Format => 'string' },
575             '060e2b34.0101.0101.05010103.00000000' => { Name => 'QualityFlag', Type => 'Boolean' },
576             '060e2b34.0101.0101.05010105.00000000' => { Name => 'PhysicalInstanceKind', Format => 'string' },
577             # '060e2b34.0101.0101.05010200.00000000' => { Name => 'ContentCapture', Type => 'Node' },
578             '060e2b34.0101.0101.05010201.00000000' => { Name => 'DigitalOrAnalogOrigination', Format => 'string' },
579             # '060e2b34.0101.0101.05010202.00000000' => { Name => 'VideoOrImageCaptureProcess', Type => 'Node' },
580             # '060e2b34.0101.0101.05010203.00000000' => { Name => 'FilmCaptureProcess', Type => 'Node' },
581             # '060e2b34.0101.0101.05010204.00000000' => { Name => 'AudioCaptureProcess', Type => 'Node' },
582             '060e2b34.0101.0101.05010204.01000000' => { Name => 'MicrophonePlacementTechniques', Format => 'string', Groups => { 2 => 'Audio' } },
583             # '060e2b34.0101.0101.05010205.00000000' => { Name => 'DataCaptureProcess', Type => 'Node' },
584             # '060e2b34.0101.0101.05010300.00000000' => { Name => 'Manipulation', Type => 'Node' },
585             '060e2b34.0101.0101.05010301.00000000' => { Name => 'SimpleFlaggingCount', Format => 'int16u' },
586             '060e2b34.0101.0101.05010302.00000000' => { Name => 'CopyCount', Format => 'int8u' },
587             '060e2b34.0101.0101.05010303.00000000' => { Name => 'CloneCount', Format => 'int8u' },
588             '060e2b34.0101.0101.05010304.00000000' => { Name => 'Work-in-ProgressFlag', Type => 'Boolean' },
589             # '060e2b34.0101.0101.05020000.00000000' => { Name => 'CompressionProcessing', Type => 'Node' },
590             # '060e2b34.0101.0101.05020100.00000000' => { Name => 'VideoOrImageCompression', Type => 'Node' },
591             '060e2b34.0101.0101.05020101.00000000' => { Name => 'VideoOrImageCompressionAlgorithm', Format => 'string' },
592             # '060e2b34.0101.0101.05020102.00000000' => { Name => 'MPEGProcessing', Type => 'Node' },
593             # '060e2b34.0101.0101.05020102.01000000' => { Name => 'MPEG-2Processing', Type => 'Node' },
594             '060e2b34.0101.0101.05020102.01010000' => { Name => 'SplicingMetadata', Unknown => 1 },
595             # '060e2b34.0101.0101.05020200.00000000' => { Name => 'AudioCompression', Type => 'Node' },
596             '060e2b34.0101.0101.05020201.00000000' => { Name => 'AudioCompressionAlgorithm', Format => 'string', Groups => { 2 => 'Audio' } },
597             # '060e2b34.0101.0101.05020300.00000000' => { Name => 'DataEssenceCompression', Type => 'Node' },
598             # '060e2b34.0101.0101.05020400.00000000' => { Name => 'MetadataCompression', Type => 'Node' },
599             # '060e2b34.0101.0101.05030000.00000000' => { Name => 'NoiseReductionProcessing', Type => 'Node' },
600             # '060e2b34.0101.0101.05030100.00000000' => { Name => 'VideoNoiseReduction', Type => 'Node' },
601             '060e2b34.0101.0101.05030101.00000000' => { Name => 'VideoNoiseReductionAlgorithm', Format => 'string' },
602             # '060e2b34.0101.0101.05030200.00000000' => { Name => 'AudioNoiseReduction', Type => 'Node' },
603             '060e2b34.0101.0101.05030201.00000000' => { Name => 'AudioNoiseReductionAlgorithm', Format => 'string', Groups => { 2 => 'Audio' } },
604             # '060e2b34.0101.0101.05200000.00000000' => { Name => 'EnhancementOrModification', Type => 'Node' },
605             # '060e2b34.0101.0101.05200100.00000000' => { Name => 'ImageEssenceProcessing', Type => 'Node' },
606             '060e2b34.0101.0101.05200101.00000000' => { Name => 'EnhancementOrModificationDescription', Format => 'string' },
607             # '060e2b34.0101.0101.05200200.00000000' => { Name => 'VideoProcessOrSettings', Type => 'Node' },
608             '060e2b34.0101.0101.05200201.00000000' => { Name => 'VideoDeviceKind', Format => 'string' },
609             '060e2b34.0101.0101.05200202.00000000' => { Name => 'VideoDeviceParameterName', Format => 'string' },
610             '060e2b34.0101.0101.05200203.00000000' => { Name => 'VideoDeviceParameterSetting', Format => 'string' },
611             # '060e2b34.0101.0101.05200300.00000000' => { Name => 'AudioEssenceProcessing', Type => 'Node' },
612             '060e2b34.0101.0101.05200301.00000000' => { Name => 'AudioEnhancementOrModificationDescription', Format => 'string', Groups => { 2 => 'Audio' } },
613             '060e2b34.0101.0101.05200302.00000000' => { Name => 'AudioFirstMix-DownProcess', Format => 'string', Groups => { 2 => 'Audio' } },
614             # '060e2b34.0101.0101.05200400.00000000' => { Name => 'AudioProcessorSettings', Type => 'Node' },
615             '060e2b34.0101.0101.05200401.00000000' => { Name => 'AudioDeviceKind', Format => 'string', Groups => { 2 => 'Audio' } },
616             '060e2b34.0101.0101.05200402.00000000' => { Name => 'AudioDeviceParameter', Format => 'string', Groups => { 2 => 'Audio' } },
617             '060e2b34.0101.0101.05200403.00000000' => { Name => 'AudioDeviceParameterSetting', Format => 'string', Groups => { 2 => 'Audio' } },
618             # '060e2b34.0101.0101.05200500.00000000' => { Name => 'DataEssenceProcessing', Type => 'Node' },
619             '060e2b34.0101.0101.05200501.00000000' => { Name => 'DataEnhancementOrModificationDescription', Format => 'string' },
620             # '060e2b34.0101.0101.05200600.00000000' => { Name => 'DataProcessorSettings', Type => 'Node' },
621             '060e2b34.0101.0101.05200601.00000000' => { Name => 'DataDeviceKind', Format => 'string' },
622             '060e2b34.0101.0101.05200602.00000000' => { Name => 'DataDeviceParameterName', Format => 'string' },
623             '060e2b34.0101.0101.05200603.00000000' => { Name => 'DataDeviceParameterSetting', Format => 'string' },
624             # '060e2b34.0101.0101.05200700.00000000' => { Name => 'MetadataProcessing', Type => 'Node' },
625             # '060e2b34.0101.0101.05200800.00000000' => { Name => 'MetadataProcessorSettings', Type => 'Node' },
626             # '060e2b34.0101.0101.05300000.00000000' => { Name => 'EditingInformation', Type => 'Node' },
627             # '060e2b34.0101.0101.05300100.00000000' => { Name => 'EditingVersionInformation', Type => 'Node' },
628             # '060e2b34.0101.0101.05300200.00000000' => { Name => 'EditingDecisionInformation', Type => 'Node' },
629             '060e2b34.0101.0101.05300201.00000000' => { Name => 'DefaultFadeType', Type => 'FadeType', Unknown => 1 },
630             # '060e2b34.0101.0101.05300300.00000000' => { Name => 'EditingMatteInformation', Type => 'Node' },
631             # '060e2b34.0101.0101.05300400.00000000' => { Name => 'EditingEventInformation', Type => 'Node' },
632             '060e2b34.0101.0101.05300401.00000000' => { Name => 'ActiveState', Type => 'Boolean' },
633             # '060e2b34.0101.0101.05300500.00000000' => { Name => 'EditingEffectInformation', Type => 'Node' },
634             '060e2b34.0101.0101.05300501.00000000' => { Name => 'Fade-InType', Type => 'FadeType', Unknown => 1 },
635             '060e2b34.0101.0101.05300502.00000000' => { Name => 'Fade-OutType', Type => 'FadeType', Unknown => 1 },
636             '060e2b34.0101.0101.05300503.00000000' => { Name => 'SpeedChangeEffectFlag', Type => 'Boolean' },
637             '060e2b34.0101.0101.05300504.00000000' => { Name => 'InputSegmentCount', Format => 'int32s' },
638             '060e2b34.0101.0101.05300505.00000000' => { Name => 'Bypass', Format => 'int32u' },
639             # '060e2b34.0101.0101.05300600.00000000' => { Name => 'EditingWebInformation', Type => 'Node' },
640             # '060e2b34.0101.0101.05300700.00000000' => { Name => 'EditingUserNotes', Type => 'Node' },
641             # '060e2b34.0101.0101.05400000.00000000' => { Name => 'ProcessingHistory', Type => 'Node' },
642             # '060e2b34.0101.0101.05400100.00000000' => { Name => 'VideoCompressionHistory', Type => 'Node' },
643             '060e2b34.0101.0101.05400101.00000000' => { Name => 'VideoCompressionAlgorithm', Format => 'string' },
644             '060e2b34.0101.0101.05400102.00000000' => { Name => 'MPEGVideoRecodingDataset', Unknown => 1 },
645             # '060e2b34.0101.0101.05400200.00000000' => { Name => 'AudioCompressionHistory', Type => 'Node' },
646             '060e2b34.0101.0101.05400201.00000000' => { Name => 'UpstreamAudioCompressionAlgorithm', Format => 'string', Groups => { 2 => 'Audio' } },
647             '060e2b34.0101.0101.05400202.00000000' => { Name => 'MPEGAudioRecodingDataset', Unknown => 1, Groups => { 2 => 'Audio' } },
648             # '060e2b34.0101.0101.05400300.00000000' => { Name => 'DataCompressionHistory', Type => 'Node' },
649             # '060e2b34.0101.0101.05400400.00000000' => { Name => 'MetadataCompressionHistory', Type => 'Node' },
650             # '060e2b34.0101.0101.06000000.00000000' => { Name => 'RELATIONAL', Type => 'Node' },
651             # '060e2b34.0101.0101.06010000.00000000' => { Name => 'GenericRelationships', Type => 'Node' },
652             # '060e2b34.0101.0101.06010100.00000000' => { Name => 'EssenceAndMetadataRelationships', Type => 'Node' },
653             # '060e2b34.0101.0101.06010101.00000000' => { Name => 'EssenceToEssenceRelationships', Type => 'Node' },
654             # '060e2b34.0101.0101.06010102.00000000' => { Name => 'MetadataToEssenceRelationships', Type => 'Node' },
655             # '060e2b34.0101.0101.06010103.00000000' => { Name => 'MetadataToMetadataRelationships', Type => 'Node' },
656             # '060e2b34.0101.0101.06010104.00000000' => { Name => 'ObjectToObjectRelationships', Type => 'Node' },
657             # '060e2b34.0101.0101.06010105.00000000' => { Name => 'MetadataToObjectRelationships', Type => 'Node' },
658             # '060e2b34.0101.0101.06020000.00000000' => { Name => 'RelatedProductionMaterial', Type => 'Node' },
659             '060e2b34.0101.0101.06020100.00000000' => { Name => 'ProgramSupportMaterialReference', Format => 'string' },
660             '060e2b34.0101.0101.06020200.00000000' => { Name => 'AdvertisingMaterialReference', Format => 'string' },
661             '060e2b34.0101.0101.06020300.00000000' => { Name => 'ProgramCommercialMaterialReference', Format => 'string' },
662             # '060e2b34.0101.0101.06080000.00000000' => { Name => 'StreamAndStorageRelationships', Type => 'Node' },
663             # '060e2b34.0101.0101.06080100.00000000' => { Name => 'StreamRelationships', Type => 'Node' },
664             # '060e2b34.0101.0101.06080200.00000000' => { Name => 'StorageRelationships', Type => 'Node' },
665             '060e2b34.0101.0101.06080201.00000000' => { Name => 'ContiguousDataFlag', Type => 'Boolean' },
666             # '060e2b34.0101.0101.06100000.00000000' => { Name => 'NumericalSequence', Type => 'Node' },
667             '060e2b34.0101.0101.06100100.00000000' => { Name => 'PositionInSequence', Format => 'int32u' },
668             '060e2b34.0101.0101.06100200.00000000' => { Name => 'RelativePositionInSequenceOffset', Format => 'int32s' },
669             '060e2b34.0101.0101.06100300.00000000' => { Name => 'RelativePositionInSequenceName', Format => 'string' },
670             # '060e2b34.0101.0101.07000000.00000000' => { Name => 'SPATIO-TEMPORAL', Type => 'Node' },
671             # '060e2b34.0101.0101.07010000.00000000' => { Name => 'PositionAndSpaceVectors', Type => 'Node' },
672             # '060e2b34.0101.0101.07010100.00000000' => { Name => 'PositionalSystemInformation', Type => 'Node' },
673             '060e2b34.0101.0101.07010101.00000000' => { Name => 'ImageCoordinateSystem', Format => 'string' },
674             '060e2b34.0101.0101.07010102.00000000' => { Name => 'MapDatumUsed', Format => 'string' },
675             # '060e2b34.0101.0101.07010200.00000000' => { Name => 'PositionalInformation', Type => 'Node' },
676             # '060e2b34.0101.0101.07010201.00000000' => { Name => 'AbsolutePosition', Type => 'Node' },
677             # '060e2b34.0101.0101.07010201.01000000' => { Name => 'LocalDatumAbsolutePosition', Type => 'Node' },
678             '060e2b34.0101.0101.07010201.01010000' => { Name => 'LocalDatumAbsolutePositionAccuracy', Format => 'float' },
679             # '060e2b34.0101.0101.07010201.02000000' => { Name => 'DeviceAbsolutePosition', Type => 'Node' },
680             '060e2b34.0101.0101.07010201.02010000' => { Name => 'DeviceAbsolutePositionalAccuracy', Format => 'float' },
681             '060e2b34.0101.0101.07010201.02020000' => { Name => 'DeviceAltitude', Format => 'float', Groups => { 2 => 'Location' }, PrintConv => '$val m' },
682             '060e2b34.0101.0101.07010201.02020100' => { Name => 'DeviceAltitude', Type => 'Alt', Groups => { 2 => 'Location' }, PrintConv => '$val m' },
683             '060e2b34.0101.0101.07010201.02040000' => { Name => 'DeviceLatitude', Format => 'float', %geoLat },
684             '060e2b34.0101.0101.07010201.02040100' => { Name => 'DeviceLatitude', Type => 'Lat', %geoLat },
685             '060e2b34.0101.0101.07010201.02060000' => { Name => 'DeviceLongitude', Format => 'float', %geoLon },
686             '060e2b34.0101.0101.07010201.02060100' => { Name => 'DeviceLongitude', Type => 'Lon', %geoLon },
687             '060e2b34.0101.0101.07010201.02100000' => { Name => 'DeviceXDimension', Format => 'float' },
688             '060e2b34.0101.0101.07010201.02110000' => { Name => 'DeviceYDimension', Format => 'float' },
689             # '060e2b34.0101.0101.07010201.03000000' => { Name => 'SubjectAbsolutePosition', Type => 'Node' },
690             '060e2b34.0101.0101.07010201.03010000' => { Name => 'FramePositionalAccuracy', Format => 'float' },
691             '060e2b34.0101.0101.07010201.03020000' => { Name => 'FrameCenterLatitude', Format => 'double', %geoLat },
692             '060e2b34.0101.0101.07010201.03030000' => { Name => 'FrameCenterLatitude', Format => 'string', %geoLat, ValueConv => \&ConvLatLon },
693             '060e2b34.0101.0101.07010201.03040000' => { Name => 'FrameCenterLongitude', Format => 'double', %geoLon },
694             '060e2b34.0101.0101.07010201.03050000' => { Name => 'FrameCenterLongitude', Format => 'string', %geoLon, ValueConv => \&ConvLatLon },
695             '060e2b34.0101.0101.07010201.03060000' => { Name => 'FrameCenterLatitudeLongitude', Format => 'string', %geoLatLon, ValueConv => \&ConvLatLon },
696             # '060e2b34.0101.0101.07010202.00000000' => { Name => 'RelativePosition', Type => 'Node' },
697             # '060e2b34.0101.0101.07010202.01000000' => { Name => 'LocalDatumRelativePosition', Type => 'Node' },
698             '060e2b34.0101.0101.07010202.01010000' => { Name => 'LocalDatumRelativePositionAccuracy', Format => 'float' },
699             # '060e2b34.0101.0101.07010202.02000000' => { Name => 'DeviceRelativePosition', Type => 'Node' },
700             '060e2b34.0101.0101.07010202.02010000' => { Name => 'DeviceRelativePositionalAccuracy', Format => 'float' },
701             '060e2b34.0101.0101.07010202.02020000' => { Name => 'DeviceRelativePositionX', Format => 'float' },
702             '060e2b34.0101.0101.07010202.02030000' => { Name => 'DeviceRelativePositionY', Format => 'float' },
703             '060e2b34.0101.0101.07010202.02040000' => { Name => 'DeviceRelativePositionZ', Format => 'float' },
704             # '060e2b34.0101.0101.07010202.03000000' => { Name => 'SubjectRelativePosition', Type => 'Node' },
705             '060e2b34.0101.0101.07010202.03010000' => { Name => 'SubjectRelativePositionalAccuracy', Format => 'float' },
706             # '060e2b34.0101.0101.07010203.00000000' => { Name => 'ImagePositionalInformation', Type => 'Node' },
707             '060e2b34.0101.0101.07010203.01000000' => { Name => 'PositionWithinViewportImageXCoordinate', Format => 'int16s' },
708             '060e2b34.0101.0101.07010203.02000000' => { Name => 'PositionWithinViewportImageYCoordinate', Format => 'int16s' },
709             '060e2b34.0101.0101.07010203.03000000' => { Name => 'SourceImageCenterXCoordinate', Format => 'int16s' },
710             '060e2b34.0101.0101.07010203.04000000' => { Name => 'SourceImageCenterYCoordinate', Format => 'int16s' },
711             '060e2b34.0101.0101.07010203.05000000' => { Name => 'ViewportImageCenterCCoordinate', Format => 'int16s' },
712             '060e2b34.0101.0101.07010203.06000000' => { Name => 'ViewportImageCenterYCoordinate', Format => 'int16s' },
713             # '060e2b34.0101.0101.07010300.00000000' => { Name => 'RateAndDirectionOfPositionalChange', Type => 'Node' },
714             # '060e2b34.0101.0101.07010301.00000000' => { Name => 'AbsoluteRateAndDirectionOfPositionalChange', Type => 'Node' },
715             # '060e2b34.0101.0101.07010301.01000000' => { Name => 'DeviceRateAndDirectionOfPositionalChange', Type => 'Node' },
716             '060e2b34.0101.0101.07010301.01010000' => { Name => 'DeviceAbsoluteSpeed', Format => 'float' },
717             '060e2b34.0101.0101.07010301.01020000' => { Name => 'DeviceAbsoluteHeading', Format => 'float' },
718             # '060e2b34.0101.0101.07010301.02000000' => { Name => 'SubjectRateAndDirectionOfPositionalChange', Type => 'Node' },
719             '060e2b34.0101.0101.07010301.02010000' => { Name => 'SubjectAbsoluteSpeed', Format => 'float' },
720             '060e2b34.0101.0101.07010301.02020000' => { Name => 'SubjectAbsoluteHeading', Format => 'float' },
721             # '060e2b34.0101.0101.07010302.00000000' => { Name => 'RelativeRateAndDirectionOfPositionalChange', Type => 'Node' },
722             # '060e2b34.0101.0101.07010302.01000000' => { Name => 'DeviceRelativeRateAndDirectionOfPositionalChange', Type => 'Node' },
723             '060e2b34.0101.0101.07010302.01010000' => { Name => 'DeviceRelativeSpeed', Format => 'float' },
724             '060e2b34.0101.0101.07010302.01020000' => { Name => 'DeviceRelativeHeading', Format => 'float' },
725             # '060e2b34.0101.0101.07010302.02000000' => { Name => 'SubjectRelativeRateAndDirectionOfPositionalChange', Type => 'Node' },
726             '060e2b34.0101.0101.07010302.02010000' => { Name => 'SubjectRelativeSpeed', Format => 'float' },
727             '060e2b34.0101.0101.07010302.02020000' => { Name => 'SubjectRelativeHeading', Format => 'float' },
728             # '060e2b34.0101.0101.07010800.00000000' => { Name => 'DistanceMeasurements', Type => 'Node' },
729             # '060e2b34.0101.0101.07010801.00000000' => { Name => 'DeviceToSubjectDistance', Type => 'Node' },
730             '060e2b34.0101.0101.07010801.01000000' => { Name => 'SlantRange', Format => 'float' },
731             # '060e2b34.0101.0101.07010900.00000000' => { Name => 'Dimensions', Type => 'Node' },
732             # '060e2b34.0101.0101.07010901.00000000' => { Name => 'DeviceDimensions', Type => 'Node' },
733             # '060e2b34.0101.0101.07010902.00000000' => { Name => 'SubjectDimensions', Type => 'Node' },
734             '060e2b34.0101.0101.07010902.01000000' => { Name => 'TargetWidth', Format => 'float' },
735             # '060e2b34.0101.0101.07010903.00000000' => { Name => 'LocationDimensions', Type => 'Node' },
736             # '060e2b34.0101.0101.07010904.00000000' => { Name => 'MediaDimensions', Type => 'Node' },
737             # '060e2b34.0101.0101.07010904.01000000' => { Name => 'ImageDimensions', Type => 'Node' },
738             # '060e2b34.0101.0101.07010904.01010000' => { Name => 'Pan-and-ScanImageDimensions', Type => 'Node' },
739             '060e2b34.0101.0101.07010904.01010100' => { Name => 'ViewportHeight', Format => 'int16u' },
740             '060e2b34.0101.0101.07010904.01010200' => { Name => 'ViewportWidth', Format => 'int16u' },
741             # '060e2b34.0101.0101.07011000.00000000' => { Name => 'AngularSpecifications', Type => 'Node' },
742             # '060e2b34.0101.0101.07011001.00000000' => { Name => 'DeviceAngles', Type => 'Node' },
743             '060e2b34.0101.0101.07011001.01000000' => { Name => 'SensorRollAngle', Format => 'float' },
744             '060e2b34.0101.0101.07011001.02000000' => { Name => 'AngleToNorth', Format => 'float' },
745             '060e2b34.0101.0101.07011001.03000000' => { Name => 'ObliquityAngle', Format => 'float' },
746             # '060e2b34.0101.0101.07011002.00000000' => { Name => 'SubjectAngles', Type => 'Node' },
747             # '060e2b34.0101.0101.07012000.00000000' => { Name => 'AbstractLocations', Type => 'Node' },
748             # '060e2b34.0101.0101.07012001.00000000' => { Name => 'PlaceNames', Type => 'Node' },
749             # '060e2b34.0101.0101.07012001.01000000' => { Name => 'AbstractNames', Type => 'Node' },
750             '060e2b34.0101.0101.07012001.01010000' => { Name => 'PlaceKeyword', Format => 'string' },
751             # '060e2b34.0101.0101.07012001.02000000' => { Name => 'CountryCodes', Type => 'Node' },
752             '060e2b34.0101.0101.07012001.02010000' => { Name => 'ObjectCountryCode', Format => 'string' },
753             '060e2b34.0101.0101.07012001.02020000' => { Name => 'ShootingCountryCode', Format => 'string' },
754             '060e2b34.0101.0101.07012001.02030000' => { Name => 'SettingCountryCode', Format => 'string' },
755             '060e2b34.0101.0101.07012001.02040000' => { Name => 'CopyrightLicenseCountryCode', Format => 'string' },
756             '060e2b34.0101.0101.07012001.02050000' => { Name => 'IntellectualPropertyLicenseCountryCode', Format => 'string' },
757             # '060e2b34.0101.0101.07012001.03000000' => { Name => 'Regions', Type => 'Node' },
758             '060e2b34.0101.0101.07012001.03010000' => { Name => 'ObjectRegionCode', Format => 'string' },
759             '060e2b34.0101.0101.07012001.03020000' => { Name => 'ShootingRegionCode', Format => 'string' },
760             '060e2b34.0101.0101.07012001.03030000' => { Name => 'SettingRegionCode', Format => 'string' },
761             '060e2b34.0101.0101.07012001.03040000' => { Name => 'CopyrightLicenseRegionCode', Format => 'string' },
762             '060e2b34.0101.0101.07012001.03050000' => { Name => 'IntellectualPropertyLicenseRegionCode', Format => 'string' },
763             # '060e2b34.0101.0101.07012001.04000000' => { Name => 'Addresses', Type => 'Node' },
764             # '060e2b34.0101.0101.07012001.04010000' => { Name => 'PostalAddresses', Type => 'Node' },
765             '060e2b34.0101.0101.07012001.04010100' => { Name => 'RoomNumber', Format => 'string' },
766             '060e2b34.0101.0101.07012001.04010200' => { Name => 'StreetNumber', Format => 'string' },
767             '060e2b34.0101.0101.07012001.04010300' => { Name => 'StreetName', Format => 'string' },
768             '060e2b34.0101.0101.07012001.04010400' => { Name => 'PostalTown', Format => 'string' },
769             '060e2b34.0101.0101.07012001.04010500' => { Name => 'CityName', Format => 'string' },
770             '060e2b34.0101.0101.07012001.04010600' => { Name => 'StateOrProvinceOrCountyName', Format => 'string' },
771             '060e2b34.0101.0101.07012001.04010700' => { Name => 'PostalCode', Format => 'string' },
772             '060e2b34.0101.0101.07012001.04010800' => { Name => 'CountryName', Format => 'string' },
773             # '060e2b34.0101.0101.07012001.04020000' => { Name => 'SettingAddresses', Type => 'Node' },
774             '060e2b34.0101.0101.07012001.04020100' => { Name => 'SettingRoomNumber', Format => 'string' },
775             '060e2b34.0101.0101.07012001.04020200' => { Name => 'SettingStreetNumberOrBuildingName', Format => 'string' },
776             '060e2b34.0101.0101.07012001.04020300' => { Name => 'SettingStreetName', Format => 'string' },
777             '060e2b34.0101.0101.07012001.04020400' => { Name => 'SettingTownName', Format => 'string' },
778             '060e2b34.0101.0101.07012001.04020500' => { Name => 'SettingCityName', Format => 'string' },
779             '060e2b34.0101.0101.07012001.04020600' => { Name => 'SettingStateOrProvinceOrCountyName', Format => 'string' },
780             '060e2b34.0101.0101.07012001.04020700' => { Name => 'SettingPostalCode', Format => 'string' },
781             '060e2b34.0101.0101.07012001.04020800' => { Name => 'SettingCountryName', Format => 'string' },
782             # '060e2b34.0101.0101.07012001.10030000' => { Name => 'ElectronicAddressInformation', Type => 'Node' },
783             '060e2b34.0101.0101.07012001.10030100' => { Name => 'TelephoneNumber', Format => 'string' },
784             '060e2b34.0101.0101.07012001.10030200' => { Name => 'FaxNumber', Format => 'string' },
785             '060e2b34.0101.0101.07012001.10030300' => { Name => 'E-mailAddress', Format => 'string' },
786             # '060e2b34.0101.0101.07012002.00000000' => { Name => 'PlaceDescriptions', Type => 'Node' },
787             '060e2b34.0101.0101.07012002.01000000' => { Name => 'SettingDescription', Format => 'string' },
788             # '060e2b34.0101.0101.07020000.00000000' => { Name => 'Temporal', Type => 'Node' },
789             # '060e2b34.0101.0101.07020100.00000000' => { Name => 'DatesAndTimes', Type => 'Node' },
790             # '060e2b34.0101.0101.07020101.00000000' => { Name => 'GeneralDatesAndTimes', Type => 'Node' },
791             # '060e2b34.0101.0101.07020101.01000000' => { Name => 'UserDateTime', Type => 'Node' },
792             '060e2b34.0101.0101.07020101.01010000' => { Name => 'UTCUserDateTime', Format => 'string', Groups => { 2 => 'Time' } },
793             '060e2b34.0101.0101.07020101.01020000' => { Name => 'LocalUserDateTime', Format => 'string', Groups => { 2 => 'Time' } },
794             '060e2b34.0101.0101.07020101.01030000' => { Name => 'SMPTE309MUserDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
795             '060e2b34.0101.0101.07020101.01040000' => { Name => 'SMPTE12MUserDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
796             # '060e2b34.0101.0101.07020102.00000000' => { Name => 'AbsoluteDatesAndTimes', Type => 'Node' },
797             # '060e2b34.0101.0101.07020102.01000000' => { Name => 'MaterialStartTrueDateTime', Type => 'Node' },
798             '060e2b34.0101.0101.07020102.01010000' => { Name => 'UTCStartDateTime', Format => 'string', Groups => { 2 => 'Time' } },
799             '060e2b34.0101.0101.07020102.01020000' => { Name => 'LocalStartDateTime', Format => 'string', Groups => { 2 => 'Time' } },
800             # '060e2b34.0101.0101.07020102.02000000' => { Name => 'MaterialStartTimeAddress', Type => 'Node' },
801             '060e2b34.0101.0101.07020102.02010000' => { Name => 'TimecodeStartDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
802             # '060e2b34.0101.0101.07020102.03000000' => { Name => 'MaterialEndTrueDateTime', Type => 'Node' },
803             '060e2b34.0101.0101.07020102.03010000' => { Name => 'UTCEndDateTime', Format => 'string', Groups => { 2 => 'Time' } },
804             '060e2b34.0101.0101.07020102.03020000' => { Name => 'LocalEndDateTime', Format => 'string', Groups => { 2 => 'Time' } },
805             # '060e2b34.0101.0101.07020102.04000000' => { Name => 'MaterialEndTimeAddress', Type => 'Node' },
806             '060e2b34.0101.0101.07020102.04010000' => { Name => 'TimecodeEndDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
807             # '060e2b34.0101.0101.07020102.05000000' => { Name => 'MaterialOccurrenceTrueDateTime', Type => 'Node' },
808             '060e2b34.0101.0101.07020102.05010000' => { Name => 'UTCLastModifyDate', Format => 'string', Groups => { 2 => 'Time' } },
809             '060e2b34.0101.0101.07020102.05020000' => { Name => 'LocalLastModifyDate', Format => 'string', Groups => { 2 => 'Time' } },
810             # '060e2b34.0101.0101.07020102.06000000' => { Name => 'MaterialOccurrenceTimeAddress', Type => 'Node' },
811             '060e2b34.0101.0101.07020102.06010000' => { Name => 'TimecodeLastModifyDate', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
812             # '060e2b34.0101.0101.07020102.07000000' => { Name => 'EventStartTrueDateTime', Type => 'Node' },
813             '060e2b34.0101.0101.07020102.07010000' => { Name => 'UTCEventStartDateTime', Format => 'string', Groups => { 2 => 'Time' } },
814             '060e2b34.0101.0101.07020102.07020000' => { Name => 'LocalEventStartDateTime', Format => 'string', Groups => { 2 => 'Time' } },
815             # '060e2b34.0101.0101.07020102.08000000' => { Name => 'EventStartTimeAddress', Type => 'Node' },
816             '060e2b34.0101.0101.07020102.08010000' => { Name => 'TimecodeEventStartDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
817             # '060e2b34.0101.0101.07020102.09000000' => { Name => 'EventEndTrueDateTime', Type => 'Node' },
818             '060e2b34.0101.0101.07020102.09010000' => { Name => 'UTCEventEndDateTime', Format => 'string', Groups => { 2 => 'Time' } },
819             '060e2b34.0101.0101.07020102.09020000' => { Name => 'LocalEventEndDateTime', Format => 'string', Groups => { 2 => 'Time' } },
820             # '060e2b34.0101.0101.07020102.0a000000' => { Name => 'EventEndTimeAddress', Type => 'Node' },
821             '060e2b34.0101.0101.07020102.0a010000' => { Name => 'TimecodeEventEndDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
822             # '060e2b34.0101.0101.07020103.00000000' => { Name => 'RelativeTimes', Type => 'Node' },
823             # '060e2b34.0101.0101.07020103.01000000' => { Name => 'MaterialStartRelativeTimes', Type => 'Node' },
824             '060e2b34.0101.0101.07020103.01010000' => { Name => 'StartTimeRelativeToReference', Format => 'string' },
825             '060e2b34.0101.0101.07020103.01020000' => { Name => 'StartTimecodeRelativeToReference', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
826             # '060e2b34.0101.0101.07020103.02000000' => { Name => 'MaterialEndRelativeTimes', Type => 'Node' },
827             '060e2b34.0101.0101.07020103.02010000' => { Name => 'MaterialEndTimeOffset', Format => 'string' },
828             '060e2b34.0101.0101.07020103.02020000' => { Name => 'MaterialEndTimecodeOffset', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
829             # '060e2b34.0101.0101.07020103.03000000' => { Name => 'EventStartRelativeTimes', Type => 'Node' },
830             '060e2b34.0101.0101.07020103.03010000' => { Name => 'EventStartTimeOffset', Format => 'string' },
831             '060e2b34.0101.0101.07020103.03020000' => { Name => 'EventStartTimecodeOffset', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
832             # '060e2b34.0101.0101.07020103.04000000' => { Name => 'EventEndRelativeTimes', Type => 'Node' },
833             '060e2b34.0101.0101.07020103.04010000' => { Name => 'EventEndTimeOffset', Format => 'string' },
834             '060e2b34.0101.0101.07020103.04020000' => { Name => 'EventEndTimecodeOffset', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
835             # '060e2b34.0101.0101.07020103.10000000' => { Name => 'Offsets', Type => 'Node' },
836             # '060e2b34.0101.0101.07020103.10010000' => { Name => 'MaterialOffsets', Type => 'Node' },
837             '060e2b34.0101.0101.07020103.10010100' => { Name => 'FrameCountOffset', Format => 'int32u' },
838             # '060e2b34.0101.0101.07020108.00000000' => { Name => 'SettingDateAndTime', Type => 'Node' },
839             '060e2b34.0101.0101.07020108.01000000' => { Name => 'TimePeriodName', Format => 'string' },
840             # '060e2b34.0101.0101.07020110.00000000' => { Name => 'ProcessDateTime', Type => 'Node' },
841             # '060e2b34.0101.0101.07020110.01000000' => { Name => 'CreateDate', Type => 'Node' },
842             '060e2b34.0101.0101.07020110.01010000' => { Name => 'LocalCreationDateTime', Format => 'string', Groups => { 2 => 'Time' } },
843             '060e2b34.0101.0101.07020110.01020000' => { Name => 'TimecodeCreationDateTime', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
844             # '060e2b34.0101.0101.07020110.02000000' => { Name => 'ModifyDate', Type => 'Node' },
845             '060e2b34.0101.0101.07020110.02010000' => { Name => 'LocalModifyDate', Format => 'string', Groups => { 2 => 'Time' } },
846             '060e2b34.0101.0101.07020110.02020000' => { Name => 'TimecodeModifyDate', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
847             # '060e2b34.0101.0101.07020200.00000000' => { Name => 'Durations', Type => 'Node' },
848             # '060e2b34.0101.0101.07020201.00000000' => { Name => 'AbsoluteDurations', Type => 'Node' },
849             # '060e2b34.0101.0101.07020201.01000000' => { Name => 'EditTimelineDurations', Type => 'Node' },
850             '060e2b34.0101.0101.07020201.01010000' => { Name => 'FrameCount', Format => 'int32u' },
851             # '060e2b34.0101.0101.07020201.01040000' => { Name => 'VideoDurations', Type => 'Node' },
852             # '060e2b34.0101.0101.07020201.01050000' => { Name => 'AudioDurations', Type => 'Node' },
853             # '060e2b34.0101.0101.07020201.02000000' => { Name => 'MaterialAbsoluteDurations', Type => 'Node' },
854             '060e2b34.0101.0101.07020201.02010000' => { Name => 'MaterialAbsoluteDuration', Format => 'string' },
855             '060e2b34.0101.0101.07020201.02020000' => { Name => 'MaterialAbsoluteDuration', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
856             '060e2b34.0101.0101.07020201.02030000' => { Name => 'TextlessBlackDuration', Format => 'int32u' },
857             # '060e2b34.0101.0101.07020201.03000000' => { Name => 'EventAbsoluteDurations', Type => 'Node' },
858             '060e2b34.0101.0101.07020201.03010000' => { Name => 'EventAbsoluteDurationFrameCount', Format => 'int32u' },
859             '060e2b34.0101.0101.07020201.03020000' => { Name => 'EventAbsoluteDuration', Format => 'string' },
860             '060e2b34.0101.0101.07020201.03030000' => { Name => 'EventAbsoluteDuration', Type => 'UILSBF', Unknown => 1, Groups => { 2 => 'Time' } },
861             # '060e2b34.0101.0101.07020202.00000000' => { Name => 'RelativeScalingDurations', Type => 'Node' },
862             # '060e2b34.0101.0101.07020300.00000000' => { Name => 'Delay', Type => 'Node' },
863             # '060e2b34.0101.0101.07020301.00000000' => { Name => 'EncodingAndDecoding', Type => 'Node' },
864             # '060e2b34.0101.0101.07020301.01000000' => { Name => 'CodecDelay', Type => 'Node' },
865             # '060e2b34.0101.0101.07020301.02000000' => { Name => 'EncodingDelay', Type => 'Node' },
866             # '060e2b34.0101.0101.07020301.03000000' => { Name => 'DecodingDelay', Type => 'Node' },
867             '060e2b34.0101.0101.07020301.03010000' => { Name => 'BufferDelay', Unknown => 1 },
868             # '060e2b34.0101.0101.07020500.00000000' => { Name => 'Latency', Type => 'Node' },
869             # '060e2b34.0101.0101.07020600.00000000' => { Name => 'ShutterCharacteristics', Type => 'Node' },
870             # '060e2b34.0101.0101.07020601.00000000' => { Name => 'ShutterCharacteristics', Type => 'Node' },
871             # '060e2b34.0101.0101.07020601.01000000' => { Name => 'ShutterSpeed', Type => 'Node' },
872             # '060e2b34.0101.0101.07020601.02000000' => { Name => 'ShutterGating', Type => 'Node' },
873             # '060e2b34.0101.0101.0d000000.00000000' => { Name => 'UserOrganizationRegisteredForPublicUse', Type => 'Node' },
874             # '060e2b34.0101.0101.0d010000.00000000' => { Name => 'AAFAssociation', Type => 'Node' },
875             # '060e2b34.0101.0101.0d010100.00000000' => { Name => 'AAFAttributes', Type => 'Node' },
876             # '060e2b34.0101.0101.0d010101.00000000' => { Name => 'AAFInformationAttributes', Type => 'Node' },
877             # '060e2b34.0101.0101.0d010101.01000000' => { Name => 'AAFInformationAttributesVersion1', Type => 'Node' },
878             # '060e2b34.0101.0101.0d010101.01010000' => { Name => 'EnumeratedAttributes', Type => 'Node' },
879              
880             # tags from ref 4 (untested)
881             '060e2b34.0101.0101.0d010401.03010100' => { Name => 'ProgramIdentifier', Type => 'UTF-16' },
882             '060e2b34.0101.0101.0d010401.03010200' => { Name => 'ProgramIdentifierString', Type => 'UTF-16' },
883             '060e2b34.0101.0101.0d010401.03010300' => { Name => 'ShimName', Type => 'UTF-16' },
884             '060e2b34.0101.0101.0d010401.03010400' => { Name => 'SignalStandard', Type => 'UTF-16' },
885             '060e2b34.0101.0101.0d010401.03010500' => { Name => 'IntendedAFD', Type => 'UTF-16' },
886             '060e2b34.0101.0101.0d010401.03010600' => { Name => 'SlateTitle', Type => 'UTF-16' },
887             '060e2b34.0101.0101.0d010401.03010700' => { Name => 'NOLACode', Type => 'UTF-16' },
888             '060e2b34.0101.0101.0d010401.03010800' => { Name => 'Rating', Type => 'UTF-16' },
889             '060e2b34.0101.0101.0d010401.03010900' => { Name => 'NielsenStreamIdentifier', Type => 'UTF-16' },
890              
891             # '060e2b34.0101.0101.0d0b0100.00000000' => { Name => 'ProductionFramework', Type => 'Node' },
892             '060e2b34.0101.0101.0d0b0101.00000000' => { Name => 'IsRecording', Type => 'Boolean' },
893             '060e2b34.0101.0101.0d0b0102.00000000' => { Name => 'IsLiveProduction', Type => 'Boolean' },
894             '060e2b34.0101.0101.0d0b0103.00000000' => { Name => 'IsLiveTransmission', Type => 'Boolean' },
895             '060e2b34.0101.0101.0d0b0104.00000000' => { Name => 'IsDubbed', Type => 'Boolean' },
896             '060e2b34.0101.0101.0d0b0105.00000000' => { Name => 'IsVoiceover', Type => 'Boolean' },
897             '060e2b34.0101.0101.0d0b0106.00000000' => { Name => 'HasAudioWatermark', Type => 'Boolean', Groups => { 2 => 'Audio' } },
898             '060e2b34.0101.0101.0d0b0107.00000000' => { Name => 'AudioWatermarkKind', Type => 'UTF-16', Groups => { 2 => 'Audio' } },
899             '060e2b34.0101.0101.0d0b0108.00000000' => { Name => 'HasVideoWatermark', Type => 'Boolean' },
900             '060e2b34.0101.0101.0d0b0109.00000000' => { Name => 'VideoWatermarkKind', Type => 'UTF-16' },
901             # '060e2b34.0101.0101.0d0b0200.00000000' => { Name => 'Subtitling', Type => 'Node' },
902             '060e2b34.0101.0101.0d0b0201.00000000' => { Name => 'SubtitlesPresent', Type => 'Boolean' },
903             # '060e2b34.0101.0101.0d0b0300.00000000' => { Name => 'CaptionTitles', Type => 'Node' },
904             '060e2b34.0101.0101.0d0b0301.00000000' => { Name => 'CaptionTitles', Type => 'Boolean' },
905             '060e2b34.0101.0101.0d0b0302.00000000' => { Name => 'CaptionsViaTeletext', Type => 'Boolean' },
906             '060e2b34.0101.0101.0d0b0303.00000000' => { Name => 'TextlessMaterial', Type => 'Boolean' },
907             # '060e2b34.0101.0101.0d0b0400.00000000' => { Name => 'AudioParameters', Type => 'Node' },
908             '060e2b34.0101.0101.0d0b0401.00000000' => { Name => 'AudioReferenceLevel', Format => 'string', Groups => { 2 => 'Audio' } },
909             # '060e2b34.0101.0101.0d0b0500.00000000' => { Name => 'StorageMedia', Type => 'Node' },
910             '060e2b34.0101.0101.0d0b0501.00000000' => { Name => 'StorageDeviceKind', Type => 'UTF-16' },
911             '060e2b34.0101.0101.0d0b0502.00000000' => { Name => 'StorageMediaKind', Type => 'UTF-16' },
912             '060e2b34.0101.0101.0d0b0503.00000000' => { Name => 'StorageMediaID', Type => 'UTF-16' },
913             # '060e2b34.0101.0101.0d0b0600.00000000' => { Name => 'BroadcastScheduleInformation', Type => 'Node' },
914             '060e2b34.0101.0101.0d0b0601.00000000' => { Name => 'BroadcastDate', %timestamp },
915             '060e2b34.0101.0101.0d0b0602.00000000' => { Name => 'BroadcastTime', %timestamp },
916             '060e2b34.0101.0101.0d0b0603.00000000' => { Name => 'IsRepeat', Type => 'Boolean' },
917             '060e2b34.0101.0101.0d0b0604.00000000' => { Name => 'FirstTransmissionInfo', Type => 'UTF-16' },
918             '060e2b34.0101.0101.0d0b0605.00000000' => { Name => 'TeletextSubtitlesAvailable', Type => 'Boolean' },
919             '060e2b34.0101.0101.0d0b0606.00000000' => { Name => 'SeasonEpisodeNumber', Format => 'string' },
920             '060e2b34.0101.0101.0d0b0607.00000000' => { Name => 'SeasonEpisodeTitle', Format => 'string' },
921             '060e2b34.0101.0101.0d0b0608.00000000' => { Name => 'EPGProgramSynopsis', Type => 'UTF-16' },
922             # '060e2b34.0101.0101.0d0b0700.00000000' => { Name => 'Classification', Type => 'Node' },
923             '060e2b34.0101.0101.0d0b0701.00000000' => { Name => 'ContentClassification', Type => 'UTF-16' },
924             '060e2b34.0101.0101.0d0b0702.00000000' => { Name => 'DVBParentalRating', Type => 'UTF-16' },
925             '060e2b34.0101.0101.0d0b0703.00000000' => { Name => 'ContentMaturityRating', Type => 'UTF-16' },
926             '060e2b34.0101.0101.0d0b0704.00000000' => { Name => 'ContentMaturityDescription', Type => 'UTF-16' },
927             '060e2b34.0101.0101.0d0b0705.00000000' => { Name => 'ContentMaturityGraphic', Type => 'UTF-16' },
928             # '060e2b34.0101.0101.0d0b0800.00000000' => { Name => 'Contract', Type => 'Node' },
929             '060e2b34.0101.0101.0d0b0801.00000000' => { Name => 'ContractEntity', Type => 'UTF-16' },
930             '060e2b34.0101.0101.0d0b0802.00000000' => { Name => 'ContractTypeLink', Type => 'UTF-16' },
931             # '060e2b34.0101.0101.0d0b0900.00000000' => { Name => 'Rights', Type => 'Node' },
932             '060e2b34.0101.0101.0d0b0901.00000000' => { Name => 'ConsumerRightsToCopy', Type => 'UTF-16' },
933             '060e2b34.0101.0101.0d0b0902.00000000' => { Name => 'BroadcasterRightsToCopy', Type => 'UTF-16' },
934             # '060e2b34.0101.0101.0d0b0a00.00000000' => { Name => 'ProductionKeyPeople', Type => 'Node' },
935             '060e2b34.0101.0101.0d0b0a01.00000000' => { Name => 'DirectorName', Type => 'UTF-16' },
936             '060e2b34.0101.0101.0d0b0a02.00000000' => { Name => 'ProducerName', Type => 'UTF-16' },
937             '060e2b34.0101.0101.0d0b0a03.00000000' => { Name => 'FemaleLeadActressName', Type => 'UTF-16' },
938             '060e2b34.0101.0101.0d0b0a04.00000000' => { Name => 'MaleLeadActorName', Type => 'UTF-16' },
939             '060e2b34.0101.0101.0d0b0a05.00000000' => { Name => 'PresenterName', Type => 'UTF-16' },
940             '060e2b34.0101.0101.0d0b0a06.00000000' => { Name => 'MainSponsorName', Type => 'UTF-16' },
941             '060e2b34.0101.0101.0d0b0a07.00000000' => { Name => 'VoiceTalentName', Type => 'UTF-16' },
942             # '060e2b34.0101.0101.0d0b0b00.00000000' => { Name => 'Address', Type => 'Node' },
943             '060e2b34.0101.0101.0d0b0b01.00000000' => { Name => 'PostboxNumber', Type => 'UTF-16' },
944             '060e2b34.0101.0101.0d0b0b02.00000000' => { Name => 'PostCodeForPostbox', Type => 'UTF-16' },
945             # '060e2b34.0101.0101.0e000000.00000000' => { Name => 'PrivateUse', Type => 'Node' },
946             # '060e2b34.0101.0101.0e010000.00000000' => { Name => 'MISBSystems', Type => 'Node' },
947             # '060e2b34.0101.0101.0e010100.00000000' => { Name => 'MISBSystemsStreams', Type => 'Node' },
948             # '060e2b34.0101.0101.0e010200.00000000' => { Name => 'MISBSystemsAttributes', Type => 'Node' },
949             # '060e2b34.0101.0101.0e010300.00000000' => { Name => 'MISBSystemsComposites', Type => 'Node' },
950             # '060e2b34.0101.0101.0e010400.00000000' => { Name => 'MISBSystemsIdentifiers', Type => 'Node' },
951             # '060e2b34.0101.0101.0e020000.00000000' => { Name => 'ASPA', Type => 'Node' },
952             # '060e2b34.0101.0101.0e020100.00000000' => { Name => 'ASPAStreams', Type => 'Node' },
953             # '060e2b34.0101.0101.0e020200.00000000' => { Name => 'ASPAAttributes', Type => 'Node' },
954             # '060e2b34.0101.0101.0e020201.00000000' => { Name => 'ASPARelationalAttributes', Type => 'Node' },
955             # '060e2b34.0101.0101.0e020202.00000000' => { Name => 'ASPAInformationAttributes', Type => 'Node' },
956             # '060e2b34.0101.0101.0e020300.00000000' => { Name => 'ASPAComposites', Type => 'Node' },
957             # '060e2b34.0101.0101.0e020400.00000000' => { Name => 'ASPAIdentifiers', Type => 'Node' },
958             # '060e2b34.0101.0101.0e030000.00000000' => { Name => 'MISBClassified', Type => 'Node' },
959             # '060e2b34.0101.0101.0e030100.00000000' => { Name => 'MISBClassifiedStreams', Type => 'Node' },
960             # '060e2b34.0101.0101.0e030200.00000000' => { Name => 'MISBClassifiedAttributes', Type => 'Node' },
961             # '060e2b34.0101.0101.0e030300.00000000' => { Name => 'MISBClassifiedComposites', Type => 'Node' },
962             # '060e2b34.0101.0101.0e030400.00000000' => { Name => 'MISBClassifiedIdentifiers', Type => 'Node' },
963             # '060e2b34.0101.0101.0f000000.00000000' => { Name => 'EXPERIMENTALMETADATA', Type => 'Node' },
964             # '060e2b34.0101.0101.43000000.00000000' => { Name => 'Legacy315M', Type => 'Node' },
965             '060e2b34.0101.0102.01011003.03000000' => { Name => 'ProgramNumber', Format => 'string' },
966             '060e2b34.0101.0102.01011503.00000000' => { Name => 'DefinitionObjectID', Type => 'AUID', Unknown => 1 },
967             '060e2b34.0101.0102.01012005.00000000' => { Name => 'IEEEDeviceID', Format => 'int8u' },
968             '060e2b34.0101.0102.01030106.00000000' => { Name => 'ProjectNumber', Format => 'string' },
969             '060e2b34.0101.0102.01030201.02000000' => { Name => 'EdgeCodeHeader', Type => 'DataValue', Unknown => 1 },
970             # '060e2b34.0101.0102.01030400.00000000' => { Name => 'NetworkAndStreamIdentifiers', Type => 'Node' },
971             '060e2b34.0101.0102.01030401.00000000' => { Name => 'ChannelHandle', Format => 'int16s' },
972             '060e2b34.0101.0102.01040102.00000000' => { Name => 'PhysicalMediaLocation', Format => 'string' },
973             '060e2b34.0101.0102.01040102.01000000' => { Name => 'MediaLocation', Type => 'UTF-16' },
974             '060e2b34.0101.0102.01040103.00000000' => { Name => 'TrackNumber', Format => 'int32u' },
975             # '060e2b34.0101.0102.01040900.00000000' => { Name => 'SynchronizationLocators', Type => 'Node' },
976             '060e2b34.0101.0102.01040901.00000000' => { Name => 'EdgeCodeStart', Type => 'Position', %duration },
977             '060e2b34.0101.0102.01050800.00000000' => { Name => 'VersionTitle', Format => 'string' },
978             # '060e2b34.0101.0102.01070000.00000000' => { Name => 'LocalIdentifiers', Type => 'Node' },
979             # '060e2b34.0101.0102.01070100.00000000' => { Name => 'PackageIdentifiers', Type => 'Node' },
980             '060e2b34.0101.0102.01070101.00000000' => { Name => 'TrackID', Format => 'int32u' },
981             '060e2b34.0101.0102.01070102.00000000' => { Name => 'TrackName', Format => 'string' },
982             '060e2b34.0101.0102.01070102.01000000' => { Name => 'TrackName', Type => 'UTF-16' },
983             '060e2b34.0101.0102.01070102.03000000' => { Name => 'DefinitionObjectName', Format => 'string' },
984             '060e2b34.0101.0102.01070102.03010000' => { Name => 'DefinitionObjectName', Type => 'UTF-16' },
985             '060e2b34.0101.0102.01070103.00000000' => { Name => 'ContentPackageMetadataLink', Format => 'int8u' },
986             '060e2b34.0101.0102.01070104.00000000' => { Name => 'DefinedName', Format => 'string' },
987             '060e2b34.0101.0102.01070104.01000000' => { Name => 'DefinedName', Type => 'UTF-16' },
988             # '060e2b34.0101.0102.010a0000.00000000' => { Name => 'OrganizationIdentifiers', Type => 'Node' },
989             # '060e2b34.0101.0102.010a0100.00000000' => { Name => 'ManufacturerIdentifiers', Type => 'Node' },
990             # '060e2b34.0101.0102.010a0101.00000000' => { Name => 'ManufacturerIdentifiers', Type => 'Node' },
991             '060e2b34.0101.0102.010a0101.01000000' => { Name => 'DeviceManufacturerName', Format => 'string' },
992             '060e2b34.0101.0102.010a0101.01010000' => { Name => 'DeviceManufacturerName', Type => 'UTF-16' },
993             '060e2b34.0101.0102.010a0101.03000000' => { Name => 'ManufacturerID', Type => 'AUID', Unknown => 1 },
994             '060e2b34.0101.0102.010a0102.00000000' => { Name => 'IEEEManufacturerID', Type => 'Hex' },
995             '060e2b34.0101.0102.010a0103.00000000' => { Name => 'AAFManufacturerID', Type => 'AUID', Unknown => 1 },
996             '060e2b34.0101.0102.02010400.00000000' => { Name => 'SupplyingDepartmentName', Format => 'string' },
997             '060e2b34.0101.0102.02200303.00000000' => { Name => 'AudienceShare', Format => 'float' },
998             '060e2b34.0101.0102.02200304.00000000' => { Name => 'AudienceAppreciation', Format => 'float' },
999             '060e2b34.0101.0102.02300603.01050000' => { Name => 'Salutation', Format => 'string' },
1000             '060e2b34.0101.0102.02300603.01060000' => { Name => 'HonorsAndQualifications', Format => 'string' },
1001             # '060e2b34.0101.0102.03010200.00000000' => { Name => 'DataInterpretationsAndDefinitions', Type => 'Node' },
1002             '060e2b34.0101.0102.03010201.04000000' => { Name => 'ObjectModelVersion', Format => 'int32u' },
1003             '060e2b34.0101.0102.03010201.05000000' => { Name => 'SDKVersion', Type => 'VersionType' },
1004             # '060e2b34.0101.0102.03010202.00000000' => { Name => 'PropertyDefinitions', Type => 'Node' },
1005             '060e2b34.0101.0102.03010202.01000000' => { Name => 'IsOptional', Type => 'Boolean' },
1006             '060e2b34.0101.0102.03010202.02000000' => { Name => 'IsSearchable', Type => 'Boolean' },
1007             # '060e2b34.0101.0102.03010202.03000000' => { Name => 'PropertyDefaults', Type => 'Node' },
1008             '060e2b34.0101.0102.03010202.03010000' => { Name => 'UseDefaultValue', Type => 'Boolean' },
1009             '060e2b34.0101.0102.03010202.03020000' => { Name => 'DefaultDataValue', Type => 'Indirect', Unknown => 1 },
1010             # '060e2b34.0101.0102.03010203.00000000' => { Name => 'TypeDefinition', Type => 'Node' },
1011             '060e2b34.0101.0102.03010203.01000000' => { Name => 'Size', Format => 'int8u' },
1012             '060e2b34.0101.0102.03010203.02000000' => { Name => 'IsSigned', Type => 'Boolean' },
1013             '060e2b34.0101.0102.03010203.03000000' => { Name => 'ElementCount', Format => 'int32u' },
1014             '060e2b34.0101.0102.03010203.04000000' => { Name => 'ElementNameList', Type => 'UTF-16' },
1015             '060e2b34.0101.0102.03010203.05000000' => { Name => 'TypeDefinitionElementValueList', Format => 'int64s' },
1016             '060e2b34.0101.0102.03010203.06000000' => { Name => 'MemberNameList', Type => 'UTF-16' },
1017             '060e2b34.0101.0102.03010203.07000000' => { Name => 'ExtendibleElementNameList', Type => 'UTF-16' },
1018             '060e2b34.0101.0102.03010203.08000000' => { Name => 'TypeDefinitionExtendibleElementValues', Type => 'AUIDArray', Unknown => 1 },
1019             '060e2b34.0101.0102.03010203.0b000000' => { Name => 'TargetSet', Type => 'AUIDArray', Unknown => 1 },
1020             # '060e2b34.0101.0102.03010210.00000000' => { Name => 'KLVInterpretations', Type => 'Node' },
1021             '060e2b34.0101.0102.03010210.01000000' => { Name => 'FillerData', Format => 'undef', Unknown => 1 },
1022             '060e2b34.0101.0102.03010210.02000000' => { Name => 'KLVDataValue', Type => 'Opaque', Unknown => 1 },
1023             '060e2b34.0101.0102.03010210.03000000' => { Name => 'PackageKLVData', Type => 'StrongReferenceArray', Unknown => 1 },
1024             '060e2b34.0101.0102.03010210.04000000' => { Name => 'ComponentKLVData', Type => 'StrongReferenceArray', Unknown => 1 },
1025             '060e2b34.0101.0102.03020102.09000000' => { Name => 'AssignedCategoryName', Format => 'string' },
1026             '060e2b34.0101.0102.03020102.09010000' => { Name => 'AssignedCategoryName', Type => 'UTF-16' },
1027             '060e2b34.0101.0102.03020102.0a000000' => { Name => 'AssignedCategoryValue', Format => 'string' },
1028             '060e2b34.0101.0102.03020102.0a010000' => { Name => 'AssignedCategoryValue', Type => 'UTF-16' },
1029             '060e2b34.0101.0102.03020102.0b000000' => { Name => 'ShotList', Format => 'string' },
1030             '060e2b34.0101.0102.03020102.0c000000' => { Name => 'PackageUserComments', Type => 'StrongReferenceArray', Unknown => 1 },
1031             '060e2b34.0101.0102.03020102.0d000000' => { Name => 'Cue-InWords', Format => 'string' },
1032             '060e2b34.0101.0102.03020102.0e000000' => { Name => 'Cue-OutWords', Format => 'string' },
1033             '060e2b34.0101.0102.03020301.01000000' => { Name => 'ObjectKind', Format => 'string' },
1034             '060e2b34.0101.0102.03020301.01010000' => { Name => 'ObjectKind', Type => 'UTF-16' },
1035             '060e2b34.0101.0102.03020301.02000000' => { Name => 'ObjectDescription', Format => 'string' },
1036             '060e2b34.0101.0102.03020301.02010000' => { Name => 'ObjectDescription', Type => 'UTF-16' },
1037             # '060e2b34.0101.0102.03020400.00000000' => { Name => 'DescriptiveNames', Type => 'Node' },
1038             # '060e2b34.0101.0102.03020401.01000000' => { Name => 'GenericObjectNames', Type => 'Node' },
1039             '060e2b34.0101.0102.03020401.01010000' => { Name => 'ObjectName', Format => 'string' },
1040             '060e2b34.0101.0102.03020401.02010000' => { Name => 'MetadataItemName', Type => 'UTF-16' },
1041             # '060e2b34.0101.0102.03020500.00000000' => { Name => 'EditorialCommentsAndDescriptions', Type => 'Node' },
1042             '060e2b34.0101.0102.03020501.00000000' => { Name => 'ShotCommentKind', Format => 'string' },
1043             '060e2b34.0101.0102.03020502.00000000' => { Name => 'ShotComment', Format => 'string' },
1044             '060e2b34.0101.0102.03030301.01000000' => { Name => 'ComputedObjectKind', Format => 'string' },
1045             '060e2b34.0101.0102.03030301.01010000' => { Name => 'ComputedObjectKind', Type => 'UTF-16' },
1046             '060e2b34.0101.0102.03030301.02000000' => { Name => 'VersionNumberString', Format => 'string' },
1047             '060e2b34.0101.0102.03030301.02010000' => { Name => 'VersionNumberString', Type => 'UTF-16' },
1048             '060e2b34.0101.0102.03030301.03000000' => { Name => 'VersionNumber', Type => 'VersionType' },
1049             # '060e2b34.0101.0102.03030302.00000000' => { Name => 'DerivedSummaryInformation', Type => 'Node' },
1050             '060e2b34.0101.0102.03030302.01000000' => { Name => 'WAVESummary', Type => 'DataValue', Unknown => 1 },
1051             '060e2b34.0101.0102.03030302.02000000' => { Name => 'AIFCSummary', Type => 'DataValue', Unknown => 1 },
1052             '060e2b34.0101.0102.03030302.03000000' => { Name => 'TIFFSummary', Type => 'DataValue', Unknown => 1 },
1053             '060e2b34.0101.0102.04010101.03000000' => { Name => 'ViewportAspectRatio', Format => 'rational64s' },
1054             '060e2b34.0101.0102.04010201.01010200' => { Name => 'CaptureGammaEquation', Type => 'UL', Unknown => 1 },
1055             '060e2b34.0101.0102.04010201.01030100' => { Name => 'ColorimetryCode', Type => 'ColorimetryCode', Unknown => 1 },
1056             '060e2b34.0101.0102.04010201.01100000' => { Name => 'PresentationGammaEquation', Format => 'string' },
1057             '060e2b34.0101.0102.04010201.01100100' => { Name => 'PresentationGammaEquation', Type => 'PresentationGamma', Unknown => 1 },
1058             '060e2b34.0101.0102.04010301.06000000' => { Name => 'FieldDominance', Format => 'int8u' },
1059             '060e2b34.0101.0102.04010302.05000000' => { Name => 'VideoLineMap', Format => 'int32s' },
1060             '060e2b34.0101.0102.04010401.01000000' => { Name => 'AnalogVideoSystemName', Type => 'VideoSignalType', Unknown => 1 },
1061             '060e2b34.0101.0102.04010501.10000000' => { Name => 'VerticalSub-sampling', Format => 'int32u' },
1062             '060e2b34.0101.0102.04010503.01010000' => { Name => 'BitsPerPixel', Format => 'int32u' },
1063             '060e2b34.0101.0102.04010503.05000000' => { Name => 'ColorRangeLevels', Format => 'int32u' },
1064             '060e2b34.0101.0102.04010503.06000000' => { Name => 'PixelLayout', Type => 'RGBALayout', Unknown => 1 },
1065             '060e2b34.0101.0102.04010503.07000000' => { Name => 'AlphaSampleDepth', Format => 'int32u' },
1066             '060e2b34.0101.0102.04010503.08000000' => { Name => 'Palette', Type => 'DataValue', Unknown => 1 },
1067             '060e2b34.0101.0102.04010503.09000000' => { Name => 'PaletteLayout', Type => 'RGBALayout', Unknown => 1 },
1068             '060e2b34.0101.0102.04010503.0a000000' => { Name => 'ComponentDepth', Format => 'int32u' },
1069             '060e2b34.0101.0102.04010601.00000000' => { Name => 'VideoCodingSchemeID', Type => 'AUID' },
1070             '060e2b34.0101.0102.04010802.03000000' => { Name => 'RoundedCaptureFilmFrameRate', Format => 'int32u' },
1071             '060e2b34.0101.0102.04020301.02000000' => { Name => 'AudioAverageBitrate', Format => 'float', PrintConv => 'ConvertBitrate($val)', Groups => { 2 => 'Audio' } },
1072             '060e2b34.0101.0102.04020301.03000000' => { Name => 'AudioFixedBitrateFlag', Type => 'Boolean', Groups => { 2 => 'Audio' } },
1073             '060e2b34.0101.0102.04020401.00000000' => { Name => 'CodingLawKind', Format => 'string' },
1074             '060e2b34.0101.0102.04020402.00000000' => { Name => 'AudioCodingSchemeID', Type => 'AUID', Unknown => 1, Groups => { 2 => 'Audio' } },
1075             '060e2b34.0101.0102.04020403.01010000' => { Name => 'LayerNumber', Format => 'int8u' },
1076             '060e2b34.0101.0102.04040101.02010000' => { Name => 'TimecodeTimebase', Format => 'rational64s' },
1077             '060e2b34.0101.0102.04040101.02060000' => { Name => 'RoundedTimecodeTimebase', Format => 'int16u' },
1078             # '060e2b34.0101.0102.04070000.00000000' => { Name => 'GeneralEssenceAndDataParameters', Type => 'Node' },
1079             '060e2b34.0101.0102.04070100.00000000' => { Name => 'ComponentDataDefinition', Type => 'WeakReference', %componentDataDef },
1080             '060e2b34.0101.0102.04070200.00000000' => { Name => 'StreamData', Type => 'DataStream', Unknown => 1 },
1081             '060e2b34.0101.0102.04070300.00000000' => { Name => 'TimecodeStreamData', Type => 'DataStream', Unknown => 1 },
1082             '060e2b34.0101.0102.04090101.00000000' => { Name => 'RecordedFormat', Type => 'UTF-16' },
1083             '060e2b34.0101.0102.04100101.01000000' => { Name => 'TapeShellKind', Format => 'string' },
1084             '060e2b34.0101.0102.04100101.01010000' => { Name => 'TapeShellKind', Type => 'UTF-16' },
1085             '060e2b34.0101.0102.04100101.02000000' => { Name => 'TapeFormulation', Format => 'string' },
1086             '060e2b34.0101.0102.04100101.02010000' => { Name => 'TapeFormulation', Type => 'UTF-16' },
1087             '060e2b34.0101.0102.04100101.03000000' => { Name => 'TapeCapacity', Format => 'int32u' },
1088             '060e2b34.0101.0102.04100101.04000000' => { Name => 'TapeManufacturer', Format => 'string' },
1089             '060e2b34.0101.0102.04100101.04010000' => { Name => 'TapeManufacturer', Type => 'UTF-16' },
1090             '060e2b34.0101.0102.04100101.05000000' => { Name => 'TapeStock', Format => 'string' },
1091             '060e2b34.0101.0102.04100101.05010000' => { Name => 'TapeStock', Type => 'UTF-16' },
1092             '060e2b34.0101.0102.04100101.06000000' => { Name => 'TapeBatchNumber', Format => 'string' },
1093             '060e2b34.0101.0102.04100101.06010000' => { Name => 'TapeBatchNumber', Type => 'UTF-16' },
1094             '060e2b34.0101.0102.04100103.01030000' => { Name => 'PerforationsPerFrame', Format => 'int8u' },
1095             '060e2b34.0101.0102.04100103.01030100' => { Name => 'PerforationsPerFrame', Format => 'rational64s' },
1096             '060e2b34.0101.0102.04100103.01040100' => { Name => 'FilmFormatName', Type => 'UTF-16' },
1097             '060e2b34.0101.0102.04100103.01040200' => { Name => 'FilmFormatName', Type => 'FilmFormat', Unknown => 1 },
1098             '060e2b34.0101.0102.04100103.01050100' => { Name => 'FilmStockKind', Type => 'UTF-16' },
1099             '060e2b34.0101.0102.04100103.01060100' => { Name => 'FilmStockManufacturerName', Type => 'UTF-16' },
1100             '060e2b34.0101.0102.04100103.01070000' => { Name => 'FilmBatchNumber', Format => 'string' },
1101             '060e2b34.0101.0102.04100103.01070100' => { Name => 'FilmBatchNumber', Type => 'UTF-16' },
1102             '060e2b34.0101.0102.04100103.01080000' => { Name => 'FilmGauge', Type => 'FilmType', Unknown => 1 },
1103             '060e2b34.0101.0102.04100103.01090000' => { Name => 'EdgeCodeFilmGauge', Type => 'FilmType', Unknown => 1 },
1104             '060e2b34.0101.0102.04100103.02030000' => { Name => 'ExposedAspectRatio', Format => 'rational64s' },
1105             # '060e2b34.0101.0102.04180000.00000000' => { Name => 'MemoryStorageCharacteristics', Type => 'Node' },
1106             # '060e2b34.0101.0102.04180100.00000000' => { Name => 'MemoryStorageAlignmentCharacteristics', Type => 'Node' },
1107             '060e2b34.0101.0102.04180101.00000000' => { Name => 'ImageAlignmentOffset', Format => 'int32u' },
1108             '060e2b34.0101.0102.04180102.00000000' => { Name => 'ImageStartOffset', Format => 'int32u' },
1109             '060e2b34.0101.0102.04180103.00000000' => { Name => 'ImageEndOffset', Format => 'int32u' },
1110             '060e2b34.0101.0102.04180104.00000000' => { Name => 'PaddingBits', Format => 'int16s' },
1111             '060e2b34.0101.0102.04200201.01040000' => { Name => 'FocalLength', Format => 'float', PrintConv => 'sprintf("%.1f mm",$val)' },
1112             '060e2b34.0101.0102.04200201.01050000' => { Name => 'SensorSize', Format => 'string' },
1113             '060e2b34.0101.0102.04200201.01060000' => { Name => 'FNumber', Format => 'float' },
1114             '060e2b34.0101.0102.04200201.01070000' => { Name => 'SensorTypeCode', Format => 'string' },
1115             '060e2b34.0101.0102.04200201.01080000' => { Name => 'FieldOfViewHorizontal', Format => 'float' },
1116             '060e2b34.0101.0102.04200201.01090000' => { Name => 'AnamorphicLensCharacteristic', Format => 'string' },
1117             # '060e2b34.0101.0102.05020103.00000000' => { Name => 'JPEGProcessing', Type => 'Node' },
1118             # '060e2b34.0101.0102.05020103.01000000' => { Name => 'TIFFJPEGProcessing', Type => 'Node' },
1119             '060e2b34.0101.0102.05020103.01010000' => { Name => 'UniformDataFlag', Type => 'Boolean' },
1120             '060e2b34.0101.0102.05020103.01020000' => { Name => 'JPEGTableID', Type => 'JPEGTableIDType', Unknown => 1 },
1121             # '060e2b34.0101.0102.05020103.02000000' => { Name => 'JFIF_JPEGProcessing', Type => 'Node' },
1122             '060e2b34.0101.0102.05200102.00000000' => { Name => 'AlphaTransparency', Format => 'int8u',
1123             PrintConv => { 0 => 'Not Inverted', 1 => 'Inverted' },
1124             },
1125             # '060e2b34.0101.0102.05200701.00000000' => { Name => 'ModificationInformation', Type => 'Node' },
1126             '060e2b34.0101.0102.05200701.01000000' => { Name => 'GenerationID', Type => 'AUID', Unknown => 1 },
1127             '060e2b34.0101.0102.05200701.02000000' => { Name => 'ApplicationSupplierName', Format => 'string' },
1128             '060e2b34.0101.0102.05200701.02010000' => { Name => 'ApplicationSupplierName', Type => 'UTF-16' },
1129             '060e2b34.0101.0102.05200701.03000000' => { Name => 'ApplicationName', Format => 'string' },
1130             '060e2b34.0101.0102.05200701.03010000' => { Name => 'ApplicationName', Type => 'UTF-16' },
1131             '060e2b34.0101.0102.05200701.04000000' => { Name => 'ApplicationVersionNumber', Type => 'ProductVersion' },
1132             '060e2b34.0101.0102.05200701.05000000' => { Name => 'ApplicationVersionString', Format => 'string' },
1133             '060e2b34.0101.0102.05200701.05010000' => { Name => 'ApplicationVersionString', Type => 'UTF-16' },
1134             '060e2b34.0101.0102.05200701.06000000' => { Name => 'ApplicationPlatform', Format => 'string' },
1135             '060e2b34.0101.0102.05200701.06010000' => { Name => 'ApplicationPlatform', Type => 'UTF-16' },
1136             '060e2b34.0101.0102.05200701.07000000' => { Name => 'ApplicationProductID', Type => 'AUID', Unknown => 1 },
1137             '060e2b34.0101.0102.05200701.08000000' => { Name => 'LinkedGenerationID', Type => 'AUID', Unknown => 1 },
1138             '060e2b34.0101.0102.05200701.09000000' => { Name => 'ContainerVersion', Type => 'ProductVersion' },
1139             '060e2b34.0101.0102.05200701.0a000000' => { Name => 'ToolkitVersion', Type => 'ProductVersion' },
1140             # '060e2b34.0101.0102.05200900.00000000' => { Name => 'CodeProcessorSettings', Type => 'Node' },
1141             '060e2b34.0101.0102.05200901.00000000' => { Name => 'Plug-InCategoryID', Type => 'AUID', Unknown => 1 },
1142             '060e2b34.0101.0102.05200902.00000000' => { Name => 'Plug-InPlatformID', Type => 'AUID', Unknown => 1 },
1143             '060e2b34.0101.0102.05200903.00000000' => { Name => 'MinimumSupportedPlatformVersion', Type => 'VersionType' },
1144             '060e2b34.0101.0102.05200904.00000000' => { Name => 'MaximumSupportedPlatformVersion', Type => 'VersionType' },
1145             '060e2b34.0101.0102.05200905.00000000' => { Name => 'Plug-InEngineID', Type => 'AUID', Unknown => 1 },
1146             '060e2b34.0101.0102.05200906.00000000' => { Name => 'MinimumSupportedEngineVersion', Type => 'VersionType' },
1147             '060e2b34.0101.0102.05200907.00000000' => { Name => 'MaximumSupportedEngineVersion', Type => 'VersionType' },
1148             '060e2b34.0101.0102.05200908.00000000' => { Name => 'Plug-InAPIID', Type => 'AUID', Unknown => 1 },
1149             '060e2b34.0101.0102.05200909.00000000' => { Name => 'MinimumAPIVersion', Type => 'VersionType' },
1150             '060e2b34.0101.0102.0520090a.00000000' => { Name => 'MaximumAPIVersion', Type => 'VersionType' },
1151             '060e2b34.0101.0102.0520090b.00000000' => { Name => 'Software-OnlySupportFlag', Type => 'Boolean' },
1152             '060e2b34.0101.0102.0520090c.00000000' => { Name => 'HardwareAcceleratorFlag', Type => 'Boolean' },
1153             '060e2b34.0101.0102.0520090d.00000000' => { Name => 'Plug-InLocatorSet', Type => 'StrongReferenceArray', Unknown => 1 },
1154             '060e2b34.0101.0102.0520090e.00000000' => { Name => 'AuthenticationFlag', Type => 'Boolean' },
1155             '060e2b34.0101.0102.0520090f.00000000' => { Name => 'AssociatedMetadataDefinition', Type => 'AUID', Unknown => 1 },
1156             '060e2b34.0101.0102.05300402.00000000' => { Name => 'EventTrackEditRate', Format => 'rational64s' },
1157             '060e2b34.0101.0102.05300403.00000000' => { Name => 'DefaultFadeEditRate', Format => 'rational64s' },
1158             '060e2b34.0101.0102.05300404.00000000' => { Name => 'EditingEventComment', Format => 'string' },
1159             '060e2b34.0101.0102.05300404.01000000' => { Name => 'EditingEventComment', Type => 'UTF-16' },
1160             '060e2b34.0101.0102.05300405.00000000' => { Name => 'EditRate', Format => 'rational64s' },
1161             '060e2b34.0101.0102.05300506.00000000' => { Name => 'OperationDefinitionID', Type => 'WeakReference', Unknown => 1 },
1162             '060e2b34.0101.0102.05300507.00000000' => { Name => 'Value', Type => 'Indirect', Unknown => 1 },
1163             '060e2b34.0101.0102.05300508.00000000' => { Name => 'EditHint', Type => 'EditHintType', Unknown => 1 },
1164             '060e2b34.0101.0102.05300509.00000000' => { Name => 'OperationDataDefinition', Type => 'WeakReference', Unknown => 1 },
1165             '060e2b34.0101.0102.0530050a.00000000' => { Name => 'OperationCategory', Type => 'AUID', Unknown => 1 },
1166             '060e2b34.0101.0102.0530050b.00000000' => { Name => 'DisplayUnits', Format => 'string' },
1167             '060e2b34.0101.0102.0530050b.01000000' => { Name => 'DisplayUnits', Type => 'UTF-16' },
1168             '060e2b34.0101.0102.0530050c.00000000' => { Name => 'BypassOverride', Format => 'int32u' },
1169             '060e2b34.0101.0102.0530050d.00000000' => { Name => 'TimepointValue', Type => 'Indirect', Unknown => 1 },
1170             '060e2b34.0101.0102.05300601.00000000' => { Name => 'BeginAnchor', Format => 'string' },
1171             '060e2b34.0101.0102.05300601.01000000' => { Name => 'BeginAnchor', Type => 'UTF-16' },
1172             '060e2b34.0101.0102.05300602.00000000' => { Name => 'EndAnchor', Format => 'string' },
1173             '060e2b34.0101.0102.05300602.01000000' => { Name => 'EndAnchor', Type => 'UTF-16' },
1174             # '060e2b34.0101.0102.05401000.00000000' => { Name => 'TransferHistory', Type => 'Node' },
1175             # '060e2b34.0101.0102.05401001.00000000' => { Name => 'ImageTransferHistory', Type => 'Node' },
1176             '060e2b34.0101.0102.05401001.01000000' => { Name => 'FilmToVideoTransferDirection', Type => 'PulldownDirection', Unknown => 1 },
1177             '060e2b34.0101.0102.05401001.02000000' => { Name => 'FilmToVideoTransferKind', Type => 'PulldownKind', Unknown => 1 },
1178             '060e2b34.0101.0102.05401001.03000000' => { Name => 'FilmToVideoTransferPhase', Type => 'PhaseFrameType', Unknown => 1 },
1179             '060e2b34.0101.0102.06010101.01000000' => { Name => 'TeletextSubtitlesFlag', Type => 'Boolean' },
1180             '060e2b34.0101.0102.06010101.02000000' => { Name => 'SubtitleDatafileFlag', Type => 'Boolean' },
1181             '060e2b34.0101.0102.06010101.03000000' => { Name => 'ClosedCaptionSubtitlesFlag', Type => 'Boolean' },
1182             '060e2b34.0101.0102.06010102.01000000' => { Name => 'SampleIndex', Type => 'DataStream', Unknown => 1 },
1183             '060e2b34.0101.0102.06010103.01000000' => { Name => 'SourcePackageID', Type => 'PackageID', Unknown => 1 },
1184             '060e2b34.0101.0102.06010103.02000000' => { Name => 'SourceTrackID', Format => 'int32u' },
1185             '060e2b34.0101.0102.06010103.03000000' => { Name => 'RelativeScope', Format => 'int32u' },
1186             '060e2b34.0101.0102.06010103.04000000' => { Name => 'RelativeTrack', Format => 'int32u' },
1187             # '060e2b34.0101.0102.06010104.01000000' => { Name => 'WeakReferences', Type => 'Node' },
1188             '060e2b34.0101.0102.06010104.01010000' => { Name => 'ObjectClass', Type => 'WeakReference', Unknown => 1 },
1189             '060e2b34.0101.0102.06010104.01020000' => { Name => 'EssenceContainerFormat', Type => 'WeakReference', Unknown => 1 },
1190             '060e2b34.0101.0102.06010104.01030000' => { Name => 'CodecDefinition', Type => 'WeakReference', Unknown => 1 },
1191             '060e2b34.0101.0102.06010104.01040000' => { Name => 'ParameterDefinition', Type => 'WeakReference', Unknown => 1 },
1192             '060e2b34.0101.0102.06010104.01050000' => { Name => 'Interpolation', Type => 'WeakReference', Unknown => 1 },
1193             '060e2b34.0101.0102.06010104.01060000' => { Name => 'ParameterDataType', Type => 'WeakReference', Unknown => 1 },
1194             '060e2b34.0101.0102.06010104.01070000' => { Name => 'CodecEssenceDescriptor', Type => 'WeakReference', Unknown => 1 },
1195             # '060e2b34.0101.0102.06010104.02000000' => { Name => 'StrongReferences', Type => 'Node' },
1196             '060e2b34.0101.0102.06010104.02010000' => { Name => 'ContentStorage', Type => 'StrongReference', Unknown => 1 },
1197             '060e2b34.0101.0102.06010104.02020000' => { Name => 'Dictionary', Type => 'StrongReference', Unknown => 1 },
1198             '060e2b34.0101.0102.06010104.02030000' => { Name => 'EssenceDescription', Type => 'StrongReference', Unknown => 1 },
1199             '060e2b34.0101.0102.06010104.02040000' => { Name => 'Sequence', Type => 'StrongReference', Unknown => 1 },
1200             '060e2b34.0101.0102.06010104.02050000' => { Name => 'TransitionEffect', Type => 'StrongReference', Unknown => 1 },
1201             '060e2b34.0101.0102.06010104.02060000' => { Name => 'EffectRendering', Type => 'StrongReference', Unknown => 1 },
1202             '060e2b34.0101.0102.06010104.02070000' => { Name => 'InputSegment', Type => 'StrongReference', Unknown => 1 },
1203             '060e2b34.0101.0102.06010104.02080000' => { Name => 'StillFrame', Type => 'StrongReference', Unknown => 1 },
1204             '060e2b34.0101.0102.06010104.02090000' => { Name => 'Selected', Type => 'StrongReference', Unknown => 1 },
1205             '060e2b34.0101.0102.06010104.020a0000' => { Name => 'Annotation', Type => 'StrongReference', Unknown => 1 },
1206             '060e2b34.0101.0102.06010104.020b0000' => { Name => 'ManufacturerInformationObject', Type => 'StrongReference', Unknown => 1 },
1207             # '060e2b34.0101.0102.06010104.03000000' => { Name => 'WeakReferencesBatches', Type => 'Node' },
1208             '060e2b34.0101.0102.06010104.03010000' => { Name => 'CodecEssenceKinds', Type => 'WeakReferenceBatch', Unknown => 1 },
1209             '060e2b34.0101.0102.06010104.03020000' => { Name => 'OperationParameters', Type => 'WeakReferenceBatch', Unknown => 1 },
1210             # '060e2b34.0101.0102.06010104.04000000' => { Name => 'WeakReferencesArrays', Type => 'Node' },
1211             '060e2b34.0101.0102.06010104.04010000' => { Name => 'DegradedEffects', Type => 'WeakReferenceArray', Unknown => 1 },
1212             # '060e2b34.0101.0102.06010104.05000000' => { Name => 'StrongReferencesBatches', Type => 'Node' },
1213             '060e2b34.0101.0102.06010104.05010000' => { Name => 'Packages', Type => 'StrongReferenceBatch', Unknown => 1 },
1214             '060e2b34.0101.0102.06010104.05020000' => { Name => 'EssenceData', Type => 'StrongReferenceBatch', Unknown => 1 },
1215             '060e2b34.0101.0102.06010104.05030000' => { Name => 'OperationDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1216             '060e2b34.0101.0102.06010104.05040000' => { Name => 'ParameterDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1217             '060e2b34.0101.0102.06010104.05050000' => { Name => 'DataDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1218             '060e2b34.0101.0102.06010104.05060000' => { Name => 'Plug-InDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1219             '060e2b34.0101.0102.06010104.05070000' => { Name => 'CodecDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1220             '060e2b34.0101.0102.06010104.05080000' => { Name => 'ContainerDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1221             '060e2b34.0101.0102.06010104.05090000' => { Name => 'InterpolationDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1222             # '060e2b34.0101.0102.06010104.06000000' => { Name => 'StrongReferencesArrays', Type => 'Node' },
1223             '060e2b34.0101.0102.06010104.06010000' => { Name => 'AvailableRepresentations', Type => 'StrongReferenceArray', Unknown => 1 },
1224             '060e2b34.0101.0102.06010104.06020000' => { Name => 'InputSegments', Type => 'StrongReferenceArray', Unknown => 1 },
1225             '060e2b34.0101.0102.06010104.06030000' => { Name => 'EssenceLocators', Type => 'StrongReferenceArray', Unknown => 1 },
1226             '060e2b34.0101.0102.06010104.06040000' => { Name => 'IdentificationList', Type => 'StrongReferenceArray', Unknown => 1 },
1227             '060e2b34.0101.0102.06010104.06050000' => { Name => 'Tracks', Type => 'StrongReferenceArray', Unknown => 1 },
1228             '060e2b34.0101.0102.06010104.06060000' => { Name => 'ControlPointList', Type => 'StrongReferenceArray', Unknown => 1 },
1229             '060e2b34.0101.0102.06010104.06070000' => { Name => 'PackageTracks', Type => 'StrongReferenceArray', Unknown => 1 },
1230             '060e2b34.0101.0102.06010104.06080000' => { Name => 'Alternates', Type => 'StrongReferenceArray', Unknown => 1 },
1231             '060e2b34.0101.0102.06010104.06090000' => { Name => 'ComponentsInSequence', Type => 'StrongReferenceArray', Unknown => 1 },
1232             '060e2b34.0101.0102.06010104.060a0000' => { Name => 'Parameters', Type => 'StrongReferenceBatch', Unknown => 1 },
1233             # '060e2b34.0101.0102.06010106.00000000' => { Name => 'EssenceToObjectRelationships', Type => 'Node' },
1234             '060e2b34.0101.0102.06010106.01000000' => { Name => 'LinkedPackageID', Type => 'PackageID', Unknown => 1 },
1235             # '060e2b34.0101.0102.06010107.00000000' => { Name => 'ObjectDictionaryToMetadataRelationships', Type => 'Node' },
1236             '060e2b34.0101.0102.06010107.01000000' => { Name => 'ParentClass', Type => 'WeakReference', Unknown => 1 },
1237             '060e2b34.0101.0102.06010107.02000000' => { Name => 'Properties', Type => 'StrongReferenceBatch', Unknown => 1 },
1238             '060e2b34.0101.0102.06010107.03000000' => { Name => 'IsConcrete', Type => 'Boolean' },
1239             '060e2b34.0101.0102.06010107.04000000' => { Name => 'PropertyType', Type => 'WeakReference', Unknown => 1 },
1240             '060e2b34.0101.0102.06010107.05000000' => { Name => 'LocalID', Format => 'int16u' },
1241             '060e2b34.0101.0102.06010107.06000000' => { Name => 'IsUniqueIdentifier', Type => 'Boolean' },
1242             '060e2b34.0101.0102.06010107.07000000' => { Name => 'ClassDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1243             '060e2b34.0101.0102.06010107.08000000' => { Name => 'TypeDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
1244             '060e2b34.0101.0102.06010107.09000000' => { Name => 'TargetClassOfStrongReference', Type => 'WeakReference', Unknown => 1 },
1245             '060e2b34.0101.0102.06010107.0a000000' => { Name => 'TargetClassOfWeakReference', Type => 'WeakReference', Unknown => 1 },
1246             '060e2b34.0101.0102.06010107.0b000000' => { Name => 'EnumerationUnderlyingIntegerType', Type => 'WeakReference', Unknown => 1 },
1247             '060e2b34.0101.0102.06010107.0c000000' => { Name => 'FixedArrayElementType', Type => 'WeakReference', Unknown => 1 },
1248             '060e2b34.0101.0102.06010107.0d000000' => { Name => 'VariableArrayElementType', Type => 'WeakReference', Unknown => 1 },
1249             '060e2b34.0101.0102.06010107.0e000000' => { Name => 'SetElementType', Type => 'WeakReference', Unknown => 1 },
1250             '060e2b34.0101.0102.06010107.0f000000' => { Name => 'StringElementType', Type => 'WeakReference', Unknown => 1 },
1251             '060e2b34.0101.0102.06010107.10000000' => { Name => 'StreamElementType', Type => 'WeakReference', Unknown => 1 },
1252             '060e2b34.0101.0102.06010107.11000000' => { Name => 'MemberTypes', Type => 'WeakReferenceArray', Unknown => 1 },
1253             '060e2b34.0101.0102.06010107.12000000' => { Name => 'RenamedType', Type => 'WeakReference', Unknown => 1 },
1254             '060e2b34.0101.0102.06010107.13000000' => { Name => 'DictionaryIdentifier', Type => 'AUID', Unknown => 1 },
1255             '060e2b34.0101.0102.06010107.14000000' => { Name => 'DictionaryDescription', Format => 'string' },
1256             '060e2b34.0101.0102.06010107.14010000' => { Name => 'DictionaryDescription', Type => 'UTF-16' },
1257             # '060e2b34.0101.0102.06080101.00000000' => { Name => 'ContinuityCounts', Type => 'Node' },
1258             '060e2b34.0101.0102.06080101.01000000' => { Name => 'BlockContinuityCount', Format => 'int16u' },
1259             # '060e2b34.0101.0102.06080102.00000000' => { Name => 'StreamPositionalRelationships', Type => 'Node' },
1260             '060e2b34.0101.0102.06080102.01000000' => { Name => 'StreamPositionIndicator', Format => 'int8u' },
1261             # '060e2b34.0101.0102.06080202.00000000' => { Name => 'StorageOffsets', Type => 'Node' },
1262             '060e2b34.0101.0102.07020103.01030000' => { Name => 'Origin', Format => 'int64s', %duration },
1263             '060e2b34.0101.0102.07020103.01040000' => { Name => 'StartTimeRelativeToReference', Format => 'int64s', %duration },
1264             '060e2b34.0101.0102.07020103.01050000' => { Name => 'StartTimecode', Format => 'int64s', %duration },
1265             '060e2b34.0101.0102.07020103.01060000' => { Name => 'CutPoint', Format => 'int64s', %duration },
1266             '060e2b34.0101.0102.07020103.03030000' => { Name => 'EventStart', Type => 'Position', %duration },
1267             # '060e2b34.0101.0102.07020103.10020000' => { Name => 'EditOffsets', Type => 'Node' },
1268             '060e2b34.0101.0102.07020103.10020100' => { Name => 'ControlPointTime', Format => 'rational64s' },
1269             '060e2b34.0101.0102.07020110.01030000' => { Name => 'CreateDate', %timestamp },
1270             '060e2b34.0101.0102.07020110.02030000' => { Name => 'ModifyDate', %timestamp },
1271             '060e2b34.0101.0102.07020110.02040000' => { Name => 'ContainerLastModifyDate', %timestamp },
1272             '060e2b34.0101.0102.07020110.02050000' => { Name => 'PackageLastModifyDate', %timestamp },
1273             '060e2b34.0101.0102.07020201.01030000' => { Name => 'Duration', Type => 'Length', %duration },
1274             '060e2b34.0101.0102.07020201.01050100' => { Name => 'DefaultFadeDuration', Type => 'Length', %duration },
1275             '060e2b34.0101.0102.07020201.01050200' => { Name => 'Fade-InDuration', Type => 'Length', %duration },
1276             '060e2b34.0101.0102.07020201.01050300' => { Name => 'Fade-OutDuration', Type => 'Length', %duration },
1277             '060e2b34.0101.0102.0d010101.01010100' => { Name => 'TapeFormat', Type => 'TapeFormatType', Unknown => 1 },
1278             '060e2b34.0101.0103.01011001.01000000' => { Name => 'OrganizationID', Type => 'UTF-16' },
1279             '060e2b34.0101.0103.01011504.00000000' => { Name => 'GlobalNumber', Format => 'string' },
1280             '060e2b34.0101.0103.01012007.00000000' => { Name => 'DeviceIDKind', Format => 'string' },
1281             '060e2b34.0101.0103.01012008.00000000' => { Name => 'DeviceKind', Format => 'string' },
1282             '060e2b34.0101.0103.01012008.02000000' => { Name => 'DeviceKindCode', Format => 'string' },
1283             # '060e2b34.0101.0103.01012100.00000000' => { Name => 'PlatformIdentifiers', Type => 'Node' },
1284             '060e2b34.0101.0103.01012101.00000000' => { Name => 'PlatformDesignation', Format => 'string' },
1285             '060e2b34.0101.0103.01012102.00000000' => { Name => 'PlatformModel', Format => 'string' },
1286             '060e2b34.0101.0103.01012103.00000000' => { Name => 'PlatformSerialNumber', Format => 'string' },
1287             '060e2b34.0101.0103.01030107.00000000' => { Name => 'LocalTargetID', Format => 'string' },
1288             # '060e2b34.0101.0103.01030203.00000000' => { Name => 'DiskIdentifiers', Type => 'Node' },
1289             # '060e2b34.0101.0103.01030203.01000000' => { Name => 'MagneticDisks', Type => 'Node' },
1290             '060e2b34.0101.0103.01030203.01010000' => { Name => 'MagneticDiskNumber', Format => 'string' },
1291             # '060e2b34.0101.0103.01030203.02000000' => { Name => 'OpticalDiscs', Type => 'Node' },
1292             '060e2b34.0101.0103.01030203.02010000' => { Name => 'OpticalDiscNumber', Format => 'string' },
1293             '060e2b34.0101.0103.01030402.00000000' => { Name => 'StreamID', Format => 'int8u' },
1294             '060e2b34.0101.0103.01030403.00000000' => { Name => 'TransportStreamID', Format => 'int16u' },
1295             # '060e2b34.0101.0103.01030500.00000000' => { Name => 'OrganizationalProgramIdentifiers', Type => 'Node' },
1296             '060e2b34.0101.0103.01030501.00000000' => { Name => 'OrganizationalProgramNumber', Format => 'string' },
1297             '060e2b34.0101.0103.01030501.01000000' => { Name => 'OrganizationalProgramNumber', Type => 'UTF-16' },
1298             # '060e2b34.0101.0103.01030600.00000000' => { Name => 'MetadataIdentifiers', Type => 'Node' },
1299             '060e2b34.0101.0103.01030601.00000000' => { Name => 'ItemDesignatorID', Type => 'SMPTE336M', Unknown => 1 },
1300             '060e2b34.0101.0103.01040101.01000000' => { Name => 'LocalFilePath', Type => 'UTF-16' },
1301             '060e2b34.0101.0103.01050101.00000000' => { Name => 'TitleKind', Type => 'UTF-16' },
1302             '060e2b34.0101.0103.01050201.00000000' => { Name => 'MainTitle', Type => 'UTF-16' },
1303             '060e2b34.0101.0103.01050301.00000000' => { Name => 'SecondaryTitle', Type => 'UTF-16' },
1304             '060e2b34.0101.0103.01050401.00000000' => { Name => 'SeriesNumber', Type => 'UTF-16' },
1305             '060e2b34.0101.0103.01050501.00000000' => { Name => 'EpisodeNumber', Type => 'UTF-16' },
1306             '060e2b34.0101.0103.01050601.00000000' => { Name => 'SceneNumber', Type => 'UTF-16' },
1307             '060e2b34.0101.0103.01050801.00000000' => { Name => 'VersionTitle', Type => 'UTF-16' },
1308             '060e2b34.0101.0103.01050900.00000000' => { Name => 'MissionID', Format => 'string' },
1309             '060e2b34.0101.0103.01050901.00000000' => { Name => 'MissionID', Type => 'UTF-16' },
1310             # '060e2b34.0101.0103.01100300.00000000' => { Name => 'MusicIndustryIdentifiers', Type => 'Node' },
1311             '060e2b34.0101.0103.01100301.00000000' => { Name => 'RecordingLabelName', Format => 'string' },
1312             '060e2b34.0101.0103.01100301.01000000' => { Name => 'RecordingLabelName', Type => 'UTF-16' },
1313             '060e2b34.0101.0103.01100302.00000000' => { Name => 'CollectionName', Format => 'string' },
1314             '060e2b34.0101.0103.01100302.01000000' => { Name => 'CollectionName', Type => 'UTF-16' },
1315             '060e2b34.0101.0103.01100303.00000000' => { Name => 'OriginCode', Format => 'string' },
1316             '060e2b34.0101.0103.01100304.00000000' => { Name => 'MainCatalogNumber', Format => 'string' },
1317             '060e2b34.0101.0103.01100305.00000000' => { Name => 'CatalogPrefixNumber', Format => 'string' },
1318             '060e2b34.0101.0103.01100306.00000000' => { Name => 'SideNumber', Format => 'string' },
1319             '060e2b34.0101.0103.01100307.00000000' => { Name => 'RecordedTrackNumber', Format => 'string' },
1320             '060e2b34.0101.0103.02020200.00000000' => { Name => 'SeriesinaSeriesGroupCount', Format => 'int16u' },
1321             '060e2b34.0101.0103.02020300.00000000' => { Name => 'ProgrammingGroupKind', Format => 'string' },
1322             # '060e2b34.0101.0103.02030000.00000000' => { Name => 'Purchaser', Type => 'Node' },
1323             '060e2b34.0101.0103.02030100.00000000' => { Name => 'PurchasingOrganizationName', Format => 'string' },
1324             '060e2b34.0101.0103.02030200.00000000' => { Name => 'SalesContractNumber', Format => 'string' },
1325             '060e2b34.0101.0103.02030400.00000000' => { Name => 'PurchasingDepartment', Format => 'string' },
1326             # '060e2b34.0101.0103.02040000.00000000' => { Name => 'ContractDescriptions', Type => 'Node' },
1327             '060e2b34.0101.0103.02040100.00000000' => { Name => 'ContractType', Format => 'string' },
1328             '060e2b34.0101.0103.02040101.00000000' => { Name => 'ContractTypeCode', Format => 'string' },
1329             '060e2b34.0101.0103.02040200.00000000' => { Name => 'ContractClauseDescription', Format => 'string' },
1330             '060e2b34.0101.0103.02040300.00000000' => { Name => 'ContractLineCode', Format => 'string' },
1331             '060e2b34.0101.0103.02040301.00000000' => { Name => 'ContractLineName', Format => 'string' },
1332             '060e2b34.0101.0103.02040400.00000000' => { Name => 'ContractTermsOfBusiness', Format => 'string' },
1333             '060e2b34.0101.0103.02040500.00000000' => { Name => 'ContractInstallmentPercentage', Format => 'float' },
1334             '060e2b34.0101.0103.02040600.00000000' => { Name => 'Jurisdiction', Format => 'string' },
1335             '060e2b34.0101.0103.02050101.01000000' => { Name => 'CopyrightStatus', Type => 'UTF-16' },
1336             '060e2b34.0101.0103.02050102.01000000' => { Name => 'CopyrightOwnerName', Type => 'UTF-16' },
1337             '060e2b34.0101.0103.02050201.01000000' => { Name => 'IntellectualPropertyDescription', Type => 'UTF-16' },
1338             '060e2b34.0101.0103.02050202.01000000' => { Name => 'IntellectualPropertyRights', Type => 'UTF-16' },
1339             '060e2b34.0101.0103.02050301.01000000' => { Name => 'Rightsholder', Type => 'UTF-16' },
1340             '060e2b34.0101.0103.02050302.01000000' => { Name => 'RightsManagementAuthority', Type => 'UTF-16' },
1341             '060e2b34.0101.0103.02050403.00000000' => { Name => 'RightsConditionDescription', Format => 'string' },
1342             '060e2b34.0101.0103.02050403.01000000' => { Name => 'RightsConditionDescription', Type => 'UTF-16' },
1343             '060e2b34.0101.0103.02060101.01000000' => { Name => 'CurrencyName', Format => 'string' },
1344             '060e2b34.0101.0103.02060202.00000000' => { Name => 'TotalPayment', Format => 'string' },
1345             '060e2b34.0101.0103.02060203.00000000' => { Name => 'PayeeAccountName', Format => 'string' },
1346             '060e2b34.0101.0103.02060204.00000000' => { Name => 'PayeeAccountNumber', Format => 'string' },
1347             '060e2b34.0101.0103.02060205.00000000' => { Name => 'PayeeAccountSortCode', Format => 'string' },
1348             '060e2b34.0101.0103.02060302.00000000' => { Name => 'TotalIncome', Format => 'string' },
1349             '060e2b34.0101.0103.02060303.00000000' => { Name => 'PayerAccountName', Format => 'string' },
1350             '060e2b34.0101.0103.02060304.00000000' => { Name => 'PayerAccountNumber', Format => 'string' },
1351             '060e2b34.0101.0103.02060305.00000000' => { Name => 'PayerAccountSortCode', Format => 'string' },
1352             # '060e2b34.0101.0103.02080200.00000000' => { Name => 'Classification', Type => 'Node' },
1353             '060e2b34.0101.0103.02080201.00000000' => { Name => 'SecurityClassification', Format => 'string' },
1354             '060e2b34.0101.0103.02080202.00000000' => { Name => 'SecurityClassificationCaveats', Format => 'string' },
1355             '060e2b34.0101.0103.02080203.00000000' => { Name => 'ClassifiedBy', Format => 'string' },
1356             '060e2b34.0101.0103.02080204.00000000' => { Name => 'ClassificationReason', Format => 'string' },
1357             '060e2b34.0101.0103.02080205.00000000' => { Name => 'DeclassificationDate', Format => 'string', Groups => { 2 => 'Time' } },
1358             '060e2b34.0101.0103.02080206.00000000' => { Name => 'DerivedFrom', Format => 'string' },
1359             '060e2b34.0101.0103.02080207.00000000' => { Name => 'ClassificationComment', Format => 'string' },
1360             '060e2b34.0101.0103.02080208.00000000' => { Name => 'ClassificationAndMarkingSystem', Format => 'string' },
1361             '060e2b34.0101.0103.02100101.01010000' => { Name => 'BroadcastOrganizationName', Type => 'UTF-16' },
1362             '060e2b34.0101.0103.02100101.02010000' => { Name => 'BroadcastServiceName', Type => 'UTF-16' },
1363             '060e2b34.0101.0103.02100101.03020000' => { Name => 'BroadcastMediumCode', Format => 'string' },
1364             '060e2b34.0101.0103.02100101.04010000' => { Name => 'BroadcastRegion', Type => 'UTF-16' },
1365             '060e2b34.0101.0103.02300101.01000000' => { Name => 'NatureOfPersonality', Type => 'UTF-16' },
1366             '060e2b34.0101.0103.02300102.01010000' => { Name => 'ContributionStatus', Type => 'UTF-16' },
1367             '060e2b34.0101.0103.02300103.01010000' => { Name => 'SupportOrAdministrationStatus', Type => 'UTF-16' },
1368             '060e2b34.0101.0103.02300201.01000000' => { Name => 'OrganizationKind', Type => 'UTF-16' },
1369             '060e2b34.0101.0103.02300202.01010000' => { Name => 'ProductionOrganizationRole', Type => 'UTF-16' },
1370             '060e2b34.0101.0103.02300203.01010000' => { Name => 'SupportOrganizationRole', Type => 'UTF-16' },
1371             '060e2b34.0101.0103.02300501.01000000' => { Name => 'JobFunctionName', Type => 'UTF-16' },
1372             '060e2b34.0101.0103.02300501.02000000' => { Name => 'JobFunctionCode', Format => 'string' },
1373             '060e2b34.0101.0103.02300502.01000000' => { Name => 'RoleName', Type => 'UTF-16' },
1374             '060e2b34.0101.0103.02300503.00000000' => { Name => 'JobTitle', Format => 'string' },
1375             '060e2b34.0101.0103.02300503.01000000' => { Name => 'JobTitle', Type => 'UTF-16' },
1376             '060e2b34.0101.0103.02300601.01000000' => { Name => 'ContactKind', Type => 'UTF-16' },
1377             '060e2b34.0101.0103.02300602.01000000' => { Name => 'ContactDepartmentName', Type => 'UTF-16' },
1378             '060e2b34.0101.0103.02300603.01010100' => { Name => 'FamilyName', Type => 'UTF-16' },
1379             '060e2b34.0101.0103.02300603.01020100' => { Name => 'FirstGivenName', Type => 'UTF-16' },
1380             '060e2b34.0101.0103.02300603.01030100' => { Name => 'SecondGivenName', Type => 'UTF-16' },
1381             '060e2b34.0101.0103.02300603.01040100' => { Name => 'ThirdGivenName', Type => 'UTF-16' },
1382             '060e2b34.0101.0103.02300603.01070000' => { Name => 'PersonDescription', Format => 'string' },
1383             '060e2b34.0101.0103.02300603.01070100' => { Name => 'PersonDescription', Type => 'UTF-16' },
1384             '060e2b34.0101.0103.02300603.02010100' => { Name => 'MainName', Type => 'UTF-16' },
1385             '060e2b34.0101.0103.02300603.02020100' => { Name => 'SupplementaryName', Type => 'UTF-16' },
1386             '060e2b34.0101.0103.02300603.03010100' => { Name => 'OrganizationMainName', Type => 'UTF-16' },
1387             '060e2b34.0101.0103.02300603.03020100' => { Name => 'SupplementaryOrganizationName', Type => 'UTF-16' },
1388             '060e2b34.0101.0103.03010101.02000000' => { Name => 'RegionCode', Format => 'string' },
1389             # '060e2b34.0101.0103.03010101.10000000' => { Name => 'CountryAndRegionNames', Type => 'Node' },
1390             '060e2b34.0101.0103.03010101.10010000' => { Name => 'CountryName', Format => 'string' },
1391             '060e2b34.0101.0103.03010101.10010100' => { Name => 'CountryName', Type => 'UTF-16' },
1392             '060e2b34.0101.0103.03010101.10020000' => { Name => 'RegionName', Format => 'string' },
1393             '060e2b34.0101.0103.03010101.10020100' => { Name => 'RegionName', Type => 'UTF-16' },
1394             # '060e2b34.0101.0103.03010102.10000000' => { Name => 'LanguageNames', Type => 'Node' },
1395             '060e2b34.0101.0103.03010102.10010000' => { Name => 'LanguageName', Format => 'string' },
1396             '060e2b34.0101.0103.03010102.10010100' => { Name => 'LanguageName', Type => 'UTF-16' },
1397             '060e2b34.0101.0103.03010210.05000000' => { Name => 'TerminatingFillerData', Format => 'int8u' },
1398             '060e2b34.0101.0103.03010303.03000000' => { Name => 'TimingBiasCorrection', Format => 'float' },
1399             '060e2b34.0101.0103.03010303.04000000' => { Name => 'TimingBiasCorrectionDescription', Format => 'string' },
1400             '060e2b34.0101.0103.03020101.03010000' => { Name => 'Genre', Type => 'UTF-16' },
1401             '060e2b34.0101.0103.03020101.04010000' => { Name => 'TargetAudience', Type => 'UTF-16' },
1402             '060e2b34.0101.0103.03020101.10000000' => { Name => 'ProgramMaterialClassificationCode', Format => 'string' },
1403             '060e2b34.0101.0103.03020102.03010000' => { Name => 'Theme', Type => 'UTF-16' },
1404             '060e2b34.0101.0103.03020102.04010000' => { Name => 'SubjectName', Format => 'string' },
1405             '060e2b34.0101.0103.03020102.04020000' => { Name => 'SubjectName', Type => 'UTF-16' },
1406             '060e2b34.0101.0103.03020102.05010000' => { Name => 'Keywords', Type => 'UTF-16' },
1407             '060e2b34.0101.0103.03020102.0f000000' => { Name => 'KeyFrameSampleCount', Format => 'int32u' },
1408             '060e2b34.0101.0103.03020106.01010000' => { Name => 'Abstract', Type => 'UTF-16' },
1409             '060e2b34.0101.0103.03020106.02010000' => { Name => 'Purpose', Type => 'UTF-16' },
1410             '060e2b34.0101.0103.03020106.03010000' => { Name => 'Description', Type => 'UTF-16' },
1411             '060e2b34.0101.0103.03020106.04010000' => { Name => 'ColorDescriptor', Type => 'UTF-16' },
1412             '060e2b34.0101.0103.03020106.05010000' => { Name => 'FormatDescriptor', Type => 'UTF-16' },
1413             '060e2b34.0101.0103.03020106.06000000' => { Name => 'IntentDescriptor', Format => 'string' },
1414             '060e2b34.0101.0103.03020106.06010000' => { Name => 'IntentDescriptor', Type => 'UTF-16' },
1415             '060e2b34.0101.0103.03020106.07000000' => { Name => 'TextualDescriptionKind', Format => 'string' },
1416             '060e2b34.0101.0103.03020106.07010000' => { Name => 'TextualDescriptionKind', Type => 'UTF-16' },
1417             '060e2b34.0101.0103.03020201.03000000' => { Name => 'FestivalName', Format => 'string' },
1418             '060e2b34.0101.0103.03020301.02020000' => { Name => 'ObjectDescriptionCode', Format => 'string' },
1419             # '060e2b34.0101.0103.03020302.00000000' => { Name => 'GeneralComments', Type => 'Node' },
1420             '060e2b34.0101.0103.03020302.01000000' => { Name => 'DescriptionKind', Format => 'string' },
1421             '060e2b34.0101.0103.03020302.01010000' => { Name => 'DescriptionKind', Type => 'UTF-16' },
1422             '060e2b34.0101.0103.03020302.02000000' => { Name => 'DescriptiveComment', Format => 'string' },
1423             '060e2b34.0101.0103.03020302.02010000' => { Name => 'DescriptiveComment', Type => 'UTF-16' },
1424             # '060e2b34.0101.0103.03020401.00000000' => { Name => 'ObjectNames', Type => 'Node' },
1425             # '060e2b34.0101.0103.03020600.00000000' => { Name => 'Human-AssignedContextDescriptions', Type => 'Node' },
1426             '060e2b34.0101.0103.03020601.00000000' => { Name => 'ContextDescription', Format => 'string' },
1427             '060e2b34.0101.0103.03030102.06010000' => { Name => 'ComputedKeywords', Type => 'UTF-16' },
1428             '060e2b34.0101.0103.03030301.04000000' => { Name => 'ObjectIdentificationConfidence', Format => 'int16u' },
1429             '060e2b34.0101.0103.03030301.05000000' => { Name => 'ObjectHorizontalAverageDimension', Format => 'int32u' },
1430             '060e2b34.0101.0103.03030301.06000000' => { Name => 'ObjectVerticalAverageDimension', Format => 'int32u' },
1431             '060e2b34.0101.0103.03030301.07000000' => { Name => 'ObjectAreaDimension', Format => 'int32u' },
1432             '060e2b34.0101.0103.04010101.04000000' => { Name => 'HorizontalActionSafePercentage', Format => 'float' },
1433             '060e2b34.0101.0103.04010101.05000000' => { Name => 'VerticalActionSafePercentage', Format => 'float' },
1434             '060e2b34.0101.0103.04010101.06000000' => { Name => 'HorizontalGraphicsSafePercentage', Format => 'float' },
1435             '060e2b34.0101.0103.04010101.07000000' => { Name => 'VerticalGraphicsSafePercentage', Format => 'float' },
1436             '060e2b34.0101.0103.04010101.08000000' => { Name => 'PerceivedDisplayFormatName', Format => 'string' },
1437             '060e2b34.0101.0103.04010101.08010000' => { Name => 'PerceivedDisplayFormatCode', Format => 'string' },
1438             '060e2b34.0101.0103.04010201.01050000' => { Name => 'VideoColorKind', Format => 'string' },
1439             '060e2b34.0101.0103.04010301.07000000' => { Name => 'PictureDisplayRate', Format => 'int16u' },
1440             '060e2b34.0101.0103.04010501.11000000' => { Name => 'VideoAverageBitrate', Format => 'float', PrintConv => 'ConvertBitrate($val)' },
1441             '060e2b34.0101.0103.04010501.12000000' => { Name => 'VideoFixedBitrate', Type => 'Boolean' },
1442             # '060e2b34.0101.0103.04010b00.00000000' => { Name => 'VideoFileFormats', Type => 'Node' },
1443             '060e2b34.0101.0103.04010b01.00000000' => { Name => 'DigitalVideoFileFormat', Format => 'string' },
1444             '060e2b34.0101.0103.04020401.01000000' => { Name => 'CodingLawName', Format => 'string' },
1445             '060e2b34.0101.0103.04020402.01000000' => { Name => 'AudioCodingSchemeCode', Format => 'string', Groups => { 2 => 'Audio' } },
1446             '060e2b34.0101.0103.04020402.02000000' => { Name => 'AudioCodingSchemeName', Format => 'string', Groups => { 2 => 'Audio' } },
1447             '060e2b34.0101.0103.04030301.00000000' => { Name => 'DigitalEncodingBitrate', Format => 'int32u', PrintConv => 'ConvertBitrate($val)' },
1448             '060e2b34.0101.0103.04030302.00000000' => { Name => 'DataEssenceCodingID', Type => 'AUID', Unknown => 1 },
1449             # '060e2b34.0101.0103.040f0000.00000000' => { Name => 'StorageCharacteristics', Type => 'Node' },
1450             '060e2b34.0101.0103.040f0100.00000000' => { Name => 'StorageKind', Format => 'string' },
1451             '060e2b34.0101.0103.040f0101.00000000' => { Name => 'StorageKind', Type => 'UTF-16' },
1452             '060e2b34.0101.0103.040f0102.00000000' => { Name => 'StorageKindCode', Format => 'string' },
1453             # '060e2b34.0101.0103.04100101.10000000' => { Name => 'TapeMediumFundamentalParameters', Type => 'Node' },
1454             '060e2b34.0101.0103.04100101.10010000' => { Name => 'TapePartitionCapacity', Format => 'int64u' },
1455             # '060e2b34.0101.0103.04100102.01000000' => { Name => 'DiscMediumFundamentalParameters', Type => 'Node' },
1456             '060e2b34.0101.0103.04100102.02000000' => { Name => 'DiscPartitionCapacity', Format => 'int64u' },
1457             '060e2b34.0101.0103.04200201.01040100' => { Name => 'FocalLength', Format => 'int32u', ValueConv => '$val/10' },
1458             '060e2b34.0101.0103.04200201.01080100' => { Name => 'FieldOfViewHorizontal', Format => 'int16u', ValueConv => '$val/10' },
1459             '060e2b34.0101.0103.04200201.010a0000' => { Name => 'FieldOfViewVertical', Format => 'int16u', ValueConv => '$val/10' },
1460             # '060e2b34.0101.0103.04300000.00000000' => { Name => 'SystemCharacteristics', Type => 'Node' },
1461             '060e2b34.0101.0103.04300100.00000000' => { Name => 'SystemNameOrNumber', Format => 'string' },
1462             '060e2b34.0101.0103.05010104.00000000' => { Name => 'LogoFlag', Type => 'Boolean' },
1463             '060e2b34.0101.0103.05010106.00000000' => { Name => 'GraphicKind', Format => 'string' },
1464             '060e2b34.0101.0103.05010107.00000000' => { Name => 'GraphicUsageKind', Format => 'string' },
1465             '060e2b34.0101.0103.05010401.00000000' => { Name => 'SignatureTuneFlag', Type => 'Boolean' },
1466             '060e2b34.0101.0103.05010402.00000000' => { Name => 'BackgroundMusicFlag', Type => 'Boolean' },
1467             # '060e2b34.0101.0103.06030000.00000000' => { Name => 'RelatedProductionContent', Type => 'Node' },
1468             # '060e2b34.0101.0103.06030500.00000000' => { Name => 'RelatedTextualContent', Type => 'Node' },
1469             '060e2b34.0101.0103.06030501.00000000' => { Name => 'ProductionScriptReference', Format => 'string' },
1470             '060e2b34.0101.0103.06030501.01000000' => { Name => 'ProductionScriptReference', Type => 'UTF-16' },
1471             '060e2b34.0101.0103.06030502.00000000' => { Name => 'TranscriptReference', Format => 'string' },
1472             '060e2b34.0101.0103.06030502.01000000' => { Name => 'TranscriptReference', Type => 'UTF-16' },
1473             '060e2b34.0101.0103.07010103.00000000' => { Name => 'HorizontalDatum', Format => 'string' },
1474             '060e2b34.0101.0103.07010104.00000000' => { Name => 'VerticalDatum', Format => 'string' },
1475             '060e2b34.0101.0103.07010201.02040200' => { Name => 'DeviceLatitude', Format => 'double', %geoLat },
1476             '060e2b34.0101.0103.07010201.02060200' => { Name => 'DeviceLongitude', Format => 'double', %geoLon },
1477             '060e2b34.0101.0103.07010201.03020200' => { Name => 'FrameCenterLatitude', Format => 'double', %geoLat },
1478             '060e2b34.0101.0103.07010201.03040200' => { Name => 'FrameCenterLongitude', Format => 'double', %geoLon },
1479             '060e2b34.0101.0103.07010201.03070000' => { Name => 'CornerLatitudePoint1', Format => 'string', %geoLat, ValueConv => \&ConvLatLon },
1480             '060e2b34.0101.0103.07010201.03070100' => { Name => 'CornerLatitudePoint1', Format => 'double', %geoLat },
1481             '060e2b34.0101.0103.07010201.03080000' => { Name => 'CornerLatitudePoint2', Format => 'string', %geoLat },
1482             '060e2b34.0101.0103.07010201.03080100' => { Name => 'CornerLatitudePoint2', Format => 'double', %geoLat },
1483             '060e2b34.0101.0103.07010201.03090000' => { Name => 'CornerLatitudePoint3', Format => 'string', %geoLat },
1484             '060e2b34.0101.0103.07010201.03090100' => { Name => 'CornerLatitudePoint3', Format => 'double', %geoLat },
1485             '060e2b34.0101.0103.07010201.030a0000' => { Name => 'CornerLatitudePoint4', Format => 'string' },
1486             '060e2b34.0101.0103.07010201.030a0100' => { Name => 'CornerLatitudePoint4', Format => 'double', %geoLat },
1487             '060e2b34.0101.0103.07010201.030b0000' => { Name => 'CornerLongitudePoint1', Format => 'string' },
1488             '060e2b34.0101.0103.07010201.030b0100' => { Name => 'CornerLongitudePoint1', Format => 'double', %geoLon },
1489             '060e2b34.0101.0103.07010201.030c0000' => { Name => 'CornerLongitudePoint2', Format => 'string' },
1490             '060e2b34.0101.0103.07010201.030c0100' => { Name => 'CornerLongitudePoint2', Format => 'double', %geoLon },
1491             '060e2b34.0101.0103.07010201.030d0000' => { Name => 'CornerLongitudePoint3', Format => 'string' },
1492             '060e2b34.0101.0103.07010201.030d0100' => { Name => 'CornerLongitudePoint3', Format => 'double', %geoLon },
1493             '060e2b34.0101.0103.07010201.030e0000' => { Name => 'CornerLongitudePoint4', Format => 'string' },
1494             '060e2b34.0101.0103.07010201.030e0100' => { Name => 'CornerLongitudePoint4', Format => 'double', %geoLon },
1495             '060e2b34.0101.0103.07010801.02000000' => { Name => 'SubjectDistance', Format => 'float' },
1496             '060e2b34.0101.0103.07012001.01010100' => { Name => 'PlaceKeyword', Type => 'UTF-16' },
1497             '060e2b34.0101.0103.07012001.02010100' => { Name => 'ObjectCountryCode', Type => 'UTF-16' },
1498             '060e2b34.0101.0103.07012001.02060000' => { Name => 'ObjectCountryCodeMethod', Format => 'string' },
1499             '060e2b34.0101.0103.07012001.02070000' => { Name => 'CountryCodeMethod', Format => 'string' },
1500             '060e2b34.0101.0103.07012001.02080000' => { Name => 'Non-USClassifyingCountryCode', Format => 'string' },
1501             '060e2b34.0101.0103.07012001.02090000' => { Name => 'ReleasableCountryCode', Format => 'string' },
1502             '060e2b34.0101.0103.07012001.03010100' => { Name => 'ObjectRegionName', Type => 'UTF-16' },
1503             '060e2b34.0101.0103.07012001.03020100' => { Name => 'ShootingRegionName', Type => 'UTF-16' },
1504             '060e2b34.0101.0103.07012001.03030100' => { Name => 'SettingRegionName', Type => 'UTF-16' },
1505             '060e2b34.0101.0103.07012001.03040100' => { Name => 'CopyrightLicenseRegionName', Type => 'UTF-16' },
1506             '060e2b34.0101.0103.07012001.03050100' => { Name => 'IntellectualPropertyLicenseRegionName', Type => 'UTF-16' },
1507             '060e2b34.0101.0103.07012001.04010101' => { Name => 'RoomNumber', Type => 'UTF-16' },
1508             '060e2b34.0101.0103.07012001.04010201' => { Name => 'StreetNumber', Type => 'UTF-16' },
1509             '060e2b34.0101.0103.07012001.04010301' => { Name => 'StreetName', Type => 'UTF-16' },
1510             '060e2b34.0101.0103.07012001.04010401' => { Name => 'PostalTown', Type => 'UTF-16' },
1511             '060e2b34.0101.0103.07012001.04010501' => { Name => 'CityName', Type => 'UTF-16' },
1512             '060e2b34.0101.0103.07012001.04010601' => { Name => 'StateOrProvinceOrCountyName', Type => 'UTF-16' },
1513             '060e2b34.0101.0103.07012001.04010701' => { Name => 'PostalCode', Type => 'UTF-16' },
1514             '060e2b34.0101.0103.07012001.04010801' => { Name => 'CountryName', Type => 'UTF-16' },
1515             '060e2b34.0101.0103.07012001.04020101' => { Name => 'SettingRoomNumber', Type => 'UTF-16' },
1516             '060e2b34.0101.0103.07012001.04020201' => { Name => 'SettingStreetNumberOrBuildingName', Type => 'UTF-16' },
1517             '060e2b34.0101.0103.07012001.04020301' => { Name => 'SettingStreetName', Type => 'UTF-16' },
1518             '060e2b34.0101.0103.07012001.04020401' => { Name => 'SettingTownName', Type => 'UTF-16' },
1519             '060e2b34.0101.0103.07012001.04020501' => { Name => 'SettingCityName', Type => 'UTF-16' },
1520             '060e2b34.0101.0103.07012001.04020601' => { Name => 'SettingStateOrProvinceOrCountyName', Type => 'UTF-16' },
1521             '060e2b34.0101.0103.07012001.04020701' => { Name => 'SettingPostalCode', Type => 'UTF-16' },
1522             '060e2b34.0101.0103.07012001.04020801' => { Name => 'SettingCountryName', Type => 'UTF-16' },
1523             '060e2b34.0101.0103.07012001.10030101' => { Name => 'TelephoneNumber', Type => 'UTF-16' },
1524             '060e2b34.0101.0103.07012001.10030201' => { Name => 'FaxNumber', Type => 'UTF-16' },
1525             '060e2b34.0101.0103.07012001.10030301' => { Name => 'E-mailAddress', Type => 'UTF-16' },
1526             '060e2b34.0101.0103.07012002.01010000' => { Name => 'SettingDescription', Type => 'UTF-16' },
1527             '060e2b34.0101.0103.07020101.01050000' => { Name => 'POSIXMicroseconds', Format => 'int64u' },
1528             # '060e2b34.0101.0103.07020103.10030000' => { Name => 'EventOffsets', Type => 'Node' },
1529             '060e2b34.0101.0103.07020103.10030100' => { Name => 'EventElapsedTimeToStart', Format => 'string' },
1530             '060e2b34.0101.0103.07020103.10030200' => { Name => 'EventElapsedTimeToEnd', Format => 'string' },
1531             '060e2b34.0101.0104.01011002.00000000' => { Name => 'OrganizationIDKind', Format => 'string' },
1532             '060e2b34.0101.0104.01011002.01000000' => { Name => 'OrganizationIDKind', Type => 'UTF-16' },
1533             # '060e2b34.0101.0104.01020200.00000000' => { Name => 'RegistryLocators', Type => 'Node' },
1534             '060e2b34.0101.0104.01020201.00000000' => { Name => 'SMPTEUL', Type => 'UL', Unknown => 1 },
1535             # '060e2b34.0101.0104.01020210.00000000' => { Name => 'RegistryLocatorGroups', Type => 'Node' },
1536             # '060e2b34.0101.0104.01020210.01000000' => { Name => 'RegistryLocatorOrderedGroup', Type => 'Node' },
1537             '060e2b34.0101.0104.01020210.01010000' => { Name => 'EssenceContainerArray', Type => 'Array of UL', Unknown => 1 },
1538             '060e2b34.0101.0104.01030404.00000000' => { Name => 'EssenceStreamID', Format => 'int32u' },
1539             '060e2b34.0101.0104.01030405.00000000' => { Name => 'IndexStreamID', Format => 'int32u' },
1540             '060e2b34.0101.0104.01050a00.00000000' => { Name => 'WorkingTitle', Format => 'string' },
1541             '060e2b34.0101.0104.01050a01.00000000' => { Name => 'WorkingTitle', Type => 'UTF-16' },
1542             '060e2b34.0101.0104.01050b00.00000000' => { Name => 'OriginalTitle', Format => 'string' },
1543             '060e2b34.0101.0104.01050b01.00000000' => { Name => 'OriginalTitle', Type => 'UTF-16' },
1544             '060e2b34.0101.0104.01050c00.00000000' => { Name => 'ClipNumber', Format => 'string' },
1545             '060e2b34.0101.0104.01050c01.00000000' => { Name => 'ClipNumber', Type => 'UTF-16' },
1546             '060e2b34.0101.0104.01070105.00000000' => { Name => 'DescriptiveMetadataTrackIDs', Format => 'int32u' },
1547             # '060e2b34.0101.0104.01080000.00000000' => { Name => 'GenericIdentifiers', Type => 'Node' },
1548             '060e2b34.0101.0104.01080100.00000000' => { Name => 'IdentifierKind', Format => 'string' },
1549             '060e2b34.0101.0104.01080200.00000000' => { Name => 'IdentifierValue', Format => 'int8u' },
1550             # '060e2b34.0101.0104.010a0200.00000000' => { Name => 'GeneralOrganizationIdentifiers', Type => 'Node' },
1551             '060e2b34.0101.0104.010a0201.00000000' => { Name => 'OrganizationCode', Format => 'string' },
1552             '060e2b34.0101.0104.010a0201.01000000' => { Name => 'OrganizationCode', Type => 'UTF-16' },
1553             '060e2b34.0101.0104.02010500.00000000' => { Name => 'SupplierIdentificationKind', Format => 'string' },
1554             '060e2b34.0101.0104.02010600.00000000' => { Name => 'SupplierIdentificationValue', Format => 'string' },
1555             '060e2b34.0101.0104.02010700.00000000' => { Name => 'SupplierAccountNumber', Format => 'string' },
1556             '060e2b34.0101.0104.02010800.00000000' => { Name => 'SupplierAccountName', Format => 'string' },
1557             '060e2b34.0101.0104.02010801.00000000' => { Name => 'SupplierAccountName', Type => 'UTF-16' },
1558             '060e2b34.0101.0104.02020400.00000000' => { Name => 'EpisodeStartNumber', Format => 'int16u' },
1559             '060e2b34.0101.0104.02020500.00000000' => { Name => 'EpisodeEndNumber', Format => 'int16u' },
1560             '060e2b34.0101.0104.02030500.00000000' => { Name => 'PurchaserIdentificationKind', Format => 'string' },
1561             '060e2b34.0101.0104.02030600.00000000' => { Name => 'PurchaserIdentificationValue', Format => 'string' },
1562             '060e2b34.0101.0104.02030700.00000000' => { Name => 'PurchaserAccountNumber', Format => 'string' },
1563             '060e2b34.0101.0104.02030800.00000000' => { Name => 'PurchaserAccountName', Format => 'string' },
1564             '060e2b34.0101.0104.02030801.00000000' => { Name => 'PurchaserAccountName', Type => 'UTF-16' },
1565             '060e2b34.0101.0104.02040102.00000000' => { Name => 'ContractType', Type => 'UTF-16' },
1566             '060e2b34.0101.0104.02040201.00000000' => { Name => 'ContractClauseDescription', Type => 'UTF-16' },
1567             '060e2b34.0101.0104.02040302.00000000' => { Name => 'ContractLineName', Type => 'UTF-16' },
1568             '060e2b34.0101.0104.02040401.00000000' => { Name => 'ContractTermsOfBusiness', Type => 'UTF-16' },
1569             '060e2b34.0101.0104.02040601.00000000' => { Name => 'Jurisdiction', Type => 'UTF-16' },
1570             '060e2b34.0101.0104.02060102.00000000' => { Name => 'TotalCurrencyAmount', Format => 'double' },
1571             '060e2b34.0101.0104.02060103.00000000' => { Name => 'InstallmentNumber', Format => 'int16u' },
1572             # '060e2b34.0101.0104.020a0000.00000000' => { Name => 'IdentifiersAndLocatorsAdministrationAuthorities', Type => 'Node' },
1573             '060e2b34.0101.0104.020a0100.00000000' => { Name => 'IdentifierIssuingAuthority', Format => 'string' },
1574             # '060e2b34.0101.0104.02100200.00000000' => { Name => 'Publication', Type => 'Node' },
1575             # '060e2b34.0101.0104.02100201.00000000' => { Name => 'GeneralPublication', Type => 'Node' },
1576             '060e2b34.0101.0104.02100201.01000000' => { Name => 'PublishingOrganizationName', Format => 'string' },
1577             '060e2b34.0101.0104.02100201.01010000' => { Name => 'PublishingOrganizationName', Type => 'UTF-16' },
1578             '060e2b34.0101.0104.02100201.02000000' => { Name => 'PublishingServiceName', Format => 'string' },
1579             '060e2b34.0101.0104.02100201.02010000' => { Name => 'PublishingServiceName', Type => 'UTF-16' },
1580             '060e2b34.0101.0104.02100201.03000000' => { Name => 'PublishingMediumName', Format => 'string' },
1581             '060e2b34.0101.0104.02100201.03010000' => { Name => 'PublishingMediumName', Type => 'UTF-16' },
1582             '060e2b34.0101.0104.02100201.04000000' => { Name => 'PublishingRegionName', Format => 'string' },
1583             '060e2b34.0101.0104.02100201.04010000' => { Name => 'PublishingRegionName', Type => 'UTF-16' },
1584             '060e2b34.0101.0104.02300603.01050100' => { Name => 'Salutation', Type => 'UTF-16' },
1585             '060e2b34.0101.0104.02300603.01060100' => { Name => 'HonorsAndQualifications', Type => 'UTF-16' },
1586             '060e2b34.0101.0104.02300603.01080000' => { Name => 'OtherGivenNames', Format => 'string' },
1587             '060e2b34.0101.0104.02300603.01080100' => { Name => 'OtherGivenNames', Type => 'UTF-16' },
1588             '060e2b34.0101.0104.02300603.01090000' => { Name => 'AlternateName', Format => 'string' },
1589             '060e2b34.0101.0104.02300603.01090100' => { Name => 'AlternateName', Type => 'UTF-16' },
1590             # '060e2b34.0101.0104.03010102.02000000' => { Name => 'TextLanguageCodes', Type => 'Node' },
1591             '060e2b34.0101.0104.03010102.02010000' => { Name => 'ISO639TextLanguageCode', Format => 'string', LanguageCode => 1 },
1592             '060e2b34.0101.0104.03010102.02020000' => { Name => 'ISO639CaptionsLanguageCode', Format => 'string' },
1593             # '060e2b34.0101.0104.03010102.03000000' => { Name => 'SpokenLanguageCodes', Type => 'Node' },
1594             '060e2b34.0101.0104.03010102.03010000' => { Name => 'PrimarySpokenLanguageCode', Format => 'string' },
1595             '060e2b34.0101.0104.03010102.03020000' => { Name => 'SecondarySpokenLanguageCode', Format => 'string' },
1596             '060e2b34.0101.0104.03010102.03030000' => { Name => 'PrimaryOriginalLanguageCode', Format => 'string' },
1597             '060e2b34.0101.0104.03010102.03040000' => { Name => 'SecondaryOriginalLanguageCode', Format => 'string' },
1598             '060e2b34.0101.0104.03010201.06000000' => { Name => 'MajorVersion', Format => 'int16u' },
1599             '060e2b34.0101.0104.03010201.07000000' => { Name => 'MinorVersion', Format => 'int16u' },
1600             '060e2b34.0101.0104.03010201.08000000' => { Name => 'SectorSize', Format => 'int32u' },
1601             '060e2b34.0101.0104.03010203.09000000' => { Name => 'ElementLength', Format => 'int32u' },
1602             '060e2b34.0101.0104.03020102.02010000' => { Name => 'ThesaurusName', Type => 'UTF-16' },
1603             '060e2b34.0101.0104.03020102.0d010000' => { Name => 'Cue-InWords', Type => 'UTF-16' },
1604             '060e2b34.0101.0104.03020102.0e010000' => { Name => 'Cue-OutWords', Type => 'UTF-16' },
1605             '060e2b34.0101.0104.03020102.10000000' => { Name => 'KeypointKind', Format => 'string' },
1606             '060e2b34.0101.0104.03020102.10010000' => { Name => 'KeypointKind', Type => 'UTF-16' },
1607             '060e2b34.0101.0104.03020102.11000000' => { Name => 'KeypointValue', Format => 'string' },
1608             '060e2b34.0101.0104.03020102.11010000' => { Name => 'KeypointValue', Type => 'UTF-16' },
1609             '060e2b34.0101.0104.03020201.03010000' => { Name => 'FestivalName', Type => 'UTF-16' },
1610             '060e2b34.0101.0104.03020201.04000000' => { Name => 'AwardName', Format => 'string' },
1611             '060e2b34.0101.0104.03020201.04010000' => { Name => 'AwardName', Type => 'UTF-16' },
1612             '060e2b34.0101.0104.03020201.05000000' => { Name => 'AwardCategory', Format => 'string' },
1613             '060e2b34.0101.0104.03020201.05010000' => { Name => 'AwardCategory', Type => 'UTF-16' },
1614             '060e2b34.0101.0104.03020503.00000000' => { Name => 'SlateInformation', Type => 'UTF-16' },
1615             '060e2b34.0101.0104.04020301.04000000' => { Name => 'LockedIndicator', Type => 'Boolean' },
1616             '060e2b34.0101.0104.04020303.04000000' => { Name => 'BitsPerAudioSample', Format => 'int32u', Groups => { 2 => 'Audio' } },
1617             '060e2b34.0101.0104.04030101.00000000' => { Name => 'CaptionKind', Format => 'string' },
1618             '060e2b34.0101.0104.04030101.01000000' => { Name => 'CaptionKind', Type => 'UTF-16' },
1619             # '060e2b34.0101.0104.04040400.00000000' => { Name => 'IndexingMetadataCodingCharacteristics', Type => 'Node' },
1620             # '060e2b34.0101.0104.04040401.00000000' => { Name => 'IntraEditUnitIndexing', Type => 'Node' },
1621             '060e2b34.0101.0104.04040401.01000000' => { Name => 'SliceCount', Format => 'int8u' },
1622             '060e2b34.0101.0104.04040401.02000000' => { Name => 'SliceNumber', Format => 'int8u' },
1623             '060e2b34.0101.0104.04040401.03000000' => { Name => 'ElementDelta', Format => 'int32u' },
1624             '060e2b34.0101.0104.04040401.04000000' => { Name => 'PositionTableIndexing', Format => 'int8s' },
1625             '060e2b34.0101.0104.04040401.05000000' => { Name => 'SliceOffsetList', Type => 'UInt32Array', Unknown => 1 },
1626             '060e2b34.0101.0104.04040401.08000000' => { Name => 'PosTableArray', Unknown => 1 },
1627             # '060e2b34.0101.0104.04040402.00000000' => { Name => 'InterEditUnitIndexing', Type => 'Node' },
1628             '060e2b34.0101.0104.04040402.01000000' => { Name => 'StreamOffset', Format => 'int64u' },
1629             '060e2b34.0101.0104.04040402.02000000' => { Name => 'EditUnitFlags', Format => 'int8u' },
1630             '060e2b34.0101.0104.04040402.03000000' => { Name => 'TemporalOffset', Format => 'int8s' },
1631             '060e2b34.0101.0104.04040402.04000000' => { Name => 'AnchorOffset', Format => 'int8s' },
1632             # '060e2b34.0101.0104.04060200.00000000' => { Name => 'GeneralEssenceContainerCharacteristics', Type => 'Node' },
1633             '060e2b34.0101.0104.04060201.00000000' => { Name => 'EditUnitLength', Format => 'int32u' },
1634             # '060e2b34.0101.0104.04060800.00000000' => { Name => 'GeneralMetadataCodingCharacteristics', Type => 'Node' },
1635             # '060e2b34.0101.0104.04060900.00000000' => { Name => 'GeneralMetadataContainerCharacteristics', Type => 'Node' },
1636             '060e2b34.0101.0104.04060901.00000000' => { Name => 'HeaderByteCount', Format => 'int64u' },
1637             '060e2b34.0101.0104.04060902.00000000' => { Name => 'IndexByteCount', Format => 'int64u' },
1638             # '060e2b34.0101.0104.04061000.00000000' => { Name => 'GeneralDataCodingCharacteristics', Type => 'Node' },
1639             '060e2b34.0101.0104.04061001.00000000' => { Name => 'PackLength', Format => 'int32u' },
1640             # '060e2b34.0101.0104.04200102.00000000' => { Name => 'ImagerCharacteristics', Type => 'Node' },
1641             '060e2b34.0101.0104.05010101.01000000' => { Name => 'IntegrationIndication', Type => 'UTF-16' },
1642             '060e2b34.0101.0104.05010102.01000000' => { Name => 'EventIndication', Type => 'UTF-16' },
1643             '060e2b34.0101.0104.05010107.01000000' => { Name => 'GraphicUsageKind', Type => 'UTF-16' },
1644             '060e2b34.0101.0104.06010104.01080000' => { Name => 'PrimaryPackage', Type => 'WeakReference', Unknown => 1 },
1645             # '060e2b34.0101.0104.06010104.02400000' => { Name => 'StrongReferencingToDescriptiveMetadataSets', Type => 'Node' },
1646             '060e2b34.0101.0104.06010104.03030000' => { Name => 'DescriptiveMetadataSets', Type => 'WeakReferenceBatch', Unknown => 1 },
1647             '060e2b34.0101.0104.06010104.04020000' => { Name => 'DescriptiveMetadataSetReferences', Type => 'WeakReferenceArray', Unknown => 1 },
1648             # '060e2b34.0101.0104.06010104.05400000' => { Name => 'StrongReferencesToDescriptiveMetadataBatches', Type => 'Node' },
1649             '060e2b34.0101.0104.06010104.060b0000' => { Name => 'FileDescriptors', Type => 'StrongReferenceArray', Unknown => 1 },
1650             '060e2b34.0101.0104.06080102.01010000' => { Name => 'StreamPositionIndicator', Format => 'int16u' },
1651             '060e2b34.0101.0104.06080102.01020000' => { Name => 'StreamPositionIndicator', Format => 'int32u' },
1652             '060e2b34.0101.0104.06080102.01030000' => { Name => 'StreamPositionIndicator', Format => 'int64u' },
1653             '060e2b34.0101.0104.06080202.01000000' => { Name => 'OffsetToMetadata', Format => 'int32s' },
1654             '060e2b34.0101.0104.06080202.01010000' => { Name => 'OffsetToMetadata', Format => 'int64s' },
1655             '060e2b34.0101.0104.06080202.02000000' => { Name => 'OffsetToIndexTable', Format => 'int32s' },
1656             '060e2b34.0101.0104.06080202.02010000' => { Name => 'OffsetToIndexTable', Format => 'int64s' },
1657             # '060e2b34.0101.0104.06090000.00000000' => { Name => 'DataRelationships', Type => 'Node' },
1658             # '060e2b34.0101.0104.06090200.00000000' => { Name => 'LocalDataRelationships', Type => 'Node' },
1659             # '060e2b34.0101.0104.06090201.00000000' => { Name => 'DataOffsets', Type => 'Node' },
1660             '060e2b34.0101.0104.06090201.01000000' => { Name => 'ByteOffset', Format => 'int64u' },
1661             '060e2b34.0101.0104.06090201.02000000' => { Name => 'ReversePlay', Format => 'int64u' },
1662             # '060e2b34.0101.0104.06101000.00000000' => { Name => 'RelativeNumericalSequences', Type => 'Node' },
1663             '060e2b34.0101.0104.06101001.00000000' => { Name => 'FirstNumberInSequence', Format => 'int32u' },
1664             '060e2b34.0101.0104.06101001.01000000' => { Name => 'FirstNumberInSequence', Format => 'int64u' },
1665             '060e2b34.0101.0104.06101002.00000000' => { Name => 'PreviousNumberInSequence', Format => 'int32u' },
1666             '060e2b34.0101.0104.06101002.01000000' => { Name => 'PreviousNumberInSequence', Format => 'int64u' },
1667             '060e2b34.0101.0104.06101003.00000000' => { Name => 'CurrentNumberInSequence', Format => 'int32u' },
1668             '060e2b34.0101.0104.06101003.01000000' => { Name => 'CurrentNumberInSequence', Format => 'int64u' },
1669             '060e2b34.0101.0104.06101004.00000000' => { Name => 'NextNumberInSequence', Format => 'int32u' },
1670             '060e2b34.0101.0104.06101004.01000000' => { Name => 'NextNumberInSequence', Format => 'int64u' },
1671             '060e2b34.0101.0104.06101005.00000000' => { Name => 'LastNumberInSequence', Format => 'int32u' },
1672             '060e2b34.0101.0104.06101005.01000000' => { Name => 'LastNumberInSequence', Format => 'int64u' },
1673             # '060e2b34.0101.0104.07012001.10000000' => { Name => 'ElectronicAddressVarieties', Type => 'Node' },
1674             '060e2b34.0101.0104.07012001.10030400' => { Name => 'CentralTelephoneNumber', Format => 'string' },
1675             '060e2b34.0101.0104.07012001.10030500' => { Name => 'MobileTelephoneNumber', Format => 'string' },
1676             '060e2b34.0101.0104.07012001.10030600' => { Name => 'URL', Format => 'string' },
1677             '060e2b34.0101.0104.07012002.02000000' => { Name => 'LocationDescription', Format => 'string' },
1678             '060e2b34.0101.0104.07012002.02010000' => { Name => 'LocationDescription', Type => 'UTF-16' },
1679             '060e2b34.0101.0104.07012002.03000000' => { Name => 'LocationKind', Format => 'string' },
1680             '060e2b34.0101.0104.07012002.03010000' => { Name => 'LocationKind', Type => 'UTF-16' },
1681             '060e2b34.0101.0104.07020102.07010100' => { Name => 'UTCEventStartDateTime', %timestamp },
1682             '060e2b34.0101.0104.07020102.07020100' => { Name => 'LocalEventStartDateTime', %timestamp },
1683             '060e2b34.0101.0104.07020102.09010100' => { Name => 'UTCEventEndDateTime', %timestamp },
1684             '060e2b34.0101.0104.07020102.09020100' => { Name => 'LocalEventEndDateTime', %timestamp },
1685             '060e2b34.0101.0104.07020103.01070000' => { Name => 'KeyTimePoint', Format => 'int64u' },
1686             '060e2b34.0101.0104.07020108.01010000' => { Name => 'TimePeriodName', Type => 'UTF-16' },
1687             '060e2b34.0101.0104.07020108.02000000' => { Name => 'SettingDateTime', %timestamp },
1688             # '060e2b34.0101.0104.07020120.00000000' => { Name => 'AdministrativeDateTime', Type => 'Node' },
1689             '060e2b34.0101.0104.07020120.01000000' => { Name => 'ContractDateTime', %timestamp },
1690             '060e2b34.0101.0104.07020120.02000000' => { Name => 'RightsStartDateTime', %timestamp },
1691             '060e2b34.0101.0104.07020120.03000000' => { Name => 'RightsStopDateTime', %timestamp },
1692             '060e2b34.0101.0104.07020120.04000000' => { Name => 'PaymentDueDateTime', %timestamp },
1693             # '060e2b34.0101.0105.01010500.00000000' => { Name => 'UMIDPicture', Type => 'Node' },
1694             # '060e2b34.0101.0105.01010600.00000000' => { Name => 'UMIDMultiPicture', Type => 'Node' },
1695             # '060e2b34.0101.0105.01010800.00000000' => { Name => 'UMIDSound', Type => 'Node' },
1696             # '060e2b34.0101.0105.01010900.00000000' => { Name => 'UMIDMultiSound', Type => 'Node' },
1697             # '060e2b34.0101.0105.01010b00.00000000' => { Name => 'UMIDSingleData', Type => 'Node' },
1698             # '060e2b34.0101.0105.01010c00.00000000' => { Name => 'UMIDMultiData', Type => 'Node' },
1699             # '060e2b34.0101.0105.01010d00.00000000' => { Name => 'UMIDMixed', Type => 'Node' },
1700             # '060e2b34.0101.0105.01010f00.00000000' => { Name => 'UMIDGeneral', Type => 'Node' },
1701             '060e2b34.0101.0105.01011508.00000000' => { Name => 'ClipID', Type => 'UMID' },
1702             '060e2b34.0101.0105.01012008.01000000' => { Name => 'DeviceKind', Type => 'UTF-16' },
1703             '060e2b34.0101.0105.0101200c.00000000' => { Name => 'DeviceAssetNumber', Format => 'string' },
1704             '060e2b34.0101.0105.01020202.00000000' => { Name => 'IdentificationUL', Type => 'UL', Unknown => 1 },
1705             '060e2b34.0101.0105.01020203.00000000' => { Name => 'OperationalPatternUL', Type => 'UL', Unknown => 1 },
1706             # '060e2b34.0101.0105.01020210.02000000' => { Name => 'RegistryLocatorUnorderedGroups', Type => 'Node' },
1707             '060e2b34.0101.0105.01020210.02010000' => { Name => 'EssenceContainers', Type => 'BatchOfUL', Unknown => 1 },
1708             '060e2b34.0101.0105.01020210.02020000' => { Name => 'DescriptiveMetadataSchemes', Type => 'BatchOfUL', Unknown => 1 },
1709             '060e2b34.0101.0105.01030108.00000000' => { Name => 'ProjectName', Format => 'string' },
1710             '060e2b34.0101.0105.01030108.01000000' => { Name => 'ProjectName', Type => 'UTF-16' },
1711             '060e2b34.0101.0105.01030602.00000000' => { Name => 'LocalTagValue', Format => 'int16u' },
1712             '060e2b34.0101.0105.01030603.00000000' => { Name => 'LocalTagUniqueID', Type => 'AUID', Unknown => 1 },
1713             '060e2b34.0101.0105.01050d00.00000000' => { Name => 'BrandMainTitle', Format => 'string' },
1714             '060e2b34.0101.0105.01050d01.00000000' => { Name => 'BrandMainTitle', Type => 'UTF-16' },
1715             '060e2b34.0101.0105.01050e00.00000000' => { Name => 'BrandOriginalTitle', Format => 'string' },
1716             '060e2b34.0101.0105.01050e01.00000000' => { Name => 'BrandOriginalTitle', Type => 'UTF-16' },
1717             '060e2b34.0101.0105.01050f00.00000000' => { Name => 'FrameworkTitle', Format => 'string' },
1718             '060e2b34.0101.0105.01050f01.00000000' => { Name => 'FrameworkTitle', Type => 'UTF-16' },
1719             '060e2b34.0101.0105.01070106.00000000' => { Name => 'SourceTrackIDs', Format => 'int32u' },
1720             '060e2b34.0101.0105.01070107.00000000' => { Name => 'ShotTrackIDs', Format => 'int32u' },
1721             '060e2b34.0101.0105.02020301.00000000' => { Name => 'ProgrammingGroupKind', Type => 'UTF-16' },
1722             '060e2b34.0101.0105.02020600.00000000' => { Name => 'ProgrammingGroupTitle', Format => 'string' },
1723             '060e2b34.0101.0105.02020601.00000000' => { Name => 'ProgrammingGroupTitle', Type => 'UTF-16' },
1724             '060e2b34.0101.0105.020a0101.00000000' => { Name => 'IdentifierIssuingAuthority', Type => 'UTF-16' },
1725             '060e2b34.0101.0105.02300603.010a0000' => { Name => 'LinkingName', Format => 'string' },
1726             '060e2b34.0101.0105.02300603.010a0100' => { Name => 'LinkingName', Type => 'UTF-16' },
1727             '060e2b34.0101.0105.02300603.010b0000' => { Name => 'NameSuffix', Format => 'string' },
1728             '060e2b34.0101.0105.02300603.010b0100' => { Name => 'NameSuffix', Type => 'UTF-16' },
1729             '060e2b34.0101.0105.02300603.010c0000' => { Name => 'FormerFamilyName', Format => 'string' },
1730             '060e2b34.0101.0105.02300603.010c0100' => { Name => 'FormerFamilyName', Type => 'UTF-16' },
1731             '060e2b34.0101.0105.02300603.010d0000' => { Name => 'Nationality', Format => 'string' },
1732             '060e2b34.0101.0105.02300603.010d0100' => { Name => 'Nationality', Type => 'UTF-16' },
1733             '060e2b34.0101.0105.02300603.010e0000' => { Name => 'Citizenship', Format => 'string' },
1734             '060e2b34.0101.0105.02300603.010e0100' => { Name => 'Citizenship', Type => 'UTF-16' },
1735             '060e2b34.0101.0105.03010102.02030000' => { Name => 'FrameworkTextLanguageCode', Format => 'string', LanguageCode => 1 },
1736             '060e2b34.0101.0105.03010201.09000000' => { Name => 'KAGSize', Format => 'int32u' },
1737             '060e2b34.0101.0105.03010201.0a000000' => { Name => 'ReversedByteOrder', Type => 'Boolean' },
1738             # '060e2b34.0101.0105.0301020a.00000000' => { Name => 'NameValueConstructInterpretations', Type => 'Node' },
1739             '060e2b34.0101.0105.0301020a.01000000' => { Name => 'ItemName', Format => 'string' },
1740             '060e2b34.0101.0105.0301020a.01010000' => { Name => 'ItemName', Type => 'UTF-16' },
1741             '060e2b34.0101.0105.0301020a.02000000' => { Name => 'ItemValue', Format => 'string' },
1742             '060e2b34.0101.0105.0301020a.02010000' => { Name => 'ItemValue', Type => 'UTF-16' },
1743             # '060e2b34.0101.0105.03010220.00000000' => { Name => 'XMLConstructsAndInterpretations', Type => 'Node' },
1744             '060e2b34.0101.0105.03010220.01000000' => { Name => 'XMLDocumentText', Type => 'Indirect', Unknown => 1 },
1745             '060e2b34.0101.0105.03010220.01010000' => { Name => 'XMLDocumentText', Format => 'string' },
1746             '060e2b34.0101.0105.03010220.01020000' => { Name => 'XMLDocumentText', Type => 'UTF-16' },
1747             '060e2b34.0101.0105.03010220.01030000' => { Name => 'XMLDocumentText', Type => 'ByteStream', Unknown => 1 },
1748             '060e2b34.0101.0105.03020102.15000000' => { Name => 'FrameworkThesaurusName', Format => 'string' },
1749             '060e2b34.0101.0105.03020102.15010000' => { Name => 'FrameworkThesaurusName', Type => 'UTF-16' },
1750             '060e2b34.0101.0105.03020106.08000000' => { Name => 'GroupSynopsis', Format => 'string' },
1751             '060e2b34.0101.0105.03020106.08010000' => { Name => 'GroupSynopsis', Type => 'UTF-16' },
1752             '060e2b34.0101.0105.03020106.09000000' => { Name => 'AnnotationSynopsis', Format => 'string' },
1753             '060e2b34.0101.0105.03020106.09010000' => { Name => 'AnnotationSynopsis', Type => 'UTF-16' },
1754             '060e2b34.0101.0105.03020106.0a000000' => { Name => 'AnnotationDescription', Format => 'string' },
1755             '060e2b34.0101.0105.03020106.0a010000' => { Name => 'AnnotationDescription', Type => 'UTF-16' },
1756             '060e2b34.0101.0105.03020106.0b000000' => { Name => 'ScriptingKind', Format => 'string' },
1757             '060e2b34.0101.0105.03020106.0b010000' => { Name => 'ScriptingKind', Type => 'UTF-16' },
1758             '060e2b34.0101.0105.03020106.0c000000' => { Name => 'ScriptingText', Format => 'string' },
1759             '060e2b34.0101.0105.03020106.0c010000' => { Name => 'ScriptingText', Type => 'UTF-16' },
1760             '060e2b34.0101.0105.03020106.0d000000' => { Name => 'ShotDescription', Format => 'string' },
1761             '060e2b34.0101.0105.03020106.0d010000' => { Name => 'ShotDescription', Type => 'UTF-16' },
1762             '060e2b34.0101.0105.03020106.0e000000' => { Name => 'AnnotationKind', Format => 'string' },
1763             '060e2b34.0101.0105.03020106.0e010000' => { Name => 'AnnotationKind', Type => 'UTF-16' },
1764             '060e2b34.0101.0105.03020106.0f000000' => { Name => 'RelatedMaterialDescription', Format => 'string' },
1765             '060e2b34.0101.0105.03020106.0f010000' => { Name => 'RelatedMaterialDescription', Type => 'UTF-16' },
1766             '060e2b34.0101.0105.03020504.00000000' => { Name => 'ClipKind', Type => 'UTF-16' },
1767             # '060e2b34.0101.0105.03030310.00000000' => { Name => 'DeviceCommentsAndDescriptions', Type => 'Node' },
1768             '060e2b34.0101.0105.03030310.01000000' => { Name => 'DeviceUsageDescription', Format => 'string' },
1769             '060e2b34.0101.0105.03030310.01010000' => { Name => 'DeviceUsageDescription', Type => 'UTF-16' },
1770             '060e2b34.0101.0105.04010302.07000000' => { Name => 'DisplayF2Offset', Format => 'int32s' },
1771             '060e2b34.0101.0105.04010302.08000000' => { Name => 'StoredF2Offset', Format => 'int32s' },
1772             '060e2b34.0101.0105.04010302.09000000' => { Name => 'ActiveFormatDescriptor', Format => 'int8u' },
1773             '060e2b34.0101.0105.04010302.0a000000' => { Name => 'LineNumber', Format => 'int32u' },
1774             # '060e2b34.0101.0105.04010404.00000000' => { Name => 'VideoScanningCharacteristics', Type => 'Node' },
1775             '060e2b34.0101.0105.04010404.01000000' => { Name => 'ScanningDirection', Format => 'int8u' },
1776             '060e2b34.0101.0105.04010503.0b000000' => { Name => 'ComponentMaximumRef', Format => 'int32u' },
1777             '060e2b34.0101.0105.04010503.0c000000' => { Name => 'ComponentMinimumRef', Format => 'int32u' },
1778             '060e2b34.0101.0105.04010503.0d000000' => { Name => 'AlphaMaximumRef', Format => 'int32u' },
1779             '060e2b34.0101.0105.04010503.0e000000' => { Name => 'AlphaMinimumRef', Format => 'int32u' },
1780             # '060e2b34.0101.0105.04010504.00000000' => { Name => 'DigitalVideoAndImageSignalTypeIdentifiers', Type => 'Node' },
1781             '060e2b34.0101.0105.04010504.01000000' => { Name => 'VideoPayloadIdentifier', Format => 'int8u' },
1782             '060e2b34.0101.0105.04010504.02000000' => { Name => 'VideoPayloadIdentifier2002', Format => 'int8u' },
1783             '060e2b34.0101.0105.04010602.01020000' => { Name => 'SingleSequenceFlag', Type => 'Boolean' },
1784             '060e2b34.0101.0105.04010602.01030000' => { Name => 'ConstantBPictureFlag', Type => 'Boolean' },
1785             '060e2b34.0101.0105.04010602.01040000' => { Name => 'CodedContentScanningKind', Type => 'int8u',
1786             PrintConv => { 0 => 'Unknown', 1 => 'Progressive', 2 => 'Interlaced', 3 => 'Mixed' },
1787             },
1788             '060e2b34.0101.0105.04010602.01050000' => { Name => 'LowDelayIndicator', Type => 'Boolean' },
1789             '060e2b34.0101.0105.04010602.01060000' => { Name => 'ClosedGOPIndicator', Type => 'Boolean' },
1790             '060e2b34.0101.0105.04010602.01070000' => { Name => 'IdenticalGOPIndicator', Type => 'Boolean' },
1791             '060e2b34.0101.0105.04010602.01080000' => { Name => 'MaximumGOPSize', Format => 'int16u' },
1792             '060e2b34.0101.0105.04010602.01090000' => { Name => 'MaximumBPictureCount', Format => 'int16u' },
1793             '060e2b34.0101.0105.04010602.010a0000' => { Name => 'ProfileAndLevel', Format => 'int8u' },
1794             '060e2b34.0101.0105.04010602.010b0000' => { Name => 'Bitrate', Format => 'int32u', PrintConv => 'ConvertBitrate($val)' },
1795             '060e2b34.0101.0105.04020101.04000000' => { Name => 'ChannelCount', Format => 'int32u', Groups => { 2 => 'Audio' } },
1796             '060e2b34.0101.0105.04020301.01010000' => { Name => 'AudioSampleRate', Format => 'rational64s', Groups => { 2 => 'Audio' } },
1797             '060e2b34.0101.0105.04020301.05000000' => { Name => 'PeakEnvelope', Format => 'int8u', Groups => { 2 => 'Audio' } },
1798             '060e2b34.0101.0105.04020301.0e000000' => { Name => 'PeakEnvelopeData', Type => 'Stream', Unknown => 1, Groups => { 2 => 'Audio' } },
1799             '060e2b34.0101.0105.04020302.01000000' => { Name => 'BlockAlign', Format => 'int16u' },
1800             '060e2b34.0101.0105.04020302.02000000' => { Name => 'SequenceOffset', Format => 'int8u' },
1801             '060e2b34.0101.0105.04020302.03000000' => { Name => 'BlockStartOffset', Format => 'int16u' },
1802             '060e2b34.0101.0105.04020302.05000000' => { Name => 'FileSecurityReport', Format => 'int32u' },
1803             '060e2b34.0101.0105.04020302.06000000' => { Name => 'FileSecurityWave', Format => 'int32u' },
1804             '060e2b34.0101.0105.04020303.05000000' => { Name => 'AverageBytesPerSecond', Format => 'int32u', Groups => { 2 => 'Audio' } },
1805             # '060e2b34.0101.0105.04020500.00000000' => { Name => 'DigitalAudioProcessingParameters', Type => 'Node' },
1806             # '060e2b34.0101.0105.04020501.00000000' => { Name => 'AES-3ProcessingParameters', Type => 'Node' },
1807             '060e2b34.0101.0105.04020501.01000000' => { Name => 'AuxiliaryBitsMode', Format => 'int8u' },
1808             '060e2b34.0101.0105.04020501.02000000' => { Name => 'ChannelStatusMode', Format => 'undef',
1809             RawConv => 'length($val) > 8 ? join(" ",unpack("x8C*",$val)) : undef',
1810             # convert just the first value for now
1811             PrintConv => [{
1812             0 => 'No Channel Status Data',
1813             1 => 'AES3 Minimum',
1814             2 => 'AES3 Standard',
1815             3 => 'Fixed 24 Bytes in FixedChannelStatusData',
1816             4 => 'Stream of Data in MXF Header Metadata',
1817             5 => 'Stream of Data Multiplexed within MXF Body',
1818             }],
1819             },
1820             '060e2b34.0101.0105.04020501.03000000' => { Name => 'FixedChannelStatusData', Type => 'Array of bytes', Unknown => 1 },
1821             '060e2b34.0101.0105.04020501.04000000' => { Name => 'UserDataMode', Type => 'EnumeratedArray', Unknown => 1 },
1822             '060e2b34.0101.0105.04020501.05000000' => { Name => 'FixedUserData', Type => 'Array of bytes', Unknown => 1 },
1823             '060e2b34.0101.0105.04020501.06000000' => { Name => 'Emphasis', Format => 'int8u' },
1824             # '060e2b34.0101.0105.04020502.00000000' => { Name => 'BWFProcessingParameters', Type => 'Node' },
1825             '060e2b34.0101.0105.04020502.01000000' => { Name => 'BextCodingHistory', Format => 'string' },
1826             '060e2b34.0101.0105.04020502.01010000' => { Name => 'BextCodingHistory', Type => 'UTF-16' },
1827             '060e2b34.0101.0105.04020502.02000000' => { Name => 'QltyBasicData', Format => 'string' },
1828             '060e2b34.0101.0105.04020502.02010000' => { Name => 'QltyBasicData', Type => 'UTF-16' },
1829             '060e2b34.0101.0105.04020502.03000000' => { Name => 'QltyStartOfModulation', Format => 'string' },
1830             '060e2b34.0101.0105.04020502.03010000' => { Name => 'QltyStartOfModulation', Type => 'UTF-16' },
1831             '060e2b34.0101.0105.04020502.04000000' => { Name => 'QltyQualityEvent', Format => 'string' },
1832             '060e2b34.0101.0105.04020502.04010000' => { Name => 'QltyQualityEvent', Type => 'UTF-16' },
1833             '060e2b34.0101.0105.04020502.05000000' => { Name => 'QltyEndOfModulation', Format => 'string' },
1834             '060e2b34.0101.0105.04020502.05010000' => { Name => 'QltyEndOfModulation', Type => 'UTF-16' },
1835             '060e2b34.0101.0105.04020502.06000000' => { Name => 'QltyQualityParameter', Format => 'string' },
1836             '060e2b34.0101.0105.04020502.06010000' => { Name => 'QltyQualityParameter', Type => 'UTF-16' },
1837             '060e2b34.0101.0105.04020502.07000000' => { Name => 'QltyOperatorComment', Format => 'string' },
1838             '060e2b34.0101.0105.04020502.07010000' => { Name => 'QltyOperatorComment', Type => 'UTF-16' },
1839             '060e2b34.0101.0105.04020502.08000000' => { Name => 'QltyCueSheet', Format => 'string' },
1840             '060e2b34.0101.0105.04020502.08010000' => { Name => 'QltyCueSheet', Type => 'UTF-16' },
1841             # '060e2b34.0101.0105.04020700.00000000' => { Name => 'GeneralProcessingParameters', Type => 'Node' },
1842             '060e2b34.0101.0105.04020701.00000000' => { Name => 'DialNorm', Format => 'int8s' },
1843             '060e2b34.0101.0105.04030302.00000000' => { Name => 'DataEssenceCoding', Type => 'Label' },
1844             # '060e2b34.0101.0105.04040102.00000000' => { Name => 'GeneralDateTimeCodingCharacteristics', Type => 'Node' },
1845             '060e2b34.0101.0105.04040102.01000000' => { Name => 'DateTimeRate', Format => 'rational64s', Groups => { 2 => 'Time' } },
1846             '060e2b34.0101.0105.04040102.02000000' => { Name => 'DateTimeDropFrameFlag', Type => 'Boolean', Groups => { 2 => 'Time' } },
1847             '060e2b34.0101.0105.04040102.03000000' => { Name => 'DateTimeEmbeddedFlag', Type => 'Boolean', Groups => { 2 => 'Time' } },
1848             '060e2b34.0101.0105.04040102.04000000' => { Name => 'DateTimeKind', Type => 'UL', Unknown => 1, Groups => { 2 => 'Time' } },
1849             '060e2b34.0101.0105.04040401.06000000' => { Name => 'DeltaEntryArray', Type => 'ArrayOfDeltaEntry', Unknown => 1 },
1850             '060e2b34.0101.0105.04040401.07000000' => { Name => 'PositionTableCount', Format => 'int8u' },
1851             '060e2b34.0101.0105.04040401.08000000' => { Name => 'PositionTable', Type => 'ArrayOfRational', Unknown => 1 },
1852             '060e2b34.0101.0105.04040402.05000000' => { Name => 'IndexEntryArray', Type => 'ArrayOfIndexEntry', Unknown => 1 },
1853             '060e2b34.0101.0105.04050113.00000000' => { Name => 'SignalStandard', Format => 'int8u' },
1854             '060e2b34.0101.0105.04070101.00000000' => { Name => 'DataDefinition', Type => 'UL', Unknown => 1 },
1855             # '060e2b34.0101.0105.04090000.00000000' => { Name => 'FormatCharacteristics', Type => 'Node' },
1856             '060e2b34.0101.0105.04090100.00000000' => { Name => 'RecordedFormat', Format => 'string' },
1857             '060e2b34.0101.0105.05010302.01000000' => { Name => 'GenerationCopyNumber', Format => 'int16u' },
1858             '060e2b34.0101.0105.05010303.01000000' => { Name => 'GenerationCloneNumber', Format => 'int16u' },
1859             # '060e2b34.0101.0105.05010400.00000000' => { Name => 'MusicFlags', Type => 'Node' },
1860             '060e2b34.0101.0105.05010403.00000000' => { Name => 'ThemeMusicFlag', Type => 'Boolean' },
1861             '060e2b34.0101.0105.05010404.00000000' => { Name => 'InsertMusicFlag', Type => 'Boolean' },
1862             '060e2b34.0101.0105.05300406.00000000' => { Name => 'IndexEditRate', Format => 'rational64s' },
1863             '060e2b34.0101.0105.06010103.05000000' => { Name => 'LinkedTrackID', Format => 'int32u' },
1864             '060e2b34.0101.0105.06010104.01020100' => { Name => 'EssenceContainerFormat', Type => 'UL', Unknown => 1 },
1865             '060e2b34.0101.0105.06010104.01030100' => { Name => 'CodecDefinition', Type => 'UL', Unknown => 1 },
1866             '060e2b34.0101.0105.06010104.020c0000' => { Name => 'DescriptiveMetadataFramework', Type => 'StrongReference', Unknown => 1 },
1867             '060e2b34.0101.0105.06010104.02400500' => { Name => 'GroupSet', Type => 'StrongReference', Unknown => 1 },
1868             '060e2b34.0101.0105.06010104.02401c00' => { Name => 'BankDetailsSet', Type => 'StrongReference', Unknown => 1 },
1869             '060e2b34.0101.0105.06010104.02401d00' => { Name => 'ImageFormatSet', Type => 'StrongReference', Unknown => 1 },
1870             '060e2b34.0101.0105.06010104.02402000' => { Name => 'ProcessingSet', Type => 'StrongReference', Unknown => 1 },
1871             '060e2b34.0101.0105.06010104.02402100' => { Name => 'ProjectSet', Type => 'StrongReference', Unknown => 1 },
1872             '060e2b34.0101.0105.06010104.02402200' => { Name => 'ContactsListSet', Type => 'StrongReference', Unknown => 1 },
1873             # '060e2b34.0101.0105.06010104.02402300' => { Name => 'CueWordsSets', Type => 'Node' },
1874             '060e2b34.0101.0105.06010104.02402301' => { Name => 'AnnotationCueWordsSet', Type => 'StrongReference', Unknown => 1 },
1875             '060e2b34.0101.0105.06010104.02402302' => { Name => 'ShotCueWordsSet', Type => 'StrongReference', Unknown => 1 },
1876             # '060e2b34.0101.0105.06010104.03400000' => { Name => 'WeakReferencingToDescriptiveMetadataSets', Type => 'Node' },
1877             # '060e2b34.0101.0105.06010104.03401300' => { Name => 'ParticipantRoleSets', Type => 'Node' },
1878             '060e2b34.0101.0105.06010104.03401301' => { Name => 'AwardParticipantSets', Type => 'GlobalReferenceBatch (Participant)', Unknown => 1 },
1879             '060e2b34.0101.0105.06010104.03401302' => { Name => 'ContractParticipantSets', Type => 'GlobalReferenceBatch (Participant)', Unknown => 1 },
1880             '060e2b34.0101.0105.06010104.03401400' => { Name => 'PersonSets', Type => 'GlobalReferenceBatch (Participant)', Unknown => 1 },
1881             # '060e2b34.0101.0105.06010104.03401500' => { Name => 'OrganizationSets', Type => 'Node' },
1882             '060e2b34.0101.0105.06010104.03401501' => { Name => 'ParticipantOrganizationSets', Type => 'GlobalReferenceBatch (Organisation)', Unknown => 1 },
1883             '060e2b34.0101.0105.06010104.03401502' => { Name => 'PersonOrganizationSets', Type => 'GlobalReferenceBatch (Organisation)', Unknown => 1 },
1884             '060e2b34.0101.0105.06010104.03401600' => { Name => 'LocationSets', Type => 'GlobalReferenceBatch (Location)', Unknown => 1 },
1885             '060e2b34.0101.0105.06010104.05400400' => { Name => 'TitlesSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1886             '060e2b34.0101.0105.06010104.05400500' => { Name => 'GroupSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1887             '060e2b34.0101.0105.06010104.05400600' => { Name => 'IdentificationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1888             '060e2b34.0101.0105.06010104.05400700' => { Name => 'EpisodicItemSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1889             '060e2b34.0101.0105.06010104.05400800' => { Name => 'BrandingSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1890             '060e2b34.0101.0105.06010104.05400900' => { Name => 'EventSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1891             '060e2b34.0101.0105.06010104.05400a00' => { Name => 'PublicationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1892             '060e2b34.0101.0105.06010104.05400b00' => { Name => 'AwardSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1893             '060e2b34.0101.0105.06010104.05400c00' => { Name => 'CaptionDescriptionSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1894             '060e2b34.0101.0105.06010104.05400d00' => { Name => 'AnnotationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1895             # '060e2b34.0101.0105.06010104.05400e00' => { Name => 'SettingPeriodSets', Type => 'Node' },
1896             '060e2b34.0101.0105.06010104.05400e01' => { Name => 'ProductionSettingPeriodSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1897             '060e2b34.0101.0105.06010104.05400e02' => { Name => 'SceneSettingPeriodSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1898             '060e2b34.0101.0105.06010104.05400f00' => { Name => 'ScriptingSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1899             '060e2b34.0101.0105.06010104.05401000' => { Name => 'ClassificationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1900             # '060e2b34.0101.0105.06010104.05401100' => { Name => 'ShotSets', Type => 'Node' },
1901             '060e2b34.0101.0105.06010104.05401101' => { Name => 'SceneShotSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1902             '060e2b34.0101.0105.06010104.05401102' => { Name => 'ClipShotSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1903             '060e2b34.0101.0105.06010104.05401200' => { Name => 'KeyPointSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1904             '060e2b34.0101.0105.06010104.05401300' => { Name => 'ShotParticipantRoleSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1905             '060e2b34.0101.0105.06010104.05401400' => { Name => 'ShotPersonSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1906             '060e2b34.0101.0105.06010104.05401500' => { Name => 'OrganizationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1907             '060e2b34.0101.0105.06010104.05401600' => { Name => 'ShotLocationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1908             '060e2b34.0101.0105.06010104.05401700' => { Name => 'AddressSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1909             '060e2b34.0101.0105.06010104.05401800' => { Name => 'CommunicationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1910             '060e2b34.0101.0105.06010104.05401900' => { Name => 'ContractSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1911             '060e2b34.0101.0105.06010104.05401a00' => { Name => 'RightsSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1912             '060e2b34.0101.0105.06010104.05401b00' => { Name => 'PaymentsSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1913             '060e2b34.0101.0105.06010104.05401e00' => { Name => 'DeviceParametersSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1914             # '060e2b34.0101.0105.06010104.05401f00' => { Name => 'NameValueSets', Type => 'Node' },
1915             '060e2b34.0101.0105.06010104.05401f01' => { Name => 'ClassificationNameValueSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1916             '060e2b34.0101.0105.06010104.05401f02' => { Name => 'ContactNameValueSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1917             '060e2b34.0101.0105.06010104.05401f03' => { Name => 'DeviceParameterNameValueSets', Type => 'StrongReferenceBatch', Unknown => 1 },
1918             '060e2b34.0101.0105.06010104.060c0000' => { Name => 'MetadataServerLocators', Type => 'StrongReferenceArray', Unknown => 1 },
1919             '060e2b34.0101.0105.06010104.060d0000' => { Name => 'RelatedMaterialLocators', Type => 'StrongReferenceArray', Unknown => 1 },
1920             '060e2b34.0101.0105.06010107.15000000' => { Name => 'LocalTagEntries', Type => 'LocalTagEntryBatch', Unknown => 1 },
1921             '060e2b34.0101.0105.06100400.00000000' => { Name => 'TotalNumberInSequence', Format => 'int32u' },
1922             '060e2b34.0101.0105.07012001.04011100' => { Name => 'RoomOrSuiteName', Format => 'string' },
1923             '060e2b34.0101.0105.07012001.04011101' => { Name => 'RoomOrSuiteName', Type => 'UTF-16' },
1924             '060e2b34.0101.0105.07012001.04011200' => { Name => 'BuildingName', Format => 'string' },
1925             '060e2b34.0101.0105.07012001.04011201' => { Name => 'BuildingName', Type => 'UTF-16' },
1926             '060e2b34.0101.0105.07012001.10030601' => { Name => 'URL', Type => 'UTF-16' },
1927             # '060e2b34.0101.0105.07020102.07100000' => { Name => 'DefinedEventStartTrueDateTime', Type => 'Node' },
1928             '060e2b34.0101.0105.07020102.07100100' => { Name => 'LocalFestivalDateTime', Format => 'string', Groups => { 2 => 'Time' } },
1929             '060e2b34.0101.0105.07020103.01090000' => { Name => 'ShotStartPosition', Type => 'Position', %duration },
1930             '060e2b34.0101.0105.07020103.010a0000' => { Name => 'IndexingStartPosition', Type => 'Position', %duration },
1931             '060e2b34.0101.0105.07020103.010b0000' => { Name => 'EventOrigin', Type => 'Position', %duration },
1932             '060e2b34.0101.0105.07020108.03000000' => { Name => 'SettingPeriodDescription', Format => 'string' },
1933             '060e2b34.0101.0105.07020108.03010000' => { Name => 'SettingPeriodDescription', Type => 'UTF-16' },
1934             '060e2b34.0101.0105.07020201.01020000' => { Name => 'IndexDuration', Type => 'Length', %duration },
1935             '060e2b34.0101.0105.07020201.02040000' => { Name => 'ShotDuration', Type => 'Length', %duration },
1936             # '060e2b34.0101.0105.0d020000.00000000' => { Name => 'EBU_UER', Type => 'Node' },
1937             # '060e2b34.0101.0105.0d030000.00000000' => { Name => 'Pro-MPEGForum', Type => 'Node' },
1938             # '060e2b34.0101.0106.0e040000.00000000' => { Name => 'Avid', Type => 'Node' },
1939             # '060e2b34.0101.0106.0e050000.00000000' => { Name => 'CNN', Type => 'Node' },
1940             # '060e2b34.0101.0106.0e050100.00000000' => { Name => 'CNNMediaIdentifiers', Type => 'Node' },
1941             # '060e2b34.0101.0106.0e050101.00000000' => { Name => 'CNNLegacyMediaIdentifiers', Type => 'Node' },
1942             # '060e2b34.0101.0106.0e050200.00000000' => { Name => 'CNNAttributes', Type => 'Node' },
1943             # '060e2b34.0101.0106.0e050201.00000000' => { Name => 'CNNRelationalAttributes', Type => 'Node' },
1944             # '060e2b34.0101.0106.0e050202.00000000' => { Name => 'CNNInformationAttributes', Type => 'Node' },
1945             # '060e2b34.0101.0106.0e050300.00000000' => { Name => 'CNNMetadataSets', Type => 'Node' },
1946             # '060e2b34.0101.0106.0e060000.00000000' => { Name => 'Sony', Type => 'Node' },
1947             '060e2b34.0101.0107.01011509.00000000' => { Name => 'ExtendedClipID', Type => 'UMID' },
1948             '060e2b34.0101.0107.0101150a.00000000' => { Name => 'ClipIDArray', Type => 'UMID Array', Unknown => 1 },
1949             '060e2b34.0101.0107.0101150b.00000000' => { Name => 'ExtendedClipIDArray', Type => 'UMID Array', Unknown => 1 },
1950             '060e2b34.0101.0107.01040104.00000000' => { Name => 'TrackNumberBatch', Format => 'int32u' },
1951             '060e2b34.0101.0107.03010102.02110000' => { Name => 'ExtendedTextLanguageCode', Format => 'string', LanguageCode => 1 },
1952             '060e2b34.0101.0107.03010102.02120000' => { Name => 'ExtendedCaptionsLanguageCode', Format => 'string' },
1953             '060e2b34.0101.0107.03010102.02130000' => { Name => 'FrameworkExtendedTextLanguageCode', Format => 'string', LanguageCode => 1 },
1954             '060e2b34.0101.0107.03010102.03110000' => { Name => 'PrimaryExtendedSpokenLanguageCode', Format => 'string' },
1955             '060e2b34.0101.0107.03010102.03120000' => { Name => 'SecondaryExtendedSpokenLanguageCode', Format => 'string' },
1956             '060e2b34.0101.0107.03010102.03130000' => { Name => 'OriginalExtendedSpokenPrimaryLanguageCode', Format => 'string' },
1957             '060e2b34.0101.0107.03010102.03140000' => { Name => 'SecondaryOriginalExtendedSpokenLanguageCode', Format => 'string' },
1958             '060e2b34.0101.0107.03010210.06000000' => { Name => 'KLVMetadataSequence', Type => 'Sequence of KLV packets', Unknown => 1 },
1959             '060e2b34.0101.0107.03010210.07000000' => { Name => 'PackageAttributes', Type => 'StrongReferenceArray', Unknown => 1 },
1960             '060e2b34.0101.0107.03010210.08000000' => { Name => 'ComponentAttributes', Type => 'StrongReferenceArray', Unknown => 1 },
1961             # '060e2b34.0101.0107.03010220.02000000' => { Name => 'XMLBiMConstructsInMultipleStreams', Type => 'Node' },
1962             # '060e2b34.0101.0107.03010220.02010000' => { Name => 'MPEG7BiMDecoderInitFrames', Type => 'Node' },
1963             '060e2b34.0101.0107.03010220.02010100' => { Name => 'MPEG7BiMDecoderInitFrame1', Type => 'ByteStream', Unknown => 1 },
1964             '060e2b34.0101.0107.03010220.02010200' => { Name => 'MPEG7BiMDecoderInitFrame2', Type => 'ByteStream', Unknown => 1 },
1965             '060e2b34.0101.0107.03010220.02010300' => { Name => 'MPEG7BiMDecoderInitFrame3', Type => 'ByteStream', Unknown => 1 },
1966             '060e2b34.0101.0107.03010220.02010400' => { Name => 'MPEG7BiMDecoderInitFrame4', Type => 'ByteStream', Unknown => 1 },
1967             '060e2b34.0101.0107.03010220.02010500' => { Name => 'MPEG7BiMDecoderInitFrame5', Type => 'ByteStream', Unknown => 1 },
1968             '060e2b34.0101.0107.03010220.02010600' => { Name => 'MPEG7BiMDecoderInitFrame6', Type => 'ByteStream', Unknown => 1 },
1969             '060e2b34.0101.0107.03010220.02010700' => { Name => 'MPEG7BiMDecoderInitFrame7', Type => 'ByteStream', Unknown => 1 },
1970             '060e2b34.0101.0107.03010220.02010800' => { Name => 'MPEG7BiMDecoderInitFrame8', Type => 'ByteStream', Unknown => 1 },
1971             # '060e2b34.0101.0107.03010220.02020000' => { Name => 'MPEG7BiMAccessUnitFrames', Type => 'Node' },
1972             '060e2b34.0101.0107.03010220.02020100' => { Name => 'MPEG7BiMAccessUnitFrame1', Type => 'ByteStream', Unknown => 1 },
1973             '060e2b34.0101.0107.03010220.02020200' => { Name => 'MPEG7BiMAccessUnitFrame2', Type => 'ByteStream', Unknown => 1 },
1974             '060e2b34.0101.0107.03010220.02020300' => { Name => 'MPEG7BiMAccessUnitFrame3', Type => 'ByteStream', Unknown => 1 },
1975             '060e2b34.0101.0107.03010220.02020400' => { Name => 'MPEG7BiMAccessUnitFrame4', Type => 'ByteStream', Unknown => 1 },
1976             '060e2b34.0101.0107.03010220.02020500' => { Name => 'MPEG7BiMAccessUnitFrame5', Type => 'ByteStream', Unknown => 1 },
1977             '060e2b34.0101.0107.03010220.02020600' => { Name => 'MPEG7BiMAccessUnitFrame6', Type => 'ByteStream', Unknown => 1 },
1978             '060e2b34.0101.0107.03010220.02020700' => { Name => 'MPEG7BiMAccessUnitFrame7', Type => 'ByteStream', Unknown => 1 },
1979             '060e2b34.0101.0107.03010220.02020800' => { Name => 'MPEG7BiMAccessUnitFrame8', Type => 'ByteStream', Unknown => 1 },
1980             '060e2b34.0101.0107.03020102.16000000' => { Name => 'ComponentUserComments', Type => 'StrongReferenceArray', Unknown => 1 },
1981             '060e2b34.0101.0107.03020501.01000000' => { Name => 'ShotCommentKind', Type => 'UTF-16' },
1982             '060e2b34.0101.0107.03020502.01000000' => { Name => 'ShotComment', Type => 'UTF-16' },
1983             # '060e2b34.0101.0107.04010202.00000000' => { Name => 'SensorParameters', Type => 'Node' },
1984             '060e2b34.0101.0107.04010202.01000000' => { Name => 'SensorMode', Format => 'string' },
1985             '060e2b34.0101.0107.04020101.05000000' => { Name => 'ChannelAssignment', Type => 'UL', Unknown => 1 },
1986             '060e2b34.0101.0107.04040402.06000000' => { Name => 'ContentPackageIndexArray', Type => 'ArrayOfIndexEntry', Unknown => 1 },
1987             # '060e2b34.0101.0107.04040403.00000000' => { Name => 'VideoIndexParameters', Type => 'Node' },
1988             '060e2b34.0101.0107.04040403.01000000' => { Name => 'VideoIndexArray', Type => 'Array of bytes', Unknown => 1 },
1989             '060e2b34.0101.0107.04060202.00000000' => { Name => 'ApproximateImageContainerSize', Format => 'int32u' },
1990             '060e2b34.0101.0107.04060801.00000000' => { Name => 'MetadataEncodingSchemeCode', Format => 'string' },
1991             '060e2b34.0101.0107.04090200.00000000' => { Name => 'MIMEMediaType', Format => 'string' },
1992             '060e2b34.0101.0107.04090201.00000000' => { Name => 'MIMEMediaType', Type => 'UTF-16' },
1993             '060e2b34.0101.0107.04200201.010a0100' => { Name => 'FieldOfViewVerticalFP', Format => 'float' },
1994             '060e2b34.0101.0107.05010108.00000000' => { Name => 'PackageUsageKind', Type => 'AUID', Unknown => 1 },
1995             '060e2b34.0101.0107.06010103.06000000' => { Name => 'ChannelID', Format => 'int32u' },
1996             '060e2b34.0101.0107.06010103.07000000' => { Name => 'ChannelIDs', Format => 'int32u' },
1997             '060e2b34.0101.0107.06010104.01090000' => { Name => 'KLVDataType', Type => 'WeakReference', Unknown => 1 },
1998             '060e2b34.0101.0107.06010104.03040000' => { Name => 'KLVDataParentProperties', Type => 'WeakReferenceBatch', Unknown => 1 },
1999             '060e2b34.0101.0107.06010104.03050000' => { Name => 'TaggedValueParentProperties', Type => 'WeakReferenceBatch', Unknown => 1 },
2000             '060e2b34.0101.0107.06010104.03401303' => { Name => 'AnnotationParticipantSets', Type => 'GlobalReferenceBatch', Unknown => 1 },
2001             '060e2b34.0101.0107.06010104.050a0000' => { Name => 'KLVDataDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
2002             '060e2b34.0101.0107.06010104.050b0000' => { Name => 'TaggedValueDefinitions', Type => 'StrongReferenceBatch', Unknown => 1 },
2003             '060e2b34.0101.0107.06010104.05401f04' => { Name => 'AddressNameValueSets', Type => 'StrongReferenceBatch', Unknown => 1 },
2004             '060e2b34.0101.0107.07010201.02300000' => { Name => 'NMEADocumentText', Format => 'string' },
2005             '060e2b34.0101.0107.07011001.04000000' => { Name => 'PlatformRollAngle', Format => 'float' },
2006             '060e2b34.0101.0107.07011001.05000000' => { Name => 'PlatformPitchAngle', Format => 'float' },
2007             '060e2b34.0101.0107.07011001.06000000' => { Name => 'PlatformHeadingAngle', Format => 'float' },
2008             '060e2b34.0101.0107.07012001.04011300' => { Name => 'AddressLine', Format => 'string' },
2009             '060e2b34.0101.0107.07012001.04011301' => { Name => 'AddressLine', Type => 'UTF-16' },
2010             '060e2b34.0101.0107.07012001.04011400' => { Name => 'PlaceName', Format => 'string' },
2011             '060e2b34.0101.0107.07012001.04011401' => { Name => 'PlaceName', Type => 'UTF-16' },
2012             '060e2b34.0101.0107.07012001.04011500' => { Name => 'GeographicalCoordinates', Type => '12-byte Spatial Coordinate', Unknown => 1 },
2013             '060e2b34.0101.0107.07012001.04011600' => { Name => 'AstronomicalBodyName', Format => 'string' },
2014             '060e2b34.0101.0107.07012001.04011601' => { Name => 'AstronomicalBodyName', Type => 'UTF-16' },
2015             '060e2b34.0101.0107.07020102.08020000' => { Name => 'TimecodeArray', Type => 'Array of timecodes', Unknown => 1 },
2016             '060e2b34.0101.0107.07020103.010c0000' => { Name => 'MarkIn', Type => 'Position', %duration },
2017             '060e2b34.0101.0107.07020103.010d0000' => { Name => 'UserPosition', Type => 'Position', %duration },
2018             '060e2b34.0101.0107.07020103.02030000' => { Name => 'MarkOut', Type => 'Position', %duration },
2019             '060e2b34.0101.0107.07020110.01040000' => { Name => 'ClipCreationDateTime', %timestamp },
2020             '060e2b34.0101.0107.07020201.02050000' => { Name => 'VideoClipDuration', Format => 'int32u' },
2021             # '060e2b34.0101.0107.0d040000.00000000' => { Name => 'BBC', Type => 'Node' },
2022             # '060e2b34.0101.0107.0d050000.00000000' => { Name => 'IRT', Type => 'Node' },
2023             # '060e2b34.0101.0107.0e070000.00000000' => { Name => 'IdeasUnlimitedTV', Type => 'Node' },
2024             # '060e2b34.0101.0107.0e080000.00000000' => { Name => 'IPV', Type => 'Node' },
2025             # '060e2b34.0101.0107.0e090000.00000000' => { Name => 'Dolby', Type => 'Node' },
2026             # '060e2b34.0101.0108.01011540.00000000' => { Name => 'GloballyUniqueObjectIdentifiers', Type => 'Node' },
2027             # '060e2b34.0101.0108.01011540.01000000' => { Name => 'GloballyUniqueHumanIdentifiers', Type => 'Node' },
2028             '060e2b34.0101.0108.01011540.01010000' => { Name => 'ParticipantID', Type => 'UID', Unknown => 1 },
2029             '060e2b34.0101.0108.01011540.01020000' => { Name => 'ContactID', Type => 'UID', Unknown => 1 },
2030             '060e2b34.0101.0108.01020104.00000000' => { Name => 'DefaultNamespaceURI', Format => 'string' },
2031             '060e2b34.0101.0108.01020104.01000000' => { Name => 'DefaultNamespaceURI', Type => 'UTF-16' },
2032             '060e2b34.0101.0108.01020105.00000000' => { Name => 'NamespaceURI', Format => 'string' },
2033             '060e2b34.0101.0108.01020105.01000000' => { Name => 'NamespaceURI', Type => 'UTF-16' },
2034             '060e2b34.0101.0108.01020106.00000000' => { Name => 'NamespaceURIs', Format => 'string' },
2035             '060e2b34.0101.0108.01020106.01000000' => { Name => 'NamespaceURIs', Type => 'UTF-16' },
2036             '060e2b34.0101.0108.01030604.00000000' => { Name => 'HTMLDOCTYPE', Format => 'string' },
2037             '060e2b34.0101.0108.01030604.01000000' => { Name => 'HTMLDOCTYPE', Type => 'UTF-16' },
2038             '060e2b34.0101.0108.01030605.00000000' => { Name => 'NamespacePrefix', Format => 'string' },
2039             '060e2b34.0101.0108.01030605.01000000' => { Name => 'NamespacePrefix', Type => 'UTF-16' },
2040             '060e2b34.0101.0108.01030606.00000000' => { Name => 'NamespacePrefixes', Format => 'string' },
2041             '060e2b34.0101.0108.01030606.01000000' => { Name => 'NamespacePrefixes', Type => 'UTF-16' },
2042             '060e2b34.0101.0108.02050404.00000000' => { Name => 'RightsComment', Format => 'string' },
2043             '060e2b34.0101.0108.02050404.01000000' => { Name => 'RightsComment', Type => 'UTF-16' },
2044             '060e2b34.0101.0108.03020201.06000000' => { Name => 'NominationCategory', Format => 'string' },
2045             '060e2b34.0101.0108.03020201.06010000' => { Name => 'NominationCategory', Type => 'UTF-16' },
2046             '060e2b34.0101.0108.04020301.06000000' => { Name => 'PeakEnvelopeVersion', Format => 'int32u' },
2047             '060e2b34.0101.0108.04020301.07000000' => { Name => 'PeakEnvelopeFormat', Format => 'int32u' },
2048             '060e2b34.0101.0108.04020301.08000000' => { Name => 'PointsPerPeakValue', Format => 'int32u' },
2049             '060e2b34.0101.0108.04020301.09000000' => { Name => 'PeakEnvelopeBlockSize', Format => 'int32u' },
2050             '060e2b34.0101.0108.04020301.0a000000' => { Name => 'PeakChannelCount', Format => 'int32u' },
2051             '060e2b34.0101.0108.04020301.0b000000' => { Name => 'PeakFrameCount', Format => 'int32u' },
2052             '060e2b34.0101.0108.04020301.0c000000' => { Name => 'PeakOfPeaksPosition', Type => 'Position', %duration },
2053             '060e2b34.0101.0108.04020301.0d000000' => { Name => 'PeakEnvelopeTimestamp', Format => 'int32u' },
2054             '060e2b34.0101.0108.04020301.0e000000' => { Name => 'PeakEnvelopeData', Type => 'Stream', Unknown => 1 },
2055             '060e2b34.0101.0108.04060802.00000000' => { Name => 'RIFFChunkID', Format => 'int32u' },
2056             '060e2b34.0101.0108.04060903.00000000' => { Name => 'RIFFChunkLength', Format => 'int32u' },
2057             '060e2b34.0101.0108.04070400.00000000' => { Name => 'RIFFChunkData', Type => 'DataStream', Unknown => 1 },
2058             '060e2b34.0101.0108.04090300.00000000' => { Name => 'MIMECharSet', Format => 'string' },
2059             '060e2b34.0101.0108.04090301.00000000' => { Name => 'MIMECharSet', Type => 'UTF-16' },
2060             '060e2b34.0101.0108.04090400.00000000' => { Name => 'MIMEEncoding', Format => 'string' },
2061             '060e2b34.0101.0108.04090401.00000000' => { Name => 'MIMEEncoding', Type => 'UTF-16' },
2062             '060e2b34.0101.0108.06010103.08000000' => { Name => 'MonoSourceTrackIDs', Format => 'int32u' },
2063             '060e2b34.0101.0108.06010104.010a0000' => { Name => 'CompositionRendering', Type => 'PackageID', Unknown => 1 },
2064             '060e2b34.0101.0108.06010104.03401304' => { Name => 'CaptionsDescriptionParticipantSets', Type => 'GlobalReferenceBatch', Unknown => 1 },
2065             '060e2b34.0101.0108.06010104.05400d01' => { Name => 'EventAnnotationSets', Type => 'StrongReferenceBatch', Unknown => 1 },
2066             '060e2b34.0101.0108.06010104.060e0000' => { Name => 'ScriptingLocators', Type => 'StrongReferenceArray', Unknown => 1 },
2067             '060e2b34.0101.0108.06010104.060f0000' => { Name => 'UnknownBWFChunks', Type => 'StrongReferenceArray', Unknown => 1 },
2068             # '060e2b34.0101.0108.0e0a0000.00000000' => { Name => 'SnellAndWilcox', Type => 'Node' },
2069             '060e2b34.0101.0109.01011511.00000000' => { Name => 'CryptographicContextID', Type => 'UUID', Unknown => 1 },
2070             '060e2b34.0101.0109.01012101.01000000' => { Name => 'PlatformDesignation', Type => 'UTF-16' },
2071             '060e2b34.0101.0109.01030107.01000000' => { Name => 'LocalTargetID', Type => 'UTF-16' },
2072             '060e2b34.0101.0109.01030109.00000000' => { Name => 'NITFLayerTargetID', Format => 'string' },
2073             '060e2b34.0101.0109.01030109.01000000' => { Name => 'NITFLayerTargetID', Type => 'UTF-16' },
2074             '060e2b34.0101.0109.01030302.00000000' => { Name => 'PackageName', Format => 'string' },
2075             '060e2b34.0101.0109.01030406.00000000' => { Name => 'RP217DataStreamPID', Format => 'int16u' },
2076             '060e2b34.0101.0109.01030407.00000000' => { Name => 'RP217VideoStreamPID', Format => 'int16u' },
2077             '060e2b34.0101.0109.02010101.00000000' => { Name => 'SourceOrganization', Type => 'UTF-16' },
2078             '060e2b34.0101.0109.02010301.00000000' => { Name => 'OriginalProducerName', Type => 'UTF-16' },
2079             '060e2b34.0101.0109.02080201.01000000' => { Name => 'SecurityClassification', Type => 'UTF-16' },
2080             '060e2b34.0101.0109.02080202.01000000' => { Name => 'SecurityClassificationCaveats', Type => 'UTF-16' },
2081             '060e2b34.0101.0109.02080207.01000000' => { Name => 'ClassificationComment', Type => 'UTF-16' },
2082             # '060e2b34.0101.0109.02090200.00000000' => { Name => 'DataEncryption', Type => 'Node' },
2083             # '060e2b34.0101.0109.02090201.00000000' => { Name => 'DataEncryptionAlgorithms', Type => 'Node' },
2084             # '060e2b34.0101.0109.02090202.00000000' => { Name => 'DataHashingAlgorithms', Type => 'Node' },
2085             # '060e2b34.0101.0109.02090300.00000000' => { Name => 'DigitalCinemaEncryption', Type => 'Node' },
2086             # '060e2b34.0101.0109.02090301.00000000' => { Name => 'DigitalCinemaEncryptionAlgorithms', Type => 'Node' },
2087             '060e2b34.0101.0109.02090301.01000000' => { Name => 'CipherAlgorithm', Type => 'UL', Unknown => 1 },
2088             '060e2b34.0101.0109.02090301.02000000' => { Name => 'CryptographicKeyID', Type => 'UUID', Unknown => 1 },
2089             '060e2b34.0101.0109.02090301.03000000' => { Name => 'EncryptedSourceValue', Type => 'DataValue', Unknown => 1 },
2090             # '060e2b34.0101.0109.02090302.00000000' => { Name => 'DigitalCinemaHashingAlgorithms', Type => 'Node' },
2091             '060e2b34.0101.0109.02090302.01000000' => { Name => 'MICAlgorithm', Type => 'UL', Unknown => 1 },
2092             '060e2b34.0101.0109.02090302.02000000' => { Name => 'MIC', Type => 'DataValue', Unknown => 1 },
2093             '060e2b34.0101.0109.03010102.01010000' => { Name => 'ISO639-1LanguageCode', Type => 'UTF-16' },
2094             '060e2b34.0101.0109.03020106.10000000' => { Name => 'JFIFMarkerDescription', Format => 'string' },
2095             '060e2b34.0101.0109.03020106.10010000' => { Name => 'JFIFMarkerDescription', Type => 'UTF-16' },
2096             '060e2b34.0101.0109.03020106.11000000' => { Name => 'HTMLMetaDescription', Format => 'string' },
2097             '060e2b34.0101.0109.03020106.11010000' => { Name => 'HTMLMetaDescription', Type => 'UTF-16' },
2098             '060e2b34.0101.0109.03020401.02000000' => { Name => 'MetadataItemName', Format => 'string' },
2099             '060e2b34.0101.0109.04010201.01060000' => { Name => 'ColorPrimaries', Format => 'string' },
2100             '060e2b34.0101.0109.04010201.01060100' => { Name => 'ColorPrimaries', Type => 'ColorPrimariesType', Unknown => 1 },
2101             '060e2b34.0101.0109.04060203.00000000' => { Name => 'ProductFormat', Format => 'string' },
2102             '060e2b34.0101.0109.04060203.01000000' => { Name => 'ProductFormat', Type => 'UTF-16' },
2103             '060e2b34.0101.0109.04061002.00000000' => { Name => 'SourceLength', Format => 'int64u' },
2104             '060e2b34.0101.0109.04200102.01010100' => { Name => 'ImageSourceDeviceKind', Type => 'UTF-16' },
2105             '060e2b34.0101.0109.06010102.02000000' => { Name => 'SourceContainerFormat', Type => 'UL', Unknown => 1 },
2106             '060e2b34.0101.0109.06010102.03000000' => { Name => 'SourceKey', Type => 'UL', Unknown => 1 },
2107             '060e2b34.0101.0109.06010103.09000000' => { Name => 'DynamicSourcePackageID', Type => 'PackageID', Unknown => 1 },
2108             '060e2b34.0101.0109.06010103.0a000000' => { Name => 'DynamicSourceTrackIDs', Format => 'int32u' },
2109             '060e2b34.0101.0109.06010103.0b000000' => { Name => 'SourceIndex', Type => 'Indirect', Unknown => 1 },
2110             '060e2b34.0101.0109.06010103.0c000000' => { Name => 'SourceSpecies', Type => 'Indirect', Unknown => 1 },
2111             '060e2b34.0101.0109.06010103.0d000000' => { Name => 'SourceValue', Type => 'Indirect', Unknown => 1 },
2112             '060e2b34.0101.0109.06010104.020d0000' => { Name => 'CryptographicContextObject', Type => 'StrongReference', Unknown => 1 },
2113             '060e2b34.0101.0109.06010104.06100000' => { Name => 'Sub-descriptors', Type => 'StrongReferenceArray', Unknown => 1 },
2114             '060e2b34.0101.0109.06010106.02000000' => { Name => 'EncryptedTrackFileID', Type => 'UUID', Unknown => 1 },
2115             '060e2b34.0101.0109.06010106.03000000' => { Name => 'CryptographicContextLink', Type => 'UUID', Unknown => 1 },
2116             '060e2b34.0101.0109.06090201.03000000' => { Name => 'PlaintextOffset', Format => 'int64u' },
2117             '060e2b34.0101.0109.06100500.00000000' => { Name => 'TripletSequenceNumber', Format => 'int64u' },
2118             '060e2b34.0101.0109.07010201.030f0000' => { Name => 'BoundingRectangle', Type => 'Geographic Rectangle', Unknown => 1 },
2119             '060e2b34.0101.0109.07010201.03100000' => { Name => 'GeographicLocation', Type => 'Geographic Polygon', Unknown => 1 },
2120             '060e2b34.0101.0109.07010201.03110000' => { Name => 'GeographicPolygonCoordinates', Type => 'Array of GeographicCoordinate', Unknown => 1 },
2121             '060e2b34.0101.0109.07010201.03120000' => { Name => 'GeographicAreaNorthwest', Type => 'GeographicCoordinate', Unknown => 1 },
2122             '060e2b34.0101.0109.07010201.03130000' => { Name => 'GeographicAreaSoutheast', Type => 'GeographicCoordinate', Unknown => 1 },
2123             '060e2b34.0101.0109.07010201.03140000' => { Name => 'GeographicAreaSourceDatum', Format => 'string' },
2124             '060e2b34.0101.0109.07010201.03150000' => { Name => 'GeographicPolygonSourceDatum', Format => 'string' },
2125             '060e2b34.0101.0109.07012001.02070100' => { Name => 'CountryCodeMethod', Type => 'UTF-16' },
2126             '060e2b34.0101.0109.07012001.02080100' => { Name => 'ClassifyingCountryCode', Type => 'UTF-16' },
2127             '060e2b34.0101.0109.07012001.02090100' => { Name => 'ReleasableCountryCode', Type => 'UTF-16' },
2128             '060e2b34.0101.0109.07020102.01010100' => { Name => 'UTCStartDateTime', Type => 'UTF-16', Groups => { 2 => 'Time' } },
2129             '060e2b34.0101.0109.07020102.01030000' => { Name => 'UTCInstantDateTime', Format => 'string', Groups => { 2 => 'Time' } },
2130             '060e2b34.0101.0109.07020102.01030100' => { Name => 'UTCInstantDateTime', Type => 'UTF-16', Groups => { 2 => 'Time' } },
2131             '060e2b34.0101.0109.07020102.05010100' => { Name => 'UTCLastModifyDate', Type => 'UTF-16', Groups => { 2 => 'Time' } },
2132             '060e2b34.0101.0109.07020501.00000000' => { Name => 'ToleranceMode', Type => 'ToleranceModeType', Unknown => 1 },
2133             '060e2b34.0101.0109.07020502.00000000' => { Name => 'ToleranceWindow', Type => 'Indirect', Unknown => 1 },
2134             '060e2b34.0101.0109.07020503.00000000' => { Name => 'ToleranceInterpolationMethod', Type => 'WeakReferenceInterpolationDefinition', Unknown => 1 },
2135             # '060e2b34.0101.0109.0d060000.00000000' => { Name => 'ARIB', Type => 'Node' },
2136             # '060e2b34.0101.0109.0d070000.00000000' => { Name => 'AMIA', Type => 'Node' },
2137             # '060e2b34.0101.0109.0e0b0000.00000000' => { Name => 'OmneonVideoNetworks', Type => 'Node' },
2138             # '060e2b34.0101.0109.0e0c0000.00000000' => { Name => 'AscentMediaGroup', Type => 'Node' },
2139             # '060e2b34.0101.0109.0e0c0100.00000000' => { Name => 'Published', Type => 'Node' },
2140             # '060e2b34.0101.0109.0e0d0000.00000000' => { Name => 'Quantel', Type => 'Node' },
2141             # '060e2b34.0101.0109.0e0e0000.00000000' => { Name => 'Panasonic', Type => 'Node' },
2142             '060e2b34.0101.010a.04010502.03000000' => { Name => 'VBILineCount', Format => 'int16u' },
2143             '060e2b34.0101.010a.04010502.04000000' => { Name => 'StoredVBILineNumber', Format => 'int16u' },
2144             '060e2b34.0101.010a.04010502.05000000' => { Name => 'VBIWrappingType', Format => 'int8u' },
2145             '060e2b34.0101.010a.04010502.06000000' => { Name => 'VBIPayloadSampleCount', Format => 'int16u' },
2146             '060e2b34.0101.010a.04010502.07000000' => { Name => 'VBIPayloadByteArray', Format => 'int8u' },
2147             '060e2b34.0101.010a.04010502.08000000' => { Name => 'ANCPacketCount', Format => 'int16u' },
2148             '060e2b34.0101.010a.04010502.09000000' => { Name => 'StoredANCLineNumber', Format => 'int16u' },
2149             '060e2b34.0101.010a.04010502.0a000000' => { Name => 'ANCWrappingType', Format => 'int8u' },
2150             '060e2b34.0101.010a.04010502.0b000000' => { Name => 'ANCPayloadSampleCount', Format => 'int16u' },
2151             '060e2b34.0101.010a.04010502.0c000000' => { Name => 'ANCPayloadByteArray', Format => 'int8u' },
2152             '060e2b34.0101.010a.04010503.0f000000' => { Name => 'VBIPayloadSampleCoding', Format => 'int8u' },
2153             '060e2b34.0101.010a.04010503.10000000' => { Name => 'ANCPayloadSampleCoding', Format => 'int8u' },
2154             # '060e2b34.0101.010a.04010603.00000000' => { Name => 'JPEG2000CodingParameters', Type => 'Node' },
2155             '060e2b34.0101.010a.04010603.01000000' => { Name => 'Rsiz', Format => 'int16u' },
2156             '060e2b34.0101.010a.04010603.02000000' => { Name => 'Xsiz', Format => 'int32u' },
2157             '060e2b34.0101.010a.04010603.03000000' => { Name => 'Ysiz', Format => 'int32u' },
2158             '060e2b34.0101.010a.04010603.04000000' => { Name => 'XOsiz', Format => 'int32u' },
2159             '060e2b34.0101.010a.04010603.05000000' => { Name => 'YOsiz', Format => 'int32u' },
2160             '060e2b34.0101.010a.04010603.06000000' => { Name => 'XTsiz', Format => 'int32u' },
2161             '060e2b34.0101.010a.04010603.07000000' => { Name => 'YTsiz', Format => 'int32u' },
2162             '060e2b34.0101.010a.04010603.08000000' => { Name => 'XTOsiz', Format => 'int32u' },
2163             '060e2b34.0101.010a.04010603.09000000' => { Name => 'YTOsiz', Format => 'int32u' },
2164             '060e2b34.0101.010a.04010603.0a000000' => { Name => 'Csiz', Format => 'int16u' },
2165             '060e2b34.0101.010a.04010603.0b000000' => { Name => 'PictureComponentSizing', Type => 'J2K ComponentSizingArray', Unknown => 1 },
2166             '060e2b34.0101.010a.04010603.0c000000' => { Name => 'CodingStyleDefault', Type => 'J2K CodingStyleDefault', Unknown => 1 },
2167             '060e2b34.0101.010a.04010603.0d000000' => { Name => 'QuantizationDefault', Type => 'J2K QuantizationDefault', Unknown => 1 },
2168             '060e2b34.0101.010a.04020403.01020000' => { Name => 'MPEGAudioBitrate', Format => 'int32u', PrintConv => 'ConvertBitrate($val)', Groups => { 2 => 'Audio' } },
2169             '060e2b34.0101.010a.04060204.00000000' => { Name => 'CBEStartOffset', Format => 'int64u' },
2170             '060e2b34.0101.010a.04060205.00000000' => { Name => 'VBEEndOffset', Format => 'int64u' },
2171             '060e2b34.0101.010a.06010104.02100000' => { Name => 'SubDescriptor', Unknown => 1 },
2172             '060e2b34.0101.010a.06010104.06100000' => { Name => 'SubDescriptors', Unknown => 1 },
2173             '060e2b34.0101.010a.06010107.16000000' => { Name => 'RootMetaDictionary', Type => 'StrongReference', Unknown => 1 },
2174             '060e2b34.0101.010a.06010107.17000000' => { Name => 'RootPreface', Type => 'StrongReference', Unknown => 1 },
2175             '060e2b34.0101.010a.06010107.18000000' => { Name => 'RootObjectDirectory', Type => 'Array of bytes', Unknown => 1 },
2176             '060e2b34.0101.010a.06010107.19000000' => { Name => 'RootFormatVersion', Format => 'int32u' },
2177             '060e2b34.0101.010a.07010201.03160000' => { Name => 'FrameCenterElevation', Format => 'float' },
2178             '060e2b34.0101.010a.07020103.010e0000' => { Name => 'PackageMarkInPosition', Type => 'Position', %duration },
2179             '060e2b34.0101.010a.07020103.02040000' => { Name => 'PackageMarkOutPosition', Type => 'Position', %duration },
2180             # '060e2b34.0101.010a.0d080000.00000000' => { Name => 'PBS', Type => 'Node' },
2181             # '060e2b34.0101.010a.0e0f0000.00000000' => { Name => 'GrassValley', Type => 'Node' },
2182             # '060e2b34.0101.010a.0e100000.00000000' => { Name => 'DoremiLabs', Type => 'Node' },
2183             # '060e2b34.0101.010a.0e110000.00000000' => { Name => 'EVSBroadcastEquipment', Type => 'Node' },
2184             # '060e2b34.0101.010a.0e120000.00000000' => { Name => 'TurnerBroadcastingSystem', Type => 'Node' },
2185             '060e2b34.0101.010c.0101110b.00000000' => { Name => 'Ad-ID', Unknown => 1 },
2186             '060e2b34.0101.010c.01011512.00000000' => { Name => 'ResourceID', Type => 'UUID', Unknown => 1 },
2187             '060e2b34.0101.010c.01011513.00000000' => { Name => 'AncillaryResourceID', Type => 'UUID', Unknown => 1 },
2188             '060e2b34.0101.010c.01020210.02030000' => { Name => 'ApplicationSchemeBatch', Type => 'BatchOfUL', Unknown => 1 },
2189             # '060e2b34.0101.010c.02100202.00000000' => { Name => 'RegisterPublicationInformation', Type => 'Node' },
2190             '060e2b34.0101.010c.02100202.01000000' => { Name => 'RegisterKind', Type => 'RegisterType', Unknown => 1 },
2191             '060e2b34.0101.010c.02100202.02000000' => { Name => 'RegisterVersion', Type => 'Hex' },
2192             '060e2b34.0101.010c.02100202.03000000' => { Name => 'RegisterEditorName', Type => 'UTF-16' },
2193             '060e2b34.0101.010c.02100202.04000000' => { Name => 'RegisterStatusKind', Type => 'RegisterStatusType', Unknown => 1 },
2194             # '060e2b34.0101.010c.02100203.00000000' => { Name => 'RegisterItem', Type => 'Node' },
2195             '060e2b34.0101.010c.02100203.01000000' => { Name => 'RegisterItemName', Type => 'UTF-16' },
2196             '060e2b34.0101.010c.02100203.02000000' => { Name => 'RegisterItemDefinition', Type => 'UTF-16' },
2197             '060e2b34.0101.010c.02100203.03000000' => { Name => 'RegisterItemSymbol', Type => 'SymbolType', Unknown => 1 },
2198             '060e2b34.0101.010c.02100203.04000000' => { Name => 'RegisterItemDefiningDocumentName', Type => 'UTF-16' },
2199             '060e2b34.0101.010c.02100203.05000000' => { Name => 'RegisterItemUL', Type => 'UniversalLabelType', Unknown => 1 },
2200             '060e2b34.0101.010c.02100203.06000000' => { Name => 'RegisterItemNotes', Type => 'UTF-16' },
2201             '060e2b34.0101.010c.02100203.07000000' => { Name => 'RegisterItemIntroductionVersion', Format => 'int8u' },
2202             '060e2b34.0101.010c.02100203.08000000' => { Name => 'RegisterItemHierarchyLevel', Format => 'int16u' },
2203             # '060e2b34.0101.010c.02100203.09000000' => { Name => 'RegisterWildcardFlag', Type => 'Node' },
2204             '060e2b34.0101.010c.02100203.0a000000' => { Name => 'RegisterEntryStatus', Type => 'EntryStatusType', Unknown => 1 },
2205             # '060e2b34.0101.010c.02100204.00000000' => { Name => 'RegisterAdministration', Type => 'Node' },
2206             '060e2b34.0101.010c.02100204.01000000' => { Name => 'RegisterAction', Type => 'UTF-16' },
2207             '060e2b34.0101.010c.02100204.02000000' => { Name => 'RegisterApproverName', Type => 'UTF-16' },
2208             '060e2b34.0101.010c.02100204.03000000' => { Name => 'RegisterCreationTime', %timestamp },
2209             '060e2b34.0101.010c.02100204.04000000' => { Name => 'RegistrantName', Type => 'UTF-16' },
2210             '060e2b34.0101.010c.02100204.05000000' => { Name => 'RegisterItemOriginatorName', Type => 'UTF-16' },
2211             '060e2b34.0101.010c.02100204.06000000' => { Name => 'RegisterUserName', Type => 'UTF-16' },
2212             '060e2b34.0101.010c.02100204.07000000' => { Name => 'RegisterUserTime', %timestamp },
2213             '060e2b34.0101.010c.02100204.08000000' => { Name => 'RegisterAdministrationNotes', Type => 'UTF-16' },
2214             '060e2b34.0101.010c.04010101.09000000' => { Name => 'AFDAndBarData', Unknown => 1 },
2215             '060e2b34.0101.010c.04010101.0a000000' => { Name => 'PanScanInformation', Unknown => 1 },
2216             # '060e2b34.0101.010c.04010604.00000000' => { Name => 'VC-1PictureEssenceDescriptors', Type => 'Node' },
2217             '060e2b34.0101.010c.04010604.01000000' => { Name => 'VC-1InitializationMetadata', Type => 'DataStream', Unknown => 1 },
2218             '060e2b34.0101.010c.04010604.02000000' => { Name => 'VC-1SingleSequence', Type => 'Boolean' },
2219             '060e2b34.0101.010c.04010604.03000000' => { Name => 'VC-1CodedContentType', Format => 'int8u' },
2220             '060e2b34.0101.010c.04010604.04000000' => { Name => 'VC-1IdenticalGOP', Type => 'Boolean' },
2221             '060e2b34.0101.010c.04010604.05000000' => { Name => 'VC-1MaximumGOP', Format => 'int16u' },
2222             '060e2b34.0101.010c.04010604.06000000' => { Name => 'VC-1BPictureCount', Format => 'int16u' },
2223             '060e2b34.0101.010c.04010604.07000000' => { Name => 'VC-1AverageBitrate', Format => 'int32u', PrintConv => 'ConvertBitrate($val)' },
2224             '060e2b34.0101.010c.04010604.08000000' => { Name => 'VC-1MaximumBitrate', Format => 'int32u', PrintConv => 'ConvertBitrate($val)' },
2225             '060e2b34.0101.010c.04010604.09000000' => { Name => 'VC-1Profile', Format => 'int8u' },
2226             '060e2b34.0101.010c.04010604.0a000000' => { Name => 'VC-1Level', Format => 'int8u' },
2227             '060e2b34.0101.010c.04020501.07000000' => { Name => 'LinkedTimecodeTrackID', Type => 'UInt32Array', Unknown => 1 },
2228             '060e2b34.0101.010c.04020501.08000000' => { Name => 'SMPTE337MDataStreamNumber', Format => 'int8u' },
2229             '060e2b34.0101.010c.04060803.00000000' => { Name => 'ApplicationScheme', Type => 'UL', Unknown => 1 },
2230             '060e2b34.0101.010c.04060804.00000000' => { Name => 'DescriptiveMetadataScheme', Type => 'UL', Unknown => 1 },
2231             '060e2b34.0101.010c.04090500.00000000' => { Name => 'UCSEncoding', Type => 'UTF-16' },
2232             '060e2b34.0101.010c.05200701.0b000000' => { Name => 'LinkedApplicationPlug-InInstanceID', Type => 'WeakReference', Unknown => 1 },
2233             '060e2b34.0101.010c.05200701.0c000000' => { Name => 'LinkedDescriptiveFrameworkPlug-InID', Type => 'WeakReference', Unknown => 1 },
2234             '060e2b34.0101.010c.05200701.0d000000' => { Name => 'ApplicationPlug-InInstanceID', Type => 'UUID', Unknown => 1 },
2235             '060e2b34.0101.010c.05200701.0e000000' => { Name => 'DescriptiveMetadataPlug-InID', Type => 'UUID', Unknown => 1 },
2236             '060e2b34.0101.010c.05200701.0f000000' => { Name => 'ApplicationEnvironmentID', Type => 'UTF-16' },
2237             '060e2b34.0101.010c.05200701.10000000' => { Name => 'DescriptiveMetadataApplicationEnvironmentID', Type => 'UTF-16' },
2238             '060e2b34.0101.010c.05200701.11000000' => { Name => 'LinkedDescriptiveObjectPlug-InID', Type => 'WeakReference', Unknown => 1 },
2239             '060e2b34.0101.010c.06010103.0e000000' => { Name => 'TimebaseReferenceTrackID', Format => 'int32u' },
2240             '060e2b34.0101.010c.06010104.010b0000' => { Name => 'ObjectClassDefinition', Type => 'AUID', Unknown => 1 },
2241             '060e2b34.0101.010c.06010104.020e0000' => { Name => 'ApplicationPlug-InBatch', Type => 'StrongReference', Unknown => 1 },
2242             '060e2b34.0101.010c.06010104.020f0000' => { Name => 'PackageMarker', Type => 'StrongReference', Unknown => 1 },
2243             '060e2b34.0101.010c.06010104.02100000' => { Name => 'PackageTimelineMarkerRef', Type => 'StrongReference', Unknown => 1 },
2244             '060e2b34.0101.010c.06010104.02110000' => { Name => 'RegisterAdministrationObject', Type => 'StrongReference', Unknown => 1 },
2245             '060e2b34.0101.010c.06010104.02120000' => { Name => 'RegisterEntryAdministrationObject', Type => 'StrongReference', Unknown => 1 },
2246             '060e2b34.0101.010c.06010104.03060000' => { Name => 'GenericPayloads', Type => 'WeakReferenceBatch', Unknown => 1 },
2247             '060e2b34.0101.010c.06010104.06110000' => { Name => 'RegisterEntryArray', Type => 'StrongReferenceArray', Unknown => 1 },
2248             '060e2b34.0101.010c.06010104.06120000' => { Name => 'RegisterAdministrationArray', Type => 'StrongReferenceArray', Unknown => 1 },
2249             '060e2b34.0101.010c.06010104.06130000' => { Name => 'ApplicationInformationArray', Type => 'StrongReferenceArray', Unknown => 1 },
2250             '060e2b34.0101.010c.06010104.06140000' => { Name => 'RegisterChildEntryArray', Type => 'StrongReferenceArray', Unknown => 1 },
2251             '060e2b34.0101.010c.07020101.01060000' => { Name => 'RegisterReleaseDateTime', %timestamp },
2252             '060e2b34.0101.010c.07020101.01070000' => { Name => 'RegisterItemStatusChangeDateTime', %timestamp },
2253             # '060e2b34.0101.010c.0d090000.00000000' => { Name => 'ASC', Type => 'Node' },
2254             # '060e2b34.0101.010c.0d0a0000.00000000' => { Name => 'AES', Type => 'Node' },
2255             # '060e2b34.0101.010c.0d0b0000.00000000' => { Name => 'DutchGuild', Type => 'Node' },
2256             # '060e2b34.0101.010c.0e130000.00000000' => { Name => 'NLTechnologyLLC', Type => 'Node' },
2257             # '060e2b34.0101.010c.0e140000.00000000' => { Name => 'HarrisCorporation', Type => 'Node' },
2258              
2259             # data types (not used as tag ID's, right?)
2260             # '060e2b34.0104.0101.01010100.00000000' => { Name => 'UInt8' },
2261             # '060e2b34.0104.0101.01010200.00000000' => { Name => 'UInt16' },
2262             # '060e2b34.0104.0101.01010300.00000000' => { Name => 'UInt32' },
2263             # '060e2b34.0104.0101.01010400.00000000' => { Name => 'UInt64' },
2264             # '060e2b34.0104.0101.01010500.00000000' => { Name => 'Int8' },
2265             # '060e2b34.0104.0101.01010600.00000000' => { Name => 'Int16' },
2266             # '060e2b34.0104.0101.01010700.00000000' => { Name => 'Int32' },
2267             # '060e2b34.0104.0101.01010800.00000000' => { Name => 'Int64' },
2268             # '060e2b34.0104.0101.01012001.00000000' => { Name => 'Position' },
2269             # '060e2b34.0104.0101.01012002.00000000' => { Name => 'LengthType' },
2270             # '060e2b34.0104.0101.01030100.00000000' => { Name => 'AUID' },
2271             # '060e2b34.0104.0101.01030200.00000000' => { Name => 'PackageID' },
2272             # '060e2b34.0104.0101.01040100.00000000' => { Name => 'Boolean' },
2273             # '060e2b34.0104.0101.01100100.00000000' => { Name => 'UTF16' },
2274             # '060e2b34.0104.0101.01100200.00000000' => { Name => 'UTF16String' },
2275             # '060e2b34.0104.0101.01100300.00000000' => { Name => 'ISO7' },
2276             # '060e2b34.0104.0101.01100400.00000000' => { Name => 'ISO7String' },
2277             # '060e2b34.0104.0101.01200500.00000000' => { Name => 'UTF7String' },
2278             # '060e2b34.0104.0101.01300100.00000000' => { Name => 'UMID' },
2279             # '060e2b34.0104.0101.0201010e.00000000' => { Name => 'RGBACode' },
2280             # '060e2b34.0104.0101.02010125.00000000' => { Name => 'ChannelStatusModeType' },
2281             # '060e2b34.0104.0101.03010100.00000000' => { Name => 'Rational' },
2282             # '060e2b34.0104.0101.03010101.00000000' => { Name => 'Numerator' },
2283             # '060e2b34.0104.0101.03010102.00000000' => { Name => 'Denominator' },
2284             # '060e2b34.0104.0101.03010200.00000000' => { Name => 'ProductVersionType' },
2285             # '060e2b34.0104.0101.03010201.00000000' => { Name => 'Major' },
2286             # '060e2b34.0104.0101.03010202.00000000' => { Name => 'Minor' },
2287             # '060e2b34.0104.0101.03010203.00000000' => { Name => 'Patch' },
2288             # '060e2b34.0104.0101.03010204.00000000' => { Name => 'Build' },
2289             # '060e2b34.0104.0101.03010205.00000000' => { Name => 'Release' },
2290             # '060e2b34.0104.0101.03010300.00000000' => { Name => 'VersionType' },
2291             # '060e2b34.0104.0101.03010400.00000000' => { Name => 'RGBALayoutItem' },
2292             # '060e2b34.0104.0101.03010501.00000000' => { Name => 'Year' },
2293             # '060e2b34.0104.0101.03010502.00000000' => { Name => 'Month' },
2294             # '060e2b34.0104.0101.03010503.00000000' => { Name => 'Day' },
2295             # '060e2b34.0104.0101.03010601.00000000' => { Name => 'Hours' },
2296             # '060e2b34.0104.0101.03010602.00000000' => { Name => 'Minutes' },
2297             # '060e2b34.0104.0101.03010603.00000000' => { Name => 'Seconds' },
2298             # '060e2b34.0104.0101.03010604.00000000' => { Name => 'msBy4' },
2299             # '060e2b34.0104.0101.03010700.00000000' => { Name => 'Timestamp' },
2300             # '060e2b34.0104.0101.04010100.00000000' => { Name => 'UInt8Array' },
2301             # '060e2b34.0104.0101.04010300.00000000' => { Name => 'Int32Array' },
2302             # '060e2b34.0104.0101.04010400.00000000' => { Name => 'Int64Array' },
2303             # '060e2b34.0104.0101.04010600.00000000' => { Name => 'AUIDArray' },
2304             # '060e2b34.0104.0101.04020100.00000000' => { Name => 'RGBALayout' },
2305             # '060e2b34.0104.0101.04020200.00000000' => { Name => 'RationalArray' },
2306             # '060e2b34.0104.0101.04030200.00000000' => { Name => 'UInt32Batch' },
2307             # '060e2b34.0104.0101.04100100.00000000' => { Name => 'DataValue' },
2308             # '060e2b34.0104.0101.04100200.00000000' => { Name => 'Stream' },
2309             # '060e2b34.0104.0101.04100300.00000000' => { Name => 'Indirect' },
2310             # '060e2b34.0104.0101.04100400.00000000' => { Name => 'Opaque' },
2311             # '060e2b34.0104.0101.05010000.00000000' => { Name => 'WeakRef' },
2312             # '060e2b34.0104.0101.05020000.00000000' => { Name => 'StrongRef' },
2313             # '060e2b34.0104.0101.05021400.00000000' => { Name => 'StrongReferenceTrack' },
2314             # '060e2b34.0104.0101.05060500.00000000' => { Name => 'StrongReferenceVectorTrack' },
2315             # '060e2b34.0204.0107.0d010301.027e0100' => { Name => 'EncryptedTriplet' },
2316              
2317             '060e2b34.0205.0101.0d010201.01020100' => { Name => 'OpenHeader', %header },
2318             '060e2b34.0205.0101.0d010201.01020200' => { Name => 'ClosedHeader', %header },
2319             '060e2b34.0205.0101.0d010201.01020300' => { Name => 'OpenCompleteHeader', %header },
2320             '060e2b34.0205.0101.0d010201.01020400' => { Name => 'ClosedCompleteHeader', %header },
2321             '060e2b34.0205.0101.0d010201.01030100' => { Name => 'OpenBodyPartition', Unknown => 1 },
2322             '060e2b34.0205.0101.0d010201.01030200' => { Name => 'ClosedBodyPartition', Unknown => 1 },
2323             '060e2b34.0205.0101.0d010201.01030300' => { Name => 'OpenCompleteBodyPartition', Unknown => 1 },
2324             '060e2b34.0205.0101.0d010201.01030400' => { Name => 'ClosedCompleteBodyPartition', Unknown => 1 },
2325             '060e2b34.0205.0101.0d010201.01040200' => { Name => 'Footer', Unknown => 1 },
2326             '060e2b34.0205.0101.0d010201.01040400' => { Name => 'CompleteFooter', Unknown => 1 },
2327              
2328             '060e2b34.0205.0101.0d010201.01050100' => { Name => 'Primer', SubDirectory => { TagTable => 'Image::ExifTool::MXF::Main', ProcessProc => \&ProcessPrimer } },
2329              
2330             '060e2b34.0205.0101.0d010201.01110000' => { Name => 'RandomIndexMetadataV10', Type => 'FixedPack', Unknown => 1 },
2331             '060e2b34.0205.0101.0d010201.01110100' => { Name => 'RandomIndexMetadata', Type => 'FixedPack', Unknown => 1 },
2332             '060e2b34.0206.0101.0d010200.00000000' => { Name => 'PartitionMetadata', Type => 'FixedPack', Unknown => 1 },
2333              
2334             '060e2b34.0253.0101.0d010101.01010200' => { Name => 'StructuralComponent', %localSet },
2335             '060e2b34.0253.0101.0d010101.01010f00' => { Name => 'SequenceSet', %localSet },
2336             # Note: SourceClip is actually a local set, but it isn't decoded because it has a Duration
2337             # tag which gets confused with the other Duration tags (also, my technique of determining
2338             # the corresponding EditRate doesn't seem to work for this Duration)
2339             '060e2b34.0253.0101.0d010101.01011100' => { Name => 'SourceClip', Unknown => 1 },
2340             '060e2b34.0253.0101.0d010101.01011400' => { Name => 'TimecodeComponent', %localSet },
2341             '060e2b34.0253.0101.0d010101.01011800' => { Name => 'ContentStorageSet', %localSet },
2342             '060e2b34.0253.0101.0d010101.01012300' => { Name => 'EssenceContainerDataSet', %localSet },
2343             '060e2b34.0253.0101.0d010101.01012500' => { Name => 'FileDescriptor', %localSet },
2344             '060e2b34.0253.0101.0d010101.01012700' => { Name => 'GenericPictureEssenceDescriptor', %localSet },
2345             '060e2b34.0253.0101.0d010101.01012800' => { Name => 'CDCIEssenceDescriptor', %localSet },
2346             '060e2b34.0253.0101.0d010101.01012900' => { Name => 'RGBAEssenceDescriptor', %localSet },
2347             '060e2b34.0253.0101.0d010101.01012f00' => { Name => 'Preface', %localSet },
2348             '060e2b34.0253.0101.0d010101.01013000' => { Name => 'Identification', %localSet },
2349             '060e2b34.0253.0101.0d010101.01013200' => { Name => 'NetworkLocator', %localSet },
2350             '060e2b34.0253.0101.0d010101.01013300' => { Name => 'TextLocator', %localSet },
2351             '060e2b34.0253.0101.0d010101.01013400' => { Name => 'GenericPackage', %localSet },
2352             '060e2b34.0253.0101.0d010101.01013600' => { Name => 'MaterialPackage', %localSet },
2353             '060e2b34.0253.0101.0d010101.01013700' => { Name => 'SourcePackage', %localSet },
2354             '060e2b34.0253.0101.0d010101.01013800' => { Name => 'GenericTrack', %localSet },
2355             '060e2b34.0253.0101.0d010101.01013900' => { Name => 'EventTrack', %localSet },
2356             '060e2b34.0253.0101.0d010101.01013a00' => { Name => 'StaticTrack', %localSet },
2357             '060e2b34.0253.0101.0d010101.01013b00' => { Name => 'Track', %localSet },
2358             '060e2b34.0253.0101.0d010101.01014100' => { Name => 'DMSegment', %localSet },
2359             '060e2b34.0253.0101.0d010101.01014200' => { Name => 'GenericSoundEssenceDescriptor', %localSet },
2360             '060e2b34.0253.0101.0d010101.01014300' => { Name => 'GenericDataEssenceDescriptor', %localSet },
2361             '060e2b34.0253.0101.0d010101.01014400' => { Name => 'MultipleDescriptor', %localSet },
2362             '060e2b34.0253.0101.0d010101.01014500' => { Name => 'DMSourceClip', %localSet },
2363             '060e2b34.0253.0101.0d010101.01014700' => { Name => 'AES3PCMDescriptor', %localSet },
2364             '060e2b34.0253.0101.0d010101.01014800' => { Name => 'WaveAudioDescriptor', %localSet },
2365             '060e2b34.0253.0101.0d010101.01015100' => { Name => 'MPEG2VideoDescriptor', %localSet },
2366             '060e2b34.0253.0101.0d010101.01015a00' => { Name => 'JPEG2000PictureSubDescriptor', %localSet },
2367             '060e2b34.0253.0101.0d010101.01015b00' => { Name => 'VBIDataDescriptor', %localSet },
2368             # ignore the index table sets because they contain no useful metadata
2369             '060e2b34.0253.0101.0d010201.01100000' => { Name => 'V10IndexTableSegment', Unknown => 1 },
2370             '060e2b34.0253.0101.0d010201.01100100' => { Name => 'IndexTableSegment', Unknown => 1 },
2371             '060e2b34.0253.0101.0d010400.00000000' => { Name => 'DMSet', %localSet },
2372             '060e2b34.0253.0101.0d010401.00000000' => { Name => 'DMFramework', %localSet },
2373              
2374             # DMS1 local sets (ref 12)
2375             '060e2b34.0253.0101.0d010401.01010100' => { Name => 'ProductionFramework', %localSet },
2376             '060e2b34.0253.0101.0d010401.01010200' => { Name => 'ClipFramework', %localSet },
2377             '060e2b34.0253.0101.0d010401.01010300' => { Name => 'SceneFramework', %localSet },
2378             '060e2b34.0253.0101.0d010401.01100100' => { Name => 'Titles', %localSet },
2379             '060e2b34.0253.0101.0d010401.01110100' => { Name => 'Identification', %localSet },
2380             '060e2b34.0253.0101.0d010401.01120100' => { Name => 'GroupRelationship', %localSet },
2381             '060e2b34.0253.0101.0d010401.01130100' => { Name => 'Branding', %localSet },
2382             '060e2b34.0253.0101.0d010401.01140100' => { Name => 'Event', %localSet },
2383             '060e2b34.0253.0101.0d010401.01140200' => { Name => 'Publication', %localSet },
2384             '060e2b34.0253.0101.0d010401.01150100' => { Name => 'Award', %localSet },
2385             '060e2b34.0253.0101.0d010401.01160100' => { Name => 'CaptionDescription', %localSet },
2386             '060e2b34.0253.0101.0d010401.01170100' => { Name => 'Annotation', %localSet },
2387             '060e2b34.0253.0101.0d010401.01170200' => { Name => 'SettingPeriod', %localSet },
2388             '060e2b34.0253.0101.0d010401.01170300' => { Name => 'Scripting', %localSet },
2389             '060e2b34.0253.0101.0d010401.01170400' => { Name => 'Classification', %localSet },
2390             '060e2b34.0253.0101.0d010401.01170500' => { Name => 'Shot', %localSet },
2391             '060e2b34.0253.0101.0d010401.01170600' => { Name => 'KeyPoint', %localSet },
2392             '060e2b34.0253.0101.0d010401.01170800' => { Name => 'CueWords', %localSet },
2393             '060e2b34.0253.0101.0d010401.01180100' => { Name => 'Participant', %localSet },
2394             '060e2b34.0253.0101.0d010401.01190100' => { Name => 'ContactsList', %localSet },
2395             '060e2b34.0253.0101.0d010401.011a0200' => { Name => 'Person', %localSet },
2396             '060e2b34.0253.0101.0d010401.011a0300' => { Name => 'Organisation', %localSet },
2397             '060e2b34.0253.0101.0d010401.011a0400' => { Name => 'Location', %localSet },
2398             '060e2b34.0253.0101.0d010401.011b0100' => { Name => 'Address', %localSet },
2399             '060e2b34.0253.0101.0d010401.011b0200' => { Name => 'Communications', %localSet },
2400             '060e2b34.0253.0101.0d010401.011c0100' => { Name => 'Contract', %localSet },
2401             '060e2b34.0253.0101.0d010401.011c0200' => { Name => 'Rights', %localSet },
2402             '060e2b34.0253.0101.0d010401.011d0100' => { Name => 'PictureFormat', %localSet },
2403             '060e2b34.0253.0101.0d010401.011e0100' => { Name => 'DeviceParameters', %localSet },
2404             '060e2b34.0253.0101.0d010401.011f0100' => { Name => 'NameValue', %localSet },
2405             '060e2b34.0253.0101.0d010401.01200100' => { Name => 'Processing', %localSet },
2406             '060e2b34.0253.0101.0d010401.01200200' => { Name => 'Projects', %localSet },
2407              
2408             '060e2b34.0253.0101.0d010401.02010000' => { Name => 'CryptographicFramework', %localSet },
2409             '060e2b34.0253.0101.0d010401.02020000' => { Name => 'CryptographicContext', %localSet },
2410              
2411             '060e2b34.0253.0101.7f000000.00000000' => { Name => 'DefaultObject', Unknown => 1 },
2412             '060e2b34.0401.0107.02090201.01000000' => { Name => 'CipherAlgorithmAES128CBC', Type => 'Label', Unknown => 1 },
2413             '060e2b34.0401.0107.02090202.01000000' => { Name => 'HMACAlgorithmSHA1128', Type => 'Label', Unknown => 1 },
2414             '060e2b34.0401.0107.0d010301.020b0100' => { Name => 'EncryptedContainerLabel', Type => 'Label', Unknown => 1 },
2415             '060e2b34.0401.0107.0d010401.02010100' => { Name => 'CryptographicFrameworkLabel', Type => 'Label', Unknown => 1 },
2416             );
2417              
2418             # header information
2419             %Image::ExifTool::MXF::Header = (
2420             GROUPS => { 2 => 'Video' },
2421             PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
2422             0 => {
2423             Name => 'MXFVersion',
2424             Format => 'int16u[2]',
2425             ValueConv => '$val =~ tr/ /./; $val',
2426             },
2427             # 4 - int32u: KAGSize
2428             # 8 - int64u: bytes from first header
2429             # 16 - int64u: bytes from previous partition
2430             24 => { # bytes to footer from start of header
2431             Name => 'FooterPosition',
2432             Format => 'int64u',
2433             RawConv => '$$self{MXFInfo}{FooterPos} = $val; undef',
2434             },
2435             32 => { # number of bytes in header, beginning at the start of the Primer
2436             Name => 'HeaderSize',
2437             Format => 'int64u',
2438             # use this opportinity to also save our header type
2439             RawConv => q{
2440             $$self{MXFInfo}{HeaderType} = $$self{DIR_NAME};
2441             $$self{MXFInfo}{HeaderSize} = $val;
2442             return undef; # I don't think anyone would care about this
2443             },
2444             },
2445             # ...plus more stuff we don't care about
2446             );
2447              
2448             #------------------------------------------------------------------------------
2449             # Convert 16 bytes to UL format
2450             # Inputs: 0) 16-byte value
2451             # Returns: UL string
2452             sub UL($)
2453             {
2454 163     163 0 708 return join('.', unpack('H8H4H4H8H8', shift));;
2455             }
2456              
2457             #------------------------------------------------------------------------------
2458             # Convert latitude and/or longitude in [d]ddmmss(N|S|E|W) format
2459             # Inputs: 0) string value to convert
2460             # Returns: numerical lat and/or long
2461             sub ConvLatLon($)
2462             {
2463 0     0 0 0 my $val = shift;
2464 0         0 my (@convVal, $ne);
2465 0         0 foreach $ne ('NS','EW') {
2466 0 0       0 next unless $val =~ /(\d{2,3})(\d{2})(\d{2})([$ne])/;
2467 0 0 0     0 push @convVal, $1 + ($2 + $3 / 60) / 60 * (($4 eq 'N' or $4 eq 'E') ? 1 : -1);
2468             }
2469 0         0 return join ' ', @convVal;
2470             }
2471              
2472             #------------------------------------------------------------------------------
2473             # Read MXF-specific Format types
2474             # Inputs: 0) ExifTool ref, 1) value, 2) MXF value type
2475             # Returns: formatted value
2476             # Note: All types recognized here should be defined in the %knownType lookup
2477             sub ReadMXFValue($$$)
2478             {
2479 162     162 0 503 my ($et, $val, $type) = @_;
2480 162         267 my $len = length($val);
2481 162         227 local $_;
2482              
2483 162 100 66     1252 if ($type eq 'UTF-16') {
    100 33        
    100 100        
    100          
    100          
    100          
    50          
    100          
    100          
    100          
2484 20         72 $val = $et->Decode($val, 'UCS2'); # (until we handle UTF-16 properly)
2485             } elsif ($type eq 'ProductVersion') {
2486 3         8 my @a = unpack('n*', $val);
2487 3         9 push @a, 0 while @a < 5;
2488             $a[4] = { 0 => 'unknown', 1 => 'released', 2 => 'debug', 3 => 'patched',
2489 3   33     25 4 => 'beta', 5 => 'private build' }->{$a[4]} || "unknown $a[4]";
2490 3         21 $val = join('.', @a[0..3]) . ' ' . $a[4];
2491             } elsif ($type eq 'VersionType') {
2492 2         9 $val = join('.',unpack('C*',$val));
2493             } elsif ($type eq 'Timestamp') {
2494 13         40 my @a = unpack('nC*',$val);
2495 13         33 my @max = (3000,12,31,24,59,59,249);
2496 13         22 foreach (@a) {
2497 91 50 33     245 last unless @max and $_ <= $max[0];
2498 91         133 shift @max;
2499             }
2500 13 50       27 if (@max) {
2501 0         0 $val = 'Invalid (0x' . unpack('H*',$val) . ')';
2502             } else {
2503 13         21 $a[6] *= 4;
2504 13         61 $val = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2d.%.3d', @a);
2505             }
2506             } elsif ($type eq 'Position' or $type eq 'Length') {
2507 13         46 $val = Get64u(\$val, 0);
2508             } elsif ($type eq 'Boolean') {
2509 6 50       19 $val = $val eq "\0" ? 'False' : 'True';
2510             } elsif ($type =~ /^(Alt|Lat|Lon)$/ and $len == 4) {
2511             # split into nibbles after swapping byte order (see reference 8b)
2512 0         0 $val = unpack('H*', pack('N', unpack('V', $val)));
2513 0 0       0 if ($type eq 'Alt') {
2514             # drop satellite information and only support altitudes up to +/-99999 m
2515 0 0 0     0 $val = "$val (from earth centre)" unless $val =~ s/^[abc]..// or $val =~ s/^[def]../-/;
2516             } else {
2517 0         0 $val =~ s/(...)/$1./; # insert decimal point after 3rd character
2518 0 0       0 if ($type eq 'Lat') {
2519 0         0 $val =~ s/^f/-/; # south with first digit = 0
2520             } else {
2521 0         0 $val =~ s/^e/-/; # east with first digit = 0
2522 0         0 $val =~ s/^f/-1/; # east with first digit = 1
2523             }
2524             }
2525             } elsif ($type =~ /(Array|Batch)/ and $len > 16) {
2526 20         69 my ($count, $size) = unpack('NN', $val);
2527             # validate data length
2528 20 50       53 $len == 8 + $count * $size or $et->WarnOnce("Bad array or batch size");
2529 20         35 my ($i, @a);
2530 20         47 for ($i=0; $i<$count; ++$i) {
2531 27         42 my $pos = 8 + $i * $size;
2532 27 50       60 last if $pos + $size > $len;
2533 27         83 push @a, substr($val, $pos, $size);
2534             }
2535 20 100 33     76 if ($type =~ /^StrongReference/) {
    50          
2536 18         125 $_ = join('-', unpack('H8H4H4H4H12', $_)) foreach @a;
2537             } elsif ($type eq 'BatchOfUL' or $type =~ /^WeakReference/) {
2538 2         12 $_ = ReadMXFValue($et, $_, 'UL') foreach @a;
2539             }
2540 20         48 $val = \@a;
2541             } elsif ($len == 32) {
2542             # 32-byte types include UMID, PackageID
2543 6         50 $val = join('.', unpack('H8H4H4H8', $val)) . ' ' .
2544             join(' ', unpack('x12H2H6', $val)) . ' ' .
2545             join('-', unpack('x16H8H4H4H4H12', $val));
2546             } elsif ($len == 16) {
2547             # convert remaining 16-byte known types as GUID or UL
2548             # - this covers all UID's, UL, Label, WeakReference, StrongReference
2549 77 100 100     245 if ($type eq 'UL' or $type eq 'WeakReference') {
2550             # reverse high/low word if a reversed GUID is stored in a UL type
2551             # (see ref 8b, section 5.5.8)
2552             # - a GUID will have high bit of byte 8 set (reversed, this is in byte 0)
2553 20 100       75 return UL($val) unless unpack('C', $val) & 0x80;
2554 2         7 $val = substr($val, 8) . substr($val, 0, 8);
2555             }
2556 59         285 $val = join('-', unpack('H8H4H4H4H12', $val)); # compact GUID format
2557             } else {
2558             # Note: a 64-byte extended UMID contains date/time, GPS coordinates, etc,
2559             # which would could be decoded here (ref 8b, section 5)...
2560 2         5 $val = unpack('H*', $val);
2561             }
2562 144         340 return $val;
2563             }
2564              
2565             #------------------------------------------------------------------------------
2566             # Process MXF Primer (to build lookup for translating local tag ID's)
2567             # Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
2568             # Returns: 1 on success
2569             sub ProcessPrimer($$$)
2570             {
2571 2     2 0 5 my ($et, $dirInfo, $tagTablePtr) = @_;
2572 2         6 my $dataPt = $$dirInfo{DataPt};
2573 2         5 my $end = $$dirInfo{DirLen};
2574 2 50       7 return 0 unless $end > 8;
2575 2         8 my $count = Get32u($dataPt, 0);
2576 2         7 my $size = Get32u($dataPt, 4);
2577 2 50       8 return 0 unless $size >= 18;
2578 2         10 $et->VerboseDir('MXF Primer', $count);
2579 2         6 my $verbose = $et->Options('Verbose');
2580 2         4 my $primer = $$et{MXFInfo}{Primer};
2581 2         4 my $pos = 8;
2582 2         3 my $i;
2583 2         8 for ($i=0; $i<$count; ++$i) {
2584 100 50       187 last if $pos + $size > $end;
2585 100         181 my $local = Get16u($dataPt, $pos);
2586 100         211 my $global = UL(substr($$dataPt, $pos + 2, 16));
2587 100         158 $pos += $size;
2588             # save this entry in the primer lookup table
2589 100         196 $$primer{$local} = $global;
2590             # print lookup details in verbose mode
2591 100 50       244 next unless $verbose;
2592 0         0 my $indx = $i . ')';
2593 0 0       0 $indx .= ' ' if length($indx) < 3;
2594 0         0 $et->VPrint(0, sprintf(" | $indx 0x%.4x => '${global}'\n", $local));
2595             }
2596 2         6 return 1;
2597             }
2598              
2599             #------------------------------------------------------------------------------
2600             # Read tags from an MXF local set
2601             # Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
2602             # Returns: 1 on success
2603             sub ProcessLocalSet($$$)
2604             {
2605 35     35 0 64 my ($et, $dirInfo, $tagTablePtr) = @_;
2606 35         50 local $_;
2607 35         55 my $dataPt = $$dirInfo{DataPt};
2608 35         57 my $dataPos = $$dirInfo{DataPos};
2609 35         51 my $end = $$dirInfo{DirLen};
2610 35         55 my $mxfInfo = $$et{MXFInfo};
2611 35         61 my $primer = $$mxfInfo{Primer};
2612 35         56 my (@strongRef, @groups, $instance, $editRate, $trackID, $langCode, $textLang);
2613              
2614 35         114 $et->VerboseDir('MXF LocalSet', undef, $end);
2615              
2616             # loop through all tags in this local set
2617 35         63 my $pos = 0;
2618 35         82 while ($pos + 4 < $end) {
2619 216         530 my $loc = Get16u($dataPt, $pos); # get key (local tag ID)
2620 216         488 my $len = Get16u($dataPt, $pos + 2); # get length
2621 216         375 $pos += 4;
2622 216 50       453 last if $pos + $len > $end;
2623 216         445 my $tag = $$primer{$loc};
2624 216         338 my ($extra, $val, $type, $langInfo);
2625 216 50 33     812 if ($tag and $$tagTablePtr{$tag}) {
2626 216         659 $extra = sprintf(', Local 0x%.4x', $loc);
2627             } else {
2628 0         0 $tag = $loc;
2629             # $et->WarnOnce('Missing local key for at least one tag');
2630 0         0 $extra = ', NOT IN PRIMER!';
2631             }
2632 216         377 my $tagInfo = $$tagTablePtr{$tag};
2633             # handle our MXF-specific format types
2634 216 50       413 if ($tagInfo) {
2635 216         394 $type = $$tagInfo{Type};
2636 216 50 66     627 if ($type and $knownType{$type}) {
2637 160         484 $val = ReadMXFValue($et, substr($$dataPt, $pos, $len), $type);
2638 160 100       482 push @strongRef, (ref $val ? @$val : $val) if $type =~ /^StrongReference/;
    100          
2639             # remember instance UID of this local set
2640 160 100 66     532 if ($$tagInfo{Name} eq 'InstanceUID') {
    50          
2641 35         57 $instance = $val;
2642             # set language code for text
2643             # (only works if InstanceUID comes before text)
2644 35 100       90 $textLang = $$mxfInfo{$instance}{LangCode} if $$mxfInfo{$instance};
2645             } elsif ($type eq 'UTF-16' and $textLang) {
2646 0         0 $langInfo = Image::ExifTool::GetLangInfo($tagInfo, $textLang);
2647             }
2648             }
2649             }
2650             # get tagInfo ref the standard way to handle Unknown tags
2651 216   66     724 $tagInfo = $langInfo || $et->GetTagInfo($tagTablePtr, $tag);
2652             # set Binary flag to extract all unknown-format tags as Binary data
2653 216 50 66     644 if ($tagInfo and $$tagInfo{Unknown} and not defined $$tagInfo{Binary}) {
      33        
2654 0   0     0 $$tagInfo{Binary} = not ($$tagInfo{Format} or ($type and $knownType{$type}));
2655             }
2656 216         700 my $key = $et->HandleTag($tagTablePtr, $tag, $val,
2657             Extra => $extra,
2658             TagInfo => $tagInfo,
2659             DataPt => $dataPt,
2660             DataPos => $dataPos,
2661             Start => $pos,
2662             Size => $len,
2663             ProcessProc => \&ProcessLocalSet,
2664             );
2665 216         369 $pos += $len;
2666 216 100       541 next unless $key;
2667             # save information to allow later fixup of durations and group1 names
2668             # (necessary because we don't have all the information we need
2669             # to do this on the fly when the file is parsed linearly)
2670 119         276 push @groups, $$et{TAG_EXTRA}{$key};
2671 119 50       248 next unless $tagInfo;
2672 119         200 my $name = $$tagInfo{Name};
2673 119 100       582 if ($$tagInfo{IsDuration}) {
    50          
    100          
    100          
2674 19         73 $$mxfInfo{FixDuration}{$key} = 1;
2675             } elsif ($$tagInfo{LanguageCode}) {
2676 0         0 $langCode = $$et{VALUE}{$key};
2677             } elsif ($name eq 'EditRate') {
2678 8         35 $editRate = $$et{VALUE}{$key};
2679             } elsif ($name =~ /TrackID$/) {
2680 10         20 $trackID = $$et{VALUE}{$key};
2681 10 100       41 unless ($$mxfInfo{Group1}{$trackID}) {
2682             # save lookup to convert TrackID to our group 1 name
2683 2         13 $$mxfInfo{Group1}{$trackID} = 'Track' . ++$$mxfInfo{NumTracks};
2684             }
2685             }
2686             }
2687              
2688             # save object information now that we know the instance UID
2689 35 50       78 if ($instance) {
2690 35         67 my $objInfo = $$mxfInfo{$instance};
2691 35 100       62 if ($objInfo) {
2692 17         24 push @{$$objInfo{StrongRef}}, @strongRef;
  17         47  
2693 17         27 push @{$$objInfo{Groups}}, @groups;
  17         46  
2694             } else {
2695 18         87 $objInfo = $$mxfInfo{$instance} = {
2696             StrongRef => \@strongRef,
2697             Groups => \@groups,
2698             };
2699             }
2700             # save instance UID's in groups hash (used to remove duplicates later)
2701 35         129 $$_{UID} = $instance foreach @groups;
2702 35         81 $$objInfo{Name} = $$et{DIR_NAME};
2703 35 100       82 $$objInfo{TrackID} = $trackID if defined $trackID;
2704 35 100       70 $$objInfo{EditRate} = $editRate if $editRate;
2705 35 50       60 if ($langCode) {
2706 0         0 $$objInfo{LangCode} = $langCode;
2707             } else {
2708 35         54 $langCode = $$objInfo{LangCode};
2709             }
2710 35 50       60 if ($langCode) {
2711             # pre-set language code in all children
2712 0         0 my $ul;
2713 0         0 foreach $ul (@{$$objInfo{StrongRef}}) {
  0         0  
2714 0         0 my $obj = $$mxfInfo{$ul};
2715 0 0       0 $obj or $obj = $$mxfInfo{$ul} = { StrongRef => [], Groups => [], Name => 'XXX' };
2716 0         0 $$obj{LangCode} = $langCode;
2717             }
2718             }
2719             # save instance UID's of Preface's
2720 35 100       84 push @{$$mxfInfo{Preface}}, $instance if $$et{DIR_NAME} eq 'Preface';
  2         8  
2721             }
2722 35         109 return 1;
2723             }
2724              
2725             #------------------------------------------------------------------------------
2726             # Walk MXF tree to set group names
2727             # Inputs: 0) MXF information hash ref, 1) object instance UID,
2728             # 2) path information hash ref (only for group 5 names), 3) track ID number
2729             # Notes: also generates lookup table for EditRate based on group 1 name
2730             # and the instance UID of the SequenceSet with the preferred Duration value
2731             sub SetGroups($$;$$)
2732             {
2733 39     39 0 73 my ($mxfInfo, $instance, $pathInfo, $trackID) = @_;
2734 39         62 my $objInfo = $$mxfInfo{$instance};
2735 39 100 100     116 return unless $objInfo and not $$objInfo{DidGroups};
2736 18         39 $$objInfo{DidGroups} = 1; # avoid reprocessing this object
2737 18 100       38 $trackID = $$objInfo{TrackID} if defined $$objInfo{TrackID};
2738 18         29 my ($ul, $g1, $g5, $groups, $path, $nameCount, $setSource);
2739             # generate group 1 name for different tracks
2740 18 100       31 if (defined $trackID) {
2741 11         20 $$objInfo{TrackID} = $trackID;
2742 11         17 $g1 = $$mxfInfo{Group1}{$trackID};
2743             # build a lookup to determine edit rates based on group 1 name
2744 11         18 my $editRate = $$objInfo{EditRate};
2745 11 100       32 $$mxfInfo{EditRate}{$g1} = $editRate if defined $editRate;
2746             # save the TimeCodeComponent instance UID (for determining Duration later)
2747 11 100       34 if ($$objInfo{Name} eq 'TimecodeComponent') {
2748 2 100       17 my $inWhat = $$mxfInfo{InSource} ? 'Source' : 'Other';
2749 2         10 $$mxfInfo{BestDuration}{$inWhat} = $instance;
2750             }
2751             }
2752             # set flag if we are in the SourcePackage (contains our preferred TimecodeComponent)
2753 18         26 my $name = $$objInfo{Name};
2754 18 100       37 $setSource = $$mxfInfo{InSource} = 1 if $name eq 'SourcePackage';
2755              
2756             # generate group 5 path names if requested
2757 18 50       29 if ($pathInfo) {
2758 0   0     0 $nameCount = $$pathInfo{NameCount} || { };
2759 0         0 $path = $$pathInfo{Path};
2760 0   0     0 $$nameCount{$name} = ($$nameCount{$name} || 0) + 1;
2761 0         0 push @$path, $name . $$nameCount{$name};
2762 0         0 $g5 = join '-', @$path;
2763 0         0 $$pathInfo{NameCount} = { }; # use new name count for child objects
2764             }
2765 18         26 foreach $groups (@{$$objInfo{Groups}}) {
  18         38  
2766 119 100       220 $$groups{G1} = $g1 if $g1;
2767 119 50       220 $$groups{G5} = $g5 if $g5;
2768             }
2769             # walk through remaining objects in tree
2770 18         31 foreach $ul (@{$$objInfo{StrongRef}}) {
  18         36  
2771 37         96 SetGroups($mxfInfo, $ul, $pathInfo, $trackID);
2772             }
2773 18 50       37 if ($pathInfo) {
2774 0         0 pop @$path;
2775 0         0 $$pathInfo{NameCount} = $nameCount;
2776             }
2777 18 100       41 delete $$mxfInfo{InSource} if $setSource;
2778             }
2779              
2780             #------------------------------------------------------------------------------
2781             # Convert all duration values to seconds
2782             # Inputs: 0) ExifTool object ref, 1) MXF information hash ref
2783             sub ConvertDurations($$)
2784             {
2785 1     1 0 4 my ($et, $mxfInfo) = @_;
2786 1         3 my $valueHash = $$et{VALUE};
2787 1         4 my $infoHash = $$et{TAG_INFO};
2788 1         2 my $tagExtra = $$et{TAG_EXTRA};
2789 1         3 my $editHash = $$mxfInfo{EditRate};
2790 1         3 my ($tag, $key, $i);
2791 1         2 foreach $tag (keys %{$$mxfInfo{FixDuration}}) {
  1         6  
2792             # loop through all instances of this tag name
2793 4         8 for ($i=0, $key=$tag; ; ++$i, $key="$tag ($i)") {
2794 23 100       52 my $tagInfo = $$infoHash{$key} or last;
2795 19 50       36 next unless $$tagInfo{IsDuration}; # test IsDuration flag to be sure
2796 19 50       34 my $g1 = $$tagExtra{$key}{G1} or next;
2797 19         30 my $editRate = $$editHash{$g1};
2798 19 50       50 $$valueHash{$key} /= $editRate if $editRate;
2799             }
2800             }
2801             }
2802              
2803             #------------------------------------------------------------------------------
2804             # Read information in a MXF file
2805             # Inputs: 0) ExifTool ref, 1) dirInfo ref
2806             # Returns: 1 on success, 0 if this wasn't a valid MXF file
2807             sub ProcessMXF($$)
2808             {
2809 2     2 0 6 my ($et, $dirInfo) = @_;
2810 2         7 my $raf = $$dirInfo{RAF};
2811 2         48 my $verbose = $et->Options('Verbose');
2812 2         7 my $unknown = $et->Options('Unknown');
2813 2         9 my ($buff, $preface, $n, $headerEnd, $footerPos);
2814              
2815             # read enough to allow skipping over run-in if it exists
2816 2 50       13 $raf->Read($buff, 65547) or return 0;
2817 2 100       56 $buff =~ /\x06\x0e\x2b\x34\x02\x05\x01\x01\x0d\x01\x02/g or return 0;
2818 1         3 my $start = pos($buff) - 11;
2819              
2820 1         7 $et->SetFileType();
2821 1         13 SetByteOrder('MM');
2822 1 50       3 $raf->Seek($start, 0) or $et->Warn('Seek error'), return 1;
2823 1         5 my $tagTablePtr = GetTagTable('Image::ExifTool::MXF::Main');
2824              
2825             # determine header length and type
2826              
2827             # initialize MXF information lookups
2828 1         15 my %mxfInfo = (
2829             Primer => { }, # convert local keys to global UL
2830             Group1 => { }, # group 1 names base on TrackID
2831             NumTracks => 0, # counts number of tracks in file
2832             FixDuration => { }, # names of all Duration tags that need fixing
2833             Preface => [ ], # instance UID's for all Preface objects
2834             );
2835 1         14 $$et{MXFInfo} = \%mxfInfo;
2836              
2837             # set group 1 name for all tags (so we can overwrite with track number later)
2838 1         5 $$et{SET_GROUP1} = 'MXF';
2839              
2840 1         3 for (;;) {
2841 46         154 my $pos = $raf->Tell();
2842             # did we just finish parsing the header partition?
2843 46 100 100     177 if ($headerEnd and $pos >= $headerEnd) {
2844             # all done if it was a closed and complete header
2845 2 50 33     13 last if $mxfInfo{HeaderType} eq 'ClosedCompleteHeader' and not $verbose;
2846 2         4 undef $headerEnd; # (only test this once)
2847             # skip directly to footer if possible
2848 2 0 33     7 if ($footerPos and $footerPos > $pos and (not $verbose or not $unknown)) {
      0        
      33        
2849 0         0 $et->VPrint(0, "[Skipping to footer. Use Unknown option to parse body partitions]\n");
2850 0 0       0 $raf->Seek($footerPos, 0) or last;
2851 0         0 $pos = $footerPos;
2852             }
2853             }
2854             # read the next KLV Key and first byte of Value
2855 46 100       123 $raf->Read($buff, 17) == 17 or last;
2856 45         107 my $tag = substr($buff, 0, 16); # get KLV Key (global tag ID)
2857 45         128 my $len = Get8u(\$buff, 16); # get KLV Length
2858 45         73 my $n;
2859 45 50       92 if ($len >= 0x80) {
2860 45         70 $n = $len & 0x7f;
2861 45 50       116 $raf->Read($buff, $n) == $n or last;
2862 45         71 $len = 0;
2863 45         115 foreach $b (unpack 'C*', $buff) {
2864 139         219 $len = $len * 256 + $b;
2865             }
2866             } else {
2867 0         0 $n = 0;
2868             }
2869             # convert tag ID to ASCII UL notation
2870 45         106 my $ul = UL($tag);
2871 45         121 my $tagInfo = $$tagTablePtr{$ul};
2872 45 0 66     112 if (not $tagInfo and $ul =~ /^060e2b34\.0253\.0101\.(0d|0f)/ and
      0        
      33        
2873             ($1 eq '0d' or $verbose or $unknown))
2874             {
2875             # generate some unknown set tags automatically
2876 0 0       0 my $name = $1 eq '0d' ? 'UserOrganizationPublicUse' : 'Experimental';
2877 0         0 $tagInfo = { Name => $name, %localSet };
2878 0         0 AddTagToTable($tagTablePtr, $ul, $tagInfo);
2879             }
2880 45         73 my ($val, $dataPt);
2881 45 100 100     304 if ($tagInfo and not $$tagInfo{Unknown} and $len < 10000000) {
    50 66        
      33        
      66        
      33        
2882             # save information about header/footer positions for skipping over body partitions
2883 38 100 66     129 if ($$tagInfo{Name} eq 'Primer' and $mxfInfo{HeaderSize}) {
    100          
2884             # footer position relative to header start and only valid if non-zero
2885 2 50       7 $footerPos = $start + $mxfInfo{FooterPos} if $mxfInfo{FooterPos};
2886             # header length is relative to start of Primer
2887 2         6 $headerEnd = $pos + $mxfInfo{HeaderSize};
2888             } elsif ($$tagInfo{IsHeader}) {
2889             # save position of header start to allow calculation of footer position
2890 1         3 $start = $pos;
2891             }
2892 38 50       89 $raf->Read($buff, $len) == $len or last; # get KLV Value
2893 38         69 $dataPt = \$buff;
2894 38         63 my $type = $$tagInfo{Type};
2895 38 0 33     75 $val = ReadMXFValue($et, $buff, $type) if $type and $knownType{$type};
2896             } elsif (($tagInfo and (not $$tagInfo{Unknown} or $unknown)) or $verbose) {
2897 0 0       0 if ($tagInfo) {
2898             # set Binary flag to extract all unknown-format tags as Binary data
2899 0 0 0     0 if ($$tagInfo{Unknown} and not defined $$tagInfo{Binary}) {
2900 0         0 my $type = $$tagInfo{Type};
2901 0   0     0 $$tagInfo{Binary} = not ($$tagInfo{Format} or ($type and $knownType{$type}));
2902             }
2903             } else {
2904 0         0 my $id = unpack 'H*', $tag;
2905 0         0 $tagInfo = {
2906             Name => "MXF_$id",
2907             Description => "MXF $id",
2908             };
2909             # note: don't add unknown tags to table because we don't
2910             # want them to be extracted with the Unknown option
2911             }
2912             # read the first 64kB max
2913 0 0       0 my $n = $len < 65536 ? $len : 65536;
2914 0 0       0 $raf->Read($val, $n) == $n or last;
2915 0         0 $dataPt = \$val;
2916 0         0 my $more = $len - $n;
2917 0 0 0     0 $raf->Seek($more, 1) or last if $more;
2918             } else {
2919 7 50       54 $raf->Seek($len, 1) or last; # skip this value
2920 7         22 next;
2921             }
2922 38         141 $et->HandleTag($tagTablePtr, $ul, $val,
2923             TagInfo => $tagInfo,
2924             DataPt => $dataPt,
2925             DataPos => $pos + 17 + $n,
2926             Size => $len,
2927             ProcessProc => \&ProcessLocalSet,
2928             );
2929             }
2930             # walk entire MXF object tree to fix family 1 group names
2931 1         5 my ($pathInfo, $tag, %did, %bestDur);
2932 1 50       8 $pathInfo = { Path => [ 'MXF' ] } if $et->Options('SavePath');
2933 1         2 foreach $preface (@{$mxfInfo{Preface}}) {
  1         7  
2934 2         9 SetGroups(\%mxfInfo, $preface, $pathInfo);
2935             }
2936             # convert Duration values to seconds based on the appropriate EditRate
2937 1         11 ConvertDurations($et, \%mxfInfo);
2938              
2939             # remove tags to keep only the one from the most recent instance of the object
2940 1         5 my $tagExtra = $$et{TAG_EXTRA};
2941 1         2 my $fileOrder = $$et{FILE_ORDER};
2942             # also determine our best Duration value
2943 1 50       15 if ($mxfInfo{BestDuration}) {
2944 1   33     6 my $instance = $mxfInfo{BestDuration}{Source} || $mxfInfo{BestDuration}{Other};
2945 1 50       7 $instance and $bestDur{"Duration $instance"} = 1;
2946             }
2947             # process tags in reverse order to preserve the last found of each identical tag
2948 1         30 foreach $tag (sort { $$fileOrder{$b} <=> $$fileOrder{$a} } keys %$tagExtra) {
  680         924  
2949 120 100       252 my $instance = $$tagExtra{$tag}{UID} or next;
2950 119         190 delete $$tagExtra{$tag}{UID}; # (no longer needed)
2951 119         255 $tag =~ /^(\S+)/; # get tag name without index number
2952 119         232 my $utag = "$1 $instance"; # instance-specific tag name
2953 119 100       222 if ($did{$utag}) {
2954 53         126 Image::ExifTool::DeleteTag($et, $tag); # delete the duplicate
2955             } else {
2956 66         154 $did{$utag} = 1;
2957 66 100       134 if ($bestDur{$utag}) {
2958             # save best duration value
2959 1         3 my $val = $$et{VALUE}{$tag};
2960 1         6 $et->HandleTag($tagTablePtr, '060e2b34.0101.0102.07020201.01030000', $val);
2961             }
2962             }
2963             }
2964              
2965             # clean up and return
2966 1         18 delete $$et{SET_GROUP1};
2967 1         3 delete $$et{MXFInfo};
2968 1         68 return 1;
2969             }
2970              
2971             1; # end
2972              
2973             __END__