MXF.pm 253 KB

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