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 34package Image::ExifTool::MXF; 35 36use strict; 37use vars qw($VERSION); 38use Image::ExifTool qw(:DataAccess :Utils); 39use Image::ExifTool::GPS; 40 41$VERSION = '1.08'; 42 43sub ProcessPrimer($$$); 44sub ProcessLocalSet($$$); 45sub ConvLatLon($); 46sub ReadMXFValue($$$); 47sub SetGroups($$;$$); 48sub ConvertDurations($$); 49 50# list of currently decoded MXF value types 51my %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 64my %header = ( 65 IsHeader => 1, 66 SubDirectory => { 67 TagTable => 'Image::ExifTool::MXF::Header', 68 ProcessProc => \&Image::ExifTool::ProcessBinaryData, 69 }, 70); 71my %localSet = ( 72 SubDirectory => { TagTable => 'Image::ExifTool::MXF::Main' }, 73); 74my %timestamp = ( 75 Type => 'Timestamp', 76 Groups => { 2 => 'Time' }, 77 PrintConv => '$self->ConvertDateTime($val)', 78); 79my %geoLat = ( 80 Groups => { 2 => 'Location' }, 81 PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', 82); 83my %geoLon = ( 84 Groups => { 2 => 'Location' }, 85 PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")', 86); 87my %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); 96my %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 103my %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', Unknown => 1 }, 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 2452sub UL($) 2453{ 2454 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 2461sub ConvLatLon($) 2462{ 2463 my $val = shift; 2464 my (@convVal, $ne); 2465 foreach $ne ('NS','EW') { 2466 next unless $val =~ /(\d{2,3})(\d{2})(\d{2})([$ne])/; 2467 push @convVal, $1 + ($2 + $3 / 60) / 60 * (($4 eq 'N' or $4 eq 'E') ? 1 : -1); 2468 } 2469 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 2477sub ReadMXFValue($$$) 2478{ 2479 my ($et, $val, $type) = @_; 2480 my $len = length($val); 2481 local $_; 2482 2483 if ($type eq 'UTF-16') { 2484 $val = $et->Decode($val, 'UCS2'); # (until we handle UTF-16 properly) 2485 } elsif ($type eq 'ProductVersion') { 2486 my @a = unpack('n*', $val); 2487 push @a, 0 while @a < 5; 2488 $a[4] = { 0 => 'unknown', 1 => 'released', 2 => 'debug', 3 => 'patched', 2489 4 => 'beta', 5 => 'private build' }->{$a[4]} || "unknown $a[4]"; 2490 $val = join('.', @a[0..3]) . ' ' . $a[4]; 2491 } elsif ($type eq 'VersionType') { 2492 $val = join('.',unpack('C*',$val)); 2493 } elsif ($type eq 'Timestamp') { 2494 my @a = unpack('nC*',$val); 2495 my @max = (3000,12,31,24,59,59,249); 2496 foreach (@a) { 2497 last unless @max and $_ <= $max[0]; 2498 shift @max; 2499 } 2500 if (@max) { 2501 $val = 'Invalid (0x' . unpack('H*',$val) . ')'; 2502 } else { 2503 $a[6] *= 4; 2504 $val = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2d.%.3d', @a); 2505 } 2506 } elsif ($type eq 'Position' or $type eq 'Length') { 2507 $val = Get64u(\$val, 0); 2508 } elsif ($type eq 'Boolean') { 2509 $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 $val = unpack('H*', pack('N', unpack('V', $val))); 2513 if ($type eq 'Alt') { 2514 # drop satellite information and only support altitudes up to +/-99999 m 2515 $val = "$val (from earth centre)" unless $val =~ s/^[abc]..// or $val =~ s/^[def]../-/; 2516 } else { 2517 $val =~ s/(...)/$1./; # insert decimal point after 3rd character 2518 if ($type eq 'Lat') { 2519 $val =~ s/^f/-/; # south with first digit = 0 2520 } else { 2521 $val =~ s/^e/-/; # east with first digit = 0 2522 $val =~ s/^f/-1/; # east with first digit = 1 2523 } 2524 } 2525 } elsif ($type =~ /(Array|Batch)/ and $len > 16) { 2526 my ($count, $size) = unpack('NN', $val); 2527 # validate data length 2528 $len == 8 + $count * $size or $et->WarnOnce("Bad array or batch size"); 2529 my ($i, @a); 2530 for ($i=0; $i<$count; ++$i) { 2531 my $pos = 8 + $i * $size; 2532 last if $pos + $size > $len; 2533 push @a, substr($val, $pos, $size); 2534 } 2535 if ($type =~ /^StrongReference/) { 2536 $_ = join('-', unpack('H8H4H4H4H12', $_)) foreach @a; 2537 } elsif ($type eq 'BatchOfUL' or $type =~ /^WeakReference/) { 2538 $_ = ReadMXFValue($et, $_, 'UL') foreach @a; 2539 } 2540 $val = \@a; 2541 } elsif ($len == 32) { 2542 # 32-byte types include UMID, PackageID 2543 $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 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 return UL($val) unless unpack('C', $val) & 0x80; 2554 $val = substr($val, 8) . substr($val, 0, 8); 2555 } 2556 $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 $val = unpack('H*', $val); 2561 } 2562 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 2569sub ProcessPrimer($$$) 2570{ 2571 my ($et, $dirInfo, $tagTablePtr) = @_; 2572 my $dataPt = $$dirInfo{DataPt}; 2573 my $end = $$dirInfo{DirLen}; 2574 return 0 unless $end > 8; 2575 my $count = Get32u($dataPt, 0); 2576 my $size = Get32u($dataPt, 4); 2577 return 0 unless $size >= 18; 2578 $et->VerboseDir('MXF Primer', $count); 2579 my $verbose = $et->Options('Verbose'); 2580 my $primer = $$et{MXFInfo}{Primer}; 2581 my $pos = 8; 2582 my $i; 2583 for ($i=0; $i<$count; ++$i) { 2584 last if $pos + $size > $end; 2585 my $local = Get16u($dataPt, $pos); 2586 my $global = UL(substr($$dataPt, $pos + 2, 16)); 2587 $pos += $size; 2588 # save this entry in the primer lookup table 2589 $$primer{$local} = $global; 2590 # print lookup details in verbose mode 2591 next unless $verbose; 2592 my $indx = $i . ')'; 2593 $indx .= ' ' if length($indx) < 3; 2594 $et->VPrint(0, sprintf(" | $indx 0x%.4x => '${global}'\n", $local)); 2595 } 2596 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 2603sub ProcessLocalSet($$$) 2604{ 2605 my ($et, $dirInfo, $tagTablePtr) = @_; 2606 local $_; 2607 my $dataPt = $$dirInfo{DataPt}; 2608 my $dataPos = $$dirInfo{DataPos}; 2609 my $end = $$dirInfo{DirLen}; 2610 my $mxfInfo = $$et{MXFInfo}; 2611 my $primer = $$mxfInfo{Primer}; 2612 my (@strongRef, @groups, $instance, $editRate, $trackID, $langCode, $textLang); 2613 2614 $et->VerboseDir('MXF LocalSet', undef, $end); 2615 2616 # loop through all tags in this local set 2617 my $pos = 0; 2618 while ($pos + 4 < $end) { 2619 my $loc = Get16u($dataPt, $pos); # get key (local tag ID) 2620 my $len = Get16u($dataPt, $pos + 2); # get length 2621 $pos += 4; 2622 last if $pos + $len > $end; 2623 my $tag = $$primer{$loc}; 2624 my ($extra, $val, $type, $langInfo); 2625 if ($tag and $$tagTablePtr{$tag}) { 2626 $extra = sprintf(', Local 0x%.4x', $loc); 2627 } else { 2628 $tag = $loc; 2629 # $et->WarnOnce('Missing local key for at least one tag'); 2630 $extra = ', NOT IN PRIMER!'; 2631 } 2632 my $tagInfo = $$tagTablePtr{$tag}; 2633 # handle our MXF-specific format types 2634 if ($tagInfo) { 2635 $type = $$tagInfo{Type}; 2636 if ($type and $knownType{$type}) { 2637 $val = ReadMXFValue($et, substr($$dataPt, $pos, $len), $type); 2638 push @strongRef, (ref $val ? @$val : $val) if $type =~ /^StrongReference/; 2639 # remember instance UID of this local set 2640 if ($$tagInfo{Name} eq 'InstanceUID') { 2641 $instance = $val; 2642 # set language code for text 2643 # (only works if InstanceUID comes before text) 2644 $textLang = $$mxfInfo{$instance}{LangCode} if $$mxfInfo{$instance}; 2645 } elsif ($type eq 'UTF-16' and $textLang) { 2646 $langInfo = Image::ExifTool::GetLangInfo($tagInfo, $textLang); 2647 } 2648 } 2649 } 2650 # get tagInfo ref the standard way to handle Unknown tags 2651 $tagInfo = $langInfo || $et->GetTagInfo($tagTablePtr, $tag); 2652 # set Binary flag to extract all unknown-format tags as Binary data 2653 if ($tagInfo and $$tagInfo{Unknown} and not defined $$tagInfo{Binary}) { 2654 $$tagInfo{Binary} = not ($$tagInfo{Format} or ($type and $knownType{$type})); 2655 } 2656 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 $pos += $len; 2666 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 push @groups, $$et{TAG_EXTRA}{$key}; 2671 next unless $tagInfo; 2672 my $name = $$tagInfo{Name}; 2673 if ($$tagInfo{IsDuration}) { 2674 $$mxfInfo{FixDuration}{$key} = 1; 2675 } elsif ($$tagInfo{LanguageCode}) { 2676 $langCode = $$et{VALUE}{$key}; 2677 } elsif ($name eq 'EditRate') { 2678 $editRate = $$et{VALUE}{$key}; 2679 } elsif ($name =~ /TrackID$/) { 2680 $trackID = $$et{VALUE}{$key}; 2681 unless ($$mxfInfo{Group1}{$trackID}) { 2682 # save lookup to convert TrackID to our group 1 name 2683 $$mxfInfo{Group1}{$trackID} = 'Track' . ++$$mxfInfo{NumTracks}; 2684 } 2685 } 2686 } 2687 2688 # save object information now that we know the instance UID 2689 if ($instance) { 2690 my $objInfo = $$mxfInfo{$instance}; 2691 if ($objInfo) { 2692 push @{$$objInfo{StrongRef}}, @strongRef; 2693 push @{$$objInfo{Groups}}, @groups; 2694 } else { 2695 $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 $$_{UID} = $instance foreach @groups; 2702 $$objInfo{Name} = $$et{DIR_NAME}; 2703 $$objInfo{TrackID} = $trackID if defined $trackID; 2704 $$objInfo{EditRate} = $editRate if $editRate; 2705 if ($langCode) { 2706 $$objInfo{LangCode} = $langCode; 2707 } else { 2708 $langCode = $$objInfo{LangCode}; 2709 } 2710 if ($langCode) { 2711 # pre-set language code in all children 2712 my $ul; 2713 foreach $ul (@{$$objInfo{StrongRef}}) { 2714 my $obj = $$mxfInfo{$ul}; 2715 $obj or $obj = $$mxfInfo{$ul} = { StrongRef => [], Groups => [], Name => 'XXX' }; 2716 $$obj{LangCode} = $langCode; 2717 } 2718 } 2719 # save instance UID's of Preface's 2720 push @{$$mxfInfo{Preface}}, $instance if $$et{DIR_NAME} eq 'Preface'; 2721 } 2722 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 2731sub SetGroups($$;$$) 2732{ 2733 my ($mxfInfo, $instance, $pathInfo, $trackID) = @_; 2734 my $objInfo = $$mxfInfo{$instance}; 2735 return unless $objInfo and not $$objInfo{DidGroups}; 2736 $$objInfo{DidGroups} = 1; # avoid reprocessing this object 2737 $trackID = $$objInfo{TrackID} if defined $$objInfo{TrackID}; 2738 my ($ul, $g1, $g5, $groups, $path, $nameCount, $setSource); 2739 # generate group 1 name for different tracks 2740 if (defined $trackID) { 2741 $$objInfo{TrackID} = $trackID; 2742 $g1 = $$mxfInfo{Group1}{$trackID}; 2743 # build a lookup to determine edit rates based on group 1 name 2744 my $editRate = $$objInfo{EditRate}; 2745 $$mxfInfo{EditRate}{$g1} = $editRate if defined $editRate; 2746 # save the TimeCodeComponent instance UID (for determining Duration later) 2747 if ($$objInfo{Name} eq 'TimecodeComponent') { 2748 my $inWhat = $$mxfInfo{InSource} ? 'Source' : 'Other'; 2749 $$mxfInfo{BestDuration}{$inWhat} = $instance; 2750 } 2751 } 2752 # set flag if we are in the SourcePackage (contains our preferred TimecodeComponent) 2753 my $name = $$objInfo{Name}; 2754 $setSource = $$mxfInfo{InSource} = 1 if $name eq 'SourcePackage'; 2755 2756 # generate group 5 path names if requested 2757 if ($pathInfo) { 2758 $nameCount = $$pathInfo{NameCount} || { }; 2759 $path = $$pathInfo{Path}; 2760 $$nameCount{$name} = ($$nameCount{$name} || 0) + 1; 2761 push @$path, $name . $$nameCount{$name}; 2762 $g5 = join '-', @$path; 2763 $$pathInfo{NameCount} = { }; # use new name count for child objects 2764 } 2765 foreach $groups (@{$$objInfo{Groups}}) { 2766 $$groups{G1} = $g1 if $g1; 2767 $$groups{G5} = $g5 if $g5; 2768 } 2769 # walk through remaining objects in tree 2770 foreach $ul (@{$$objInfo{StrongRef}}) { 2771 SetGroups($mxfInfo, $ul, $pathInfo, $trackID); 2772 } 2773 if ($pathInfo) { 2774 pop @$path; 2775 $$pathInfo{NameCount} = $nameCount; 2776 } 2777 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 2783sub ConvertDurations($$) 2784{ 2785 my ($et, $mxfInfo) = @_; 2786 my $valueHash = $$et{VALUE}; 2787 my $infoHash = $$et{TAG_INFO}; 2788 my $tagExtra = $$et{TAG_EXTRA}; 2789 my $editHash = $$mxfInfo{EditRate}; 2790 my ($tag, $key, $i); 2791 foreach $tag (keys %{$$mxfInfo{FixDuration}}) { 2792 # loop through all instances of this tag name 2793 for ($i=0, $key=$tag; ; ++$i, $key="$tag ($i)") { 2794 my $tagInfo = $$infoHash{$key} or last; 2795 next unless $$tagInfo{IsDuration}; # test IsDuration flag to be sure 2796 my $g1 = $$tagExtra{$key}{G1} or next; 2797 my $editRate = $$editHash{$g1}; 2798 $$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 2807sub ProcessMXF($$) 2808{ 2809 my ($et, $dirInfo) = @_; 2810 my $raf = $$dirInfo{RAF}; 2811 my $verbose = $et->Options('Verbose'); 2812 my $unknown = $et->Options('Unknown'); 2813 my ($buff, $preface, $n, $headerEnd, $footerPos); 2814 2815 # read enough to allow skipping over run-in if it exists 2816 $raf->Read($buff, 65547) or return 0; 2817 $buff =~ /\x06\x0e\x2b\x34\x02\x05\x01\x01\x0d\x01\x02/g or return 0; 2818 my $start = pos($buff) - 11; 2819 2820 $et->SetFileType(); 2821 SetByteOrder('MM'); 2822 $raf->Seek($start, 0) or $et->Warn('Seek error'), return 1; 2823 my $tagTablePtr = GetTagTable('Image::ExifTool::MXF::Main'); 2824 2825 # determine header length and type 2826 2827 # initialize MXF information lookups 2828 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 $$et{MXFInfo} = \%mxfInfo; 2836 2837 # set group 1 name for all tags (so we can overwrite with track number later) 2838 $$et{SET_GROUP1} = 'MXF'; 2839 2840 for (;;) { 2841 my $pos = $raf->Tell(); 2842 # did we just finish parsing the header partition? 2843 if ($headerEnd and $pos >= $headerEnd) { 2844 # all done if it was a closed and complete header 2845 last if $mxfInfo{HeaderType} eq 'ClosedCompleteHeader' and not $verbose; 2846 undef $headerEnd; # (only test this once) 2847 # skip directly to footer if possible 2848 if ($footerPos and $footerPos > $pos and (not $verbose or not $unknown)) { 2849 $et->VPrint(0, "[Skipping to footer. Use Unknown option to parse body partitions]\n"); 2850 $raf->Seek($footerPos, 0) or last; 2851 $pos = $footerPos; 2852 } 2853 } 2854 # read the next KLV Key and first byte of Value 2855 $raf->Read($buff, 17) == 17 or last; 2856 my $tag = substr($buff, 0, 16); # get KLV Key (global tag ID) 2857 my $len = Get8u(\$buff, 16); # get KLV Length 2858 my $n; 2859 if ($len >= 0x80) { 2860 $n = $len & 0x7f; 2861 $raf->Read($buff, $n) == $n or last; 2862 $len = 0; 2863 foreach $b (unpack 'C*', $buff) { 2864 $len = $len * 256 + $b; 2865 } 2866 } else { 2867 $n = 0; 2868 } 2869 # convert tag ID to ASCII UL notation 2870 my $ul = UL($tag); 2871 my $tagInfo = $$tagTablePtr{$ul}; 2872 if (not $tagInfo and $ul =~ /^060e2b34\.0253\.0101\.(0d|0f)/ and 2873 ($1 eq '0d' or $verbose or $unknown)) 2874 { 2875 # generate some unknown set tags automatically 2876 my $name = $1 eq '0d' ? 'UserOrganizationPublicUse' : 'Experimental'; 2877 $tagInfo = { Name => $name, %localSet }; 2878 AddTagToTable($tagTablePtr, $ul, $tagInfo); 2879 } 2880 my ($val, $dataPt); 2881 if ($tagInfo and not $$tagInfo{Unknown} and $len < 10000000) { 2882 # save information about header/footer positions for skipping over body partitions 2883 if ($$tagInfo{Name} eq 'Primer' and $mxfInfo{HeaderSize}) { 2884 # footer position relative to header start and only valid if non-zero 2885 $footerPos = $start + $mxfInfo{FooterPos} if $mxfInfo{FooterPos}; 2886 # header length is relative to start of Primer 2887 $headerEnd = $pos + $mxfInfo{HeaderSize}; 2888 } elsif ($$tagInfo{IsHeader}) { 2889 # save position of header start to allow calculation of footer position 2890 $start = $pos; 2891 } 2892 $raf->Read($buff, $len) == $len or last; # get KLV Value 2893 $dataPt = \$buff; 2894 my $type = $$tagInfo{Type}; 2895 $val = ReadMXFValue($et, $buff, $type) if $type and $knownType{$type}; 2896 } elsif (($tagInfo and (not $$tagInfo{Unknown} or $unknown)) or $verbose) { 2897 if ($tagInfo) { 2898 # set Binary flag to extract all unknown-format tags as Binary data 2899 if ($$tagInfo{Unknown} and not defined $$tagInfo{Binary}) { 2900 my $type = $$tagInfo{Type}; 2901 $$tagInfo{Binary} = not ($$tagInfo{Format} or ($type and $knownType{$type})); 2902 } 2903 } else { 2904 my $id = unpack 'H*', $tag; 2905 $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 my $n = $len < 65536 ? $len : 65536; 2914 $raf->Read($val, $n) == $n or last; 2915 $dataPt = \$val; 2916 my $more = $len - $n; 2917 $raf->Seek($more, 1) or last if $more; 2918 } else { 2919 $raf->Seek($len, 1) or last; # skip this value 2920 next; 2921 } 2922 $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 my ($pathInfo, $tag, %did, %bestDur); 2932 $pathInfo = { Path => [ 'MXF' ] } if $et->Options('SavePath'); 2933 foreach $preface (@{$mxfInfo{Preface}}) { 2934 SetGroups(\%mxfInfo, $preface, $pathInfo); 2935 } 2936 # convert Duration values to seconds based on the appropriate EditRate 2937 ConvertDurations($et, \%mxfInfo); 2938 2939 # remove tags to keep only the one from the most recent instance of the object 2940 my $tagExtra = $$et{TAG_EXTRA}; 2941 my $fileOrder = $$et{FILE_ORDER}; 2942 # also determine our best Duration value 2943 if ($mxfInfo{BestDuration}) { 2944 my $instance = $mxfInfo{BestDuration}{Source} || $mxfInfo{BestDuration}{Other}; 2945 $instance and $bestDur{"Duration $instance"} = 1; 2946 } 2947 # process tags in reverse order to preserve the last found of each identical tag 2948 foreach $tag (sort { $$fileOrder{$b} <=> $$fileOrder{$a} } keys %$tagExtra) { 2949 my $instance = $$tagExtra{$tag}{UID} or next; 2950 delete $$tagExtra{$tag}{UID}; # (no longer needed) 2951 $tag =~ /^(\S+)/; # get tag name without index number 2952 my $utag = "$1 $instance"; # instance-specific tag name 2953 if ($did{$utag}) { 2954 Image::ExifTool::DeleteTag($et, $tag); # delete the duplicate 2955 } else { 2956 $did{$utag} = 1; 2957 if ($bestDur{$utag}) { 2958 # save best duration value 2959 my $val = $$et{VALUE}{$tag}; 2960 $et->HandleTag($tagTablePtr, '060e2b34.0101.0102.07020201.01030000', $val); 2961 } 2962 } 2963 } 2964 2965 # clean up and return 2966 delete $$et{SET_GROUP1}; 2967 delete $$et{MXFInfo}; 2968 return 1; 2969} 2970 29711; # end 2972 2973__END__ 2974 2975=head1 NAME 2976 2977Image::ExifTool::MXF - Read MXF meta information 2978 2979=head1 SYNOPSIS 2980 2981This module is used by Image::ExifTool 2982 2983=head1 DESCRIPTION 2984 2985This module contains definitions required by Image::ExifTool to read meta 2986information from MXF (Material Exchange Format) files. 2987 2988=head1 AUTHOR 2989 2990Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com) 2991 2992This library is free software; you can redistribute it and/or modify it 2993under the same terms as Perl itself. 2994 2995=head1 REFERENCES 2996 2997=over 4 2998 2999=item L<http://sourceforge.net/projects/mxflib/> 3000 3001=item L<http://www.aafassociation.org/downloads/whitepapers/MXFPhysicalview.pdf> 3002 3003=item L<http://archive.nlm.nih.gov/pubs/pearson/MJ2_Metadata2005.pdf> 3004 3005=item L<http://www.aafassociation.org/downloads/specifications/AMWA-AS-03-Delivery-Spec-1_0.pdf> 3006 3007=item L<http://paul-sampson.ca/private/s385m.pdf> 3008 3009=item L<http://avwiki.nl/documents/eg41.pdf> 3010 3011=item L<http://avwiki.nl/documents/eg42.pdf> 3012 3013=item L<http://www.amwa.tv/downloads/specifications/aafobjectspec-v1.1.pdf> 3014 3015=item L<http://www.smpte-ra.org/mdd/RP210v12-publication-20100623.xls> 3016 3017=item L<http://rhea.tele.ucl.ac.be:8081/Plone/Members/egoray/thesaurus-dictionnaire-metadata/> 3018 3019=item L<http://www.mog-solutions.com/img_upload/PDF/XML%20Schema%20for%20MXF%20Metadata.pdf> 3020 3021=item L<http://www.freemxf.org/freemxf_board/viewtopic.php?p=545&sid=00a5c17e07d828c1e93ecdbaed3076f7> 3022 3023=back 3024 3025=head1 SEE ALSO 3026 3027L<Image::ExifTool::TagNames/MXF Tags>, 3028L<Image::ExifTool(3pm)|Image::ExifTool> 3029 3030=cut 3031 3032