exiftool-vendored.pl 12.72.0 → 12.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/bin/Changes +64 -1
  2. package/bin/META.json +1 -1
  3. package/bin/META.yml +1 -1
  4. package/bin/README +47 -46
  5. package/bin/exiftool +123 -96
  6. package/bin/lib/File/RandomAccess.pm +32 -6
  7. package/bin/lib/File/RandomAccess.pod +6 -6
  8. package/bin/lib/Image/ExifTool/7Z.pm +3 -3
  9. package/bin/lib/Image/ExifTool/AAC.pm +8 -6
  10. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  11. package/bin/lib/Image/ExifTool/AFCP.pm +3 -3
  12. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  13. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  14. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  15. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  16. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  17. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  18. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BZZ.pm +3 -3
  21. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  22. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
  23. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  24. package/bin/lib/Image/ExifTool/Canon.pm +7 -6
  25. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  26. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  27. package/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
  28. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  29. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  30. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  31. package/bin/lib/Image/ExifTool/DICOM.pm +3 -3
  32. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DNG.pm +5 -5
  34. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  38. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  39. package/bin/lib/Image/ExifTool/Exif.pm +4 -3
  40. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  41. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  43. package/bin/lib/Image/ExifTool/FLIR.pm +3 -3
  44. package/bin/lib/Image/ExifTool/Fixup.pm +4 -4
  45. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  46. package/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
  47. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FujiFilm.pm +9 -4
  50. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GIF.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  53. package/bin/lib/Image/ExifTool/GPS.pm +1 -1
  54. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  55. package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
  56. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  57. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  58. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  60. package/bin/lib/Image/ExifTool/HtmlDump.pm +7 -5
  61. package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  62. package/bin/lib/Image/ExifTool/ICO.pm +1 -1
  63. package/bin/lib/Image/ExifTool/ID3.pm +3 -3
  64. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. package/bin/lib/Image/ExifTool/Import.pm +6 -6
  68. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
  70. package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
  71. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  72. package/bin/lib/Image/ExifTool/JSON.pm +3 -3
  73. package/bin/lib/Image/ExifTool/JVC.pm +3 -3
  74. package/bin/lib/Image/ExifTool/Jpeg2000.pm +67 -17
  75. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  76. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  77. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  78. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
  84. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
  86. package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
  87. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  97. package/bin/lib/Image/ExifTool/Leaf.pm +3 -3
  98. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  99. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  100. package/bin/lib/Image/ExifTool/MIE.pm +5 -5
  101. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  102. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MISB.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  112. package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  113. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  114. package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  117. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
  118. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  119. package/bin/lib/Image/ExifTool/Nikon.pm +11 -8
  120. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  121. package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
  122. package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  124. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  125. package/bin/lib/Image/ExifTool/Ogg.pm +3 -3
  126. package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  127. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  128. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  129. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PDF.pm +55 -5
  132. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
  135. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  136. package/bin/lib/Image/ExifTool/PNG.pm +24 -2
  137. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  138. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  139. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
  141. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
  142. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  143. package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
  144. package/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
  145. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  147. package/bin/lib/Image/ExifTool/Photoshop.pm +4 -4
  148. package/bin/lib/Image/ExifTool/PostScript.pm +3 -3
  149. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  150. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  151. package/bin/lib/Image/ExifTool/QuickTime.pm +55 -101
  152. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
  153. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  154. package/bin/lib/Image/ExifTool/RSRC.pm +3 -3
  155. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
  162. package/bin/lib/Image/ExifTool/Samsung.pm +5 -5
  163. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  165. package/bin/lib/Image/ExifTool/Shift.pl +2 -3
  166. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  168. package/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  169. package/bin/lib/Image/ExifTool/Sony.pm +5 -5
  170. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  171. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  172. package/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -4
  173. package/bin/lib/Image/ExifTool/TagLookup.pm +3879 -3862
  174. package/bin/lib/Image/ExifTool/TagNames.pod +11439 -11374
  175. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  177. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  179. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  181. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  182. package/bin/lib/Image/ExifTool/WPG.pm +1 -1
  183. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  184. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
  185. package/bin/lib/Image/ExifTool/WriteExif.pl +27 -24
  186. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
  188. package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  190. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  191. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
  192. package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  193. package/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
  194. package/bin/lib/Image/ExifTool/Writer.pl +74 -45
  195. package/bin/lib/Image/ExifTool/XISF.pm +1 -1
  196. package/bin/lib/Image/ExifTool/XMP.pm +20 -3
  197. package/bin/lib/Image/ExifTool/XMP2.pl +10 -1
  198. package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  199. package/bin/lib/Image/ExifTool/ZIP.pm +7 -7
  200. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  201. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  202. package/bin/lib/Image/ExifTool.pm +59 -28
  203. package/bin/lib/Image/ExifTool.pod +81 -68
  204. package/bin/perl-Image-ExifTool.spec +45 -44
  205. package/bin/pp_build_exe.args +5 -5
  206. package/package.json +5 -5
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
  use Image::ExifTool::Exif;
39
39
 
40
- $VERSION = '2.21';
40
+ $VERSION = '2.22';
41
41
 
42
42
  sub ProcessLeicaLEIC($$$);
43
43
  sub WhiteBalanceConv($;$$);
@@ -2186,6 +2186,10 @@ my %shootingMode = (
2186
2186
  Writable => 'rational64u',
2187
2187
  Count => 2,
2188
2188
  },
2189
+ 0x0370 => { #forum15440
2190
+ Name => 'LensProfileName',
2191
+ Writable => 'string',
2192
+ },
2189
2193
  );
2190
2194
 
2191
2195
  # Type 2 tags (ref PH)
@@ -2509,6 +2513,27 @@ my %shootingMode = (
2509
2513
  },
2510
2514
  );
2511
2515
 
2516
+ # Leica XMP Digital Shift Assistant tags
2517
+ %Image::ExifTool::Panasonic::DSA = (
2518
+ GROUPS => { 0 => 'XMP', 1 => 'XMP-xmpDSA', 2 => 'Image' },
2519
+ PROCESS_PROC => 'Image::ExifTool::XMP::ProcessXMP',
2520
+ NAMESPACE => 'xmpDSA',
2521
+ WRITABLE => 'string',
2522
+ AVOID => 1,
2523
+ VARS => { NO_ID => 1 },
2524
+ NOTES => 'XMP Digital Shift Assistant tags written by some Leica cameras.',
2525
+ Version => { }, # eg. "1.0.0"
2526
+ CorrectionAlreadyApplied => { Writable => 'boolean' },
2527
+ PitchAngle => { Writable => 'real' },
2528
+ RollAngle => { Writable => 'real' },
2529
+ FocalLength35mm => { Writable => 'real' },
2530
+ TargetAspectRatio => { Writable => 'real' },
2531
+ ScalingFactorHeight => { Writable => 'real' },
2532
+ ValidCropCorners => { Writable => 'boolean' },
2533
+ ApplyAutomatically => { Writable => 'boolean' },
2534
+ NormalizedCropCorners => { Writable => 'real', List => 'Seq' },
2535
+ );
2536
+
2512
2537
  # Panasonic Composite tags
2513
2538
  %Image::ExifTool::Panasonic::Composite = (
2514
2539
  GROUPS => { 2 => 'Camera' },
@@ -2876,7 +2901,7 @@ Panasonic and Leica maker notes in EXIF information.
2876
2901
 
2877
2902
  =head1 AUTHOR
2878
2903
 
2879
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2904
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2880
2905
 
2881
2906
  This library is free software; you can redistribute it and/or modify it
2882
2907
  under the same terms as Perl itself.
@@ -21,7 +21,7 @@ use vars qw($VERSION);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  use Image::ExifTool::Exif;
23
23
 
24
- $VERSION = '1.28';
24
+ $VERSION = '1.29';
25
25
 
26
26
  sub ProcessJpgFromRaw($$$);
27
27
  sub WriteJpgFromRaw($$$);
@@ -839,7 +839,7 @@ sub WriteJpgFromRaw($$$)
839
839
  my $buff = substr($$dataPt, $dirStart, $dirLen);
840
840
  $dataPt = \$buff;
841
841
  }
842
- my $raf = new File::RandomAccess($dataPt);
842
+ my $raf = File::RandomAccess->new($dataPt);
843
843
  my $outbuff;
844
844
  my %dirInfo = (
845
845
  RAF => $raf,
@@ -890,7 +890,7 @@ sub ProcessJpgFromRaw($$$)
890
890
  # extract information from embedded JPEG
891
891
  my %dirInfo = (
892
892
  Parent => 'RAF',
893
- RAF => new File::RandomAccess($dataPt),
893
+ RAF => File::RandomAccess->new($dataPt),
894
894
  );
895
895
  if ($verbose) {
896
896
  my $indent = $$et{INDENT};
@@ -934,7 +934,7 @@ write meta information in Panasonic/Leica RAW, RW2 and RWL images.
934
934
 
935
935
  =head1 AUTHOR
936
936
 
937
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
937
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
938
938
 
939
939
  This library is free software; you can redistribute it and/or modify it
940
940
  under the same terms as Perl itself.
@@ -825,7 +825,7 @@ timed metadata from the 'mett' frame found in Parrot drone MP4 videos.
825
825
 
826
826
  =head1 AUTHOR
827
827
 
828
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
828
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
829
829
 
830
830
  This library is free software; you can redistribute it and/or modify it
831
831
  under the same terms as Perl itself.
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
58
58
  use Image::ExifTool::GPS;
59
59
  use Image::ExifTool::HP;
60
60
 
61
- $VERSION = '3.45';
61
+ $VERSION = '3.46';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -1571,6 +1571,7 @@ my %binaryDataAttrs = (
1571
1571
  0 => 'Multi-segment',
1572
1572
  1 => 'Center-weighted average',
1573
1573
  2 => 'Spot',
1574
+ 6 => 'Highlight', # (GR III)
1574
1575
  # have seen value of 16 for E70
1575
1576
  },
1576
1577
  },
@@ -2135,7 +2136,7 @@ my %binaryDataAttrs = (
2135
2136
  PrintConvInv => [ 'Image::ExifTool::Exif::ConvertFraction($val)' ],
2136
2137
  }],
2137
2138
  0x004f => { #PH
2138
- Name => 'ImageTone', # (Called CustomImageMode in K20D manual)
2139
+ Name => 'ImageTone', # (Called CustomImageMode for K20D and ImageControlMode for GR III)
2139
2140
  Writable => 'int16u',
2140
2141
  PrintConvColumns => 2,
2141
2142
  PrintConv => {
@@ -2151,6 +2152,19 @@ my %binaryDataAttrs = (
2151
2152
  9 => 'Radiant', # (Q)
2152
2153
  10 => 'Cross Processing', #31 (K-70)
2153
2154
  11 => 'Flat', #31 (K-70)
2155
+ # the following values from GR III
2156
+ 256 => 'Standard',
2157
+ 257 => 'Vivid',
2158
+ 258 => 'Monotone',
2159
+ 259 => 'Soft Monotone',
2160
+ 260 => 'Hard Monotone',
2161
+ 261 => 'Hi-contrast B&W',
2162
+ 262 => 'Positive Film',
2163
+ 263 => 'Bleach Bypass 2',
2164
+ 264 => 'Retro',
2165
+ 265 => 'HDR Tone',
2166
+ 266 => 'Cross Processing 2',
2167
+ 267 => 'Negative Film',
2154
2168
  # 256 - seen for GR III
2155
2169
  # 257 - seen for GR III
2156
2170
  # 262 - seen for GR III
@@ -2466,16 +2480,23 @@ my %binaryDataAttrs = (
2466
2480
  },
2467
2481
  },
2468
2482
  0x007a => { #PH
2469
- Name => 'ISOAutoParameters',
2483
+ Name => 'ISOAutoMinSpeed',
2470
2484
  Writable => 'int8u',
2471
2485
  Count => 2,
2472
- PrintConv => {
2473
- '1 0' => 'Slow',
2474
- '2 0' => 'Standard',
2475
- '3 0' => 'Fast',
2476
- # '1 108' - seen for GR III
2477
- # '3 84' - seen for K-3III
2478
- },
2486
+ # From the K-3III menus for the "ISO Auto with Min. Speed" setting: 'Fast' = "Increases
2487
+ # the sensitivity from a shutter speed faster than the standard setting in ISO Auto"
2488
+ ValueConv => [ undef, '$val ? exp(-Image::ExifTool::Pentax::PentaxEv($val-68)*log(2)) : 0' ],
2489
+ ValueConvInv => [ undef, '$val ? Image::ExifTool::Pentax::PentaxEvInv(-log($val)/log(2))+68 : 0' ],
2490
+ PrintConv => [
2491
+ {
2492
+ 1 => 'Shutter Speed Control',
2493
+ 2 => 'Auto Slow',
2494
+ 3 => 'Auto Standard',
2495
+ 4 => 'Auto Fast',
2496
+ },
2497
+ 'Image::ExifTool::Exif::PrintExposureTime($val)',
2498
+ ],
2499
+ PrintConvInv => [ undef, 'Image::ExifTool::Exif::ConvertFraction($val)' ],
2479
2500
  },
2480
2501
  0x007b => { #PH (K-5)
2481
2502
  Name => 'CrossProcess',
@@ -6339,7 +6360,7 @@ tags, and everyone who helped contribute to the LensType values.
6339
6360
 
6340
6361
  =head1 AUTHOR
6341
6362
 
6342
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
6363
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
6343
6364
 
6344
6365
  This library is free software; you can redistribute it and/or modify it
6345
6366
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
  use Image::ExifTool::Exif;
17
17
 
18
- $VERSION = '1.09';
18
+ $VERSION = '1.10';
19
19
 
20
20
  sub WritePhaseOne($$$);
21
21
  sub ProcessPhaseOne($$$);
@@ -153,7 +153,7 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
153
153
  Format => 'int16s',
154
154
  Count => -1,
155
155
  Flags => ['Unknown','Hidden'],
156
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
156
+ PrintConv => \&Image::ExifTool::LimitLongValues,
157
157
  },
158
158
  0x0226 => {
159
159
  Name => 'ColorMatrix2',
@@ -184,13 +184,13 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
184
184
  Name => 'PhaseOne_0x0258',
185
185
  Format => 'int16s',
186
186
  Flags => ['Unknown','Hidden'],
187
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
187
+ PrintConv => \&Image::ExifTool::LimitLongValues,
188
188
  },
189
189
  0x025a => { #PH
190
190
  Name => 'PhaseOne_0x025a',
191
191
  Format => 'int16s',
192
192
  Flags => ['Unknown','Hidden'],
193
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
193
+ PrintConv => \&Image::ExifTool::LimitLongValues,
194
194
  },
195
195
  # 0x0300 - int32u: 100,101,102
196
196
  0x0301 => { Name => 'FirmwareVersions', Format => 'string' },
@@ -473,7 +473,7 @@ sub WritePhaseOne($$$)
473
473
  return undef if $numEntries < 2 or $numEntries > 300 or $ifdEnd > $dirLen;
474
474
  my $hdrBuff = $hdr;
475
475
  my $valBuff = ''; # buffer for value data
476
- my $fixup = new Image::ExifTool::Fixup;
476
+ my $fixup = Image::ExifTool::Fixup->new;
477
477
  my $index;
478
478
  for ($index=0; $index<$numEntries; ++$index) {
479
479
  my $entry = $dirStart + $ifdStart + 8 + $entrySize * $index;
@@ -725,7 +725,7 @@ One maker notes.
725
725
 
726
726
  =head1 AUTHOR
727
727
 
728
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
728
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
729
729
 
730
730
  This library is free software; you can redistribute it and/or modify it
731
731
  under the same terms as Perl itself.
@@ -484,7 +484,7 @@ information from Kodak Photo CD Image Pac (PCD) files.
484
484
 
485
485
  =head1 AUTHOR
486
486
 
487
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
487
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
488
488
 
489
489
  This library is free software; you can redistribute it and/or modify it
490
490
  under the same terms as Perl itself.
@@ -237,7 +237,7 @@ write information written by the Camera Bits Photo Mechanic software.
237
237
 
238
238
  =head1 AUTHOR
239
239
 
240
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
240
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
241
241
 
242
242
  This library is free software; you can redistribute it and/or modify it
243
243
  under the same terms as Perl itself.
@@ -28,7 +28,7 @@ use strict;
28
28
  use vars qw($VERSION $AUTOLOAD $iptcDigestInfo %printFlags);
29
29
  use Image::ExifTool qw(:DataAccess :Utils);
30
30
 
31
- $VERSION = '1.69';
31
+ $VERSION = '1.70';
32
32
 
33
33
  sub ProcessPhotoshop($$$);
34
34
  sub WritePhotoshop($$$);
@@ -70,7 +70,7 @@ my %thumbnailInfo = (
70
70
  Protected => 1,
71
71
  RawConv => 'my $img=substr($val,0x1c); $self->ValidateImage(\$img,$tag)',
72
72
  ValueConvInv => q{
73
- my $et = new Image::ExifTool;
73
+ my $et = Image::ExifTool->new;
74
74
  my @tags = qw{ImageWidth ImageHeight FileType};
75
75
  my $info = $et->ImageInfo(\$val, @tags);
76
76
  my ($w, $h, $type) = @$info{@tags};
@@ -892,7 +892,7 @@ sub ProcessDocumentData($$$)
892
892
  unless ($raf) {
893
893
  my $dataPt = $$dirInfo{DataPt};
894
894
  my $start = $$dirInfo{DirStart} || 0;
895
- $raf = new File::RandomAccess($dataPt);
895
+ $raf = File::RandomAccess->new($dataPt);
896
896
  $raf->Seek($start, 0) if $start;
897
897
  $dirLen = length $$dataPt - $start unless defined $dirLen;
898
898
  $et->VerboseDump($dataPt, Start => $start, Len => $dirLen, Base => $$dirInfo{Base});
@@ -1201,7 +1201,7 @@ be preserved when copying Photoshop information via user-defined tags.
1201
1201
 
1202
1202
  =head1 AUTHOR
1203
1203
 
1204
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1204
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1205
1205
 
1206
1206
  This library is free software; you can redistribute it and/or modify it
1207
1207
  under the same terms as Perl itself.
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION $AUTOLOAD);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.44';
19
+ $VERSION = '1.45';
20
20
 
21
21
  sub WritePS($$);
22
22
  sub ProcessPS($$;$);
@@ -430,7 +430,7 @@ sub ProcessPS($$;$)
430
430
 
431
431
  # allow read from data
432
432
  unless ($raf) {
433
- $raf = new File::RandomAccess($$dirInfo{DataPt});
433
+ $raf = File::RandomAccess->new($$dirInfo{DataPt});
434
434
  $et->VerboseDir('PostScript');
435
435
  }
436
436
  #
@@ -777,7 +777,7 @@ This code reads meta information from EPS (Encapsulated PostScript), PS
777
777
 
778
778
  =head1 AUTHOR
779
779
 
780
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
780
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
781
781
 
782
782
  This library is free software; you can redistribute it and/or modify it
783
783
  under the same terms as Perl itself.
@@ -112,7 +112,7 @@ Print Image Matching meta information.
112
112
 
113
113
  =head1 AUTHOR
114
114
 
115
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
115
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
116
116
 
117
117
  This library is free software; you can redistribute it and/or modify it
118
118
  under the same terms as Perl itself.
@@ -1331,7 +1331,7 @@ information from the APP7 Qualcomm segment in JPEG images.
1331
1331
 
1332
1332
  =head1 AUTHOR
1333
1333
 
1334
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1334
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1335
1335
 
1336
1336
  This library is free software; you can redistribute it and/or modify it
1337
1337
  under the same terms as Perl itself.
@@ -48,7 +48,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
48
48
  use Image::ExifTool::Exif;
49
49
  use Image::ExifTool::GPS;
50
50
 
51
- $VERSION = '2.91';
51
+ $VERSION = '2.93';
52
52
 
53
53
  sub ProcessMOV($$;$);
54
54
  sub ProcessKeys($$$);
@@ -64,6 +64,7 @@ sub Process_3gf($$$);
64
64
  sub Process_gps0($$$);
65
65
  sub Process_gsen($$$);
66
66
  sub ProcessKenwood($$$);
67
+ sub ProcessLIGO_JSON($$$);
67
68
  sub ProcessRIFFTrailer($$$);
68
69
  sub ProcessTTAD($$$);
69
70
  sub ProcessNMEA($$$);
@@ -267,6 +268,24 @@ my %timeInfo = (
267
268
  PrintConvInv => '$self->InverseDateTime($val)',
268
269
  # (can't put Groups here because they aren't constant!)
269
270
  );
271
+ # properties for ISO 8601 format date/time tags
272
+ my %iso8601Date = (
273
+ Shift => 'Time',
274
+ ValueConv => q{
275
+ require Image::ExifTool::XMP;
276
+ $val = Image::ExifTool::XMP::ConvertXMPDate($val);
277
+ $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
278
+ return $val;
279
+ },
280
+ ValueConvInv => q{
281
+ require Image::ExifTool::XMP;
282
+ my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
283
+ ($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
284
+ return $val;
285
+ },
286
+ PrintConv => '$self->ConvertDateTime($val)',
287
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
288
+ );
270
289
  # information for duration tags
271
290
  my %durationInfo = (
272
291
  ValueConv => '$$self{TimeScale} ? $val / $$self{TimeScale} : $val',
@@ -644,6 +663,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
644
663
  Deletable => 1,
645
664
  SubDirectory => {
646
665
  TagTable => 'Image::ExifTool::Jpeg2000::Main',
666
+ DirName => 'JUMBF',
647
667
  # 16 bytes uuid
648
668
  # +4 bytes 0
649
669
  # +9 bytes "manifest\0"
@@ -707,6 +727,13 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
707
727
  TagTable => 'Image::ExifTool::QuickTime::Stream',
708
728
  ProcessProc => \&ProcessKenwood,
709
729
  },
730
+ },{
731
+ Name => 'LIGO_JSON',
732
+ Condition => '$$valPt =~ /^LIGOGPSINFO \{/',
733
+ SubDirectory => {
734
+ TagTable => 'Image::ExifTool::QuickTime::Stream',
735
+ ProcessProc => \&ProcessLIGO_JSON,
736
+ },
710
737
  },{
711
738
  Name => 'FLIRData',
712
739
  SubDirectory => { TagTable => 'Image::ExifTool::FLIR::UserData' },
@@ -825,6 +852,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
825
852
  # note that this may be written and/or deleted, but can't currently be added back again
826
853
  Writable => 1,
827
854
  },
855
+ # '35AX'? - seen "AT" (Yada RoadCam Pro 4K dashcam)
828
856
  );
829
857
 
830
858
  # stuff seen in 'skip' atom (70mai Pro Plus+ MP4 videos)
@@ -1565,22 +1593,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
1565
1593
  "\xa9day" => {
1566
1594
  Name => 'ContentCreateDate',
1567
1595
  Groups => { 2 => 'Time' },
1568
- Shift => 'Time',
1569
- # handle values in the form "2010-02-12T13:27:14-0800" (written by Apple iPhone)
1570
- ValueConv => q{
1571
- require Image::ExifTool::XMP;
1572
- $val = Image::ExifTool::XMP::ConvertXMPDate($val);
1573
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
1574
- return $val;
1575
- },
1576
- ValueConvInv => q{
1577
- require Image::ExifTool::XMP;
1578
- my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
1579
- ($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
1580
- return $val;
1581
- },
1582
- PrintConv => '$self->ConvertDateTime($val)',
1583
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1596
+ %iso8601Date,
1584
1597
  },
1585
1598
  "\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
1586
1599
  "\xa9alb" => 'Album', #PH (iTunes 8.0.2)
@@ -1864,21 +1877,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
1864
1877
  Apple Photos has been reported to show a crazy date/time for some MP4 files
1865
1878
  containing this tag, but perhaps only if it is missing a time zone
1866
1879
  }, #forum10690/11125
1867
- Shift => 'Time',
1868
- ValueConv => q{
1869
- require Image::ExifTool::XMP;
1870
- $val = Image::ExifTool::XMP::ConvertXMPDate($val);
1871
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
1872
- return $val;
1873
- },
1874
- ValueConvInv => q{
1875
- require Image::ExifTool::XMP;
1876
- $val = Image::ExifTool::XMP::FormatXMPDate($val);
1877
- $val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
1878
- return $val;
1879
- },
1880
- PrintConv => '$self->ConvertDateTime($val)',
1881
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1880
+ %iso8601Date,
1882
1881
  },
1883
1882
  manu => { # (SX280)
1884
1883
  Name => 'Make',
@@ -2301,23 +2300,9 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
2301
2300
  symbol in these tag ID's for the Ricoh Theta Z1 and maybe other models
2302
2301
  },
2303
2302
  Groups => { 2 => 'Time' },
2304
- Shift => 'Time',
2305
2303
  Avoid => 1,
2306
2304
  # handle values in the form "2010-02-12T13:27:14-0800"
2307
- ValueConv => q{
2308
- require Image::ExifTool::XMP;
2309
- $val = Image::ExifTool::XMP::ConvertXMPDate($val);
2310
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
2311
- return $val;
2312
- },
2313
- ValueConvInv => q{
2314
- require Image::ExifTool::XMP;
2315
- my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
2316
- ($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
2317
- return $val;
2318
- },
2319
- PrintConv => '$self->ConvertDateTime($val)',
2320
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
2305
+ %iso8601Date,
2321
2306
  },
2322
2307
  '@xyz' => { #PH (iPhone 3GS)
2323
2308
  Name => 'GPSCoordinates',
@@ -3330,22 +3315,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
3330
3315
  "\xa9day" => {
3331
3316
  Name => 'ContentCreateDate',
3332
3317
  Groups => { 2 => 'Time' },
3333
- Shift => 'Time',
3334
- # handle values in the form "2010-02-12T13:27:14-0800"
3335
- ValueConv => q{
3336
- require Image::ExifTool::XMP;
3337
- $val = Image::ExifTool::XMP::ConvertXMPDate($val);
3338
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
3339
- return $val;
3340
- },
3341
- ValueConvInv => q{
3342
- require Image::ExifTool::XMP;
3343
- $val = Image::ExifTool::XMP::FormatXMPDate($val);
3344
- $val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
3345
- return $val;
3346
- },
3347
- PrintConv => '$self->ConvertDateTime($val)',
3348
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
3318
+ %iso8601Date,
3349
3319
  },
3350
3320
  "\xa9des" => 'Description', #4
3351
3321
  "\xa9enc" => 'EncodedBy', #10
@@ -6394,12 +6364,10 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
6394
6364
  ValueConvInv => '$val * 1000',
6395
6365
  PrintConv => 'ConvertDuration($val)',
6396
6366
  PrintConvInv => q{
6397
- $val =~ s/ s$//;
6398
- my @a = split /(:| days )/, $val;
6399
- my $sign = ($val =~ s/^-//) ? -1 : 1;
6400
- $a[0] += shift(@a) * 24 if @a == 4;
6401
- $a[0] += shift(@a) * 60 while @a > 1;
6402
- return $a[0] * $sign;
6367
+ my $sign = ($val =~ s/^-//) ? -1 : 1;
6368
+ my @a = $val =~ /(\d+(?:\.\d+)?)/g;
6369
+ unshift @a, 0 while @a < 4;
6370
+ return $sign * (((($a[0] * 24) + $a[1]) * 60 + $a[2]) * 60 + $a[3]);
6403
6371
  },
6404
6372
  },
6405
6373
 
@@ -6513,21 +6481,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
6513
6481
  creationdate=> {
6514
6482
  Name => 'CreationDate',
6515
6483
  Groups => { 2 => 'Time' },
6516
- Shift => 'Time',
6517
- ValueConv => q{
6518
- require Image::ExifTool::XMP;
6519
- $val = Image::ExifTool::XMP::ConvertXMPDate($val,1);
6520
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
6521
- return $val;
6522
- },
6523
- ValueConvInv => q{
6524
- require Image::ExifTool::XMP;
6525
- $val = Image::ExifTool::XMP::FormatXMPDate($val);
6526
- $val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
6527
- return $val;
6528
- },
6529
- PrintConv => '$self->ConvertDateTime($val)',
6530
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6484
+ %iso8601Date,
6531
6485
  },
6532
6486
  description => { },
6533
6487
  director => { },
@@ -6577,21 +6531,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
6577
6531
  'location.date' => {
6578
6532
  Name => 'LocationDate',
6579
6533
  Groups => { 2 => 'Time' },
6580
- Shift => 'Time',
6581
- ValueConv => q{
6582
- require Image::ExifTool::XMP;
6583
- $val = Image::ExifTool::XMP::ConvertXMPDate($val);
6584
- $val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
6585
- return $val;
6586
- },
6587
- ValueConvInv => q{
6588
- require Image::ExifTool::XMP;
6589
- $val = Image::ExifTool::XMP::FormatXMPDate($val);
6590
- $val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
6591
- return $val;
6592
- },
6593
- PrintConv => '$self->ConvertDateTime($val)',
6594
- PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6534
+ %iso8601Date,
6595
6535
  },
6596
6536
  'location.accuracy.horizontal' => { Name => 'LocationAccuracyHorizontal' },
6597
6537
  'live-photo.auto' => { Name => 'LivePhotoAuto', Writable => 'int8u' },
@@ -6684,6 +6624,16 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
6684
6624
  'detected-face.roll-angle' => { Name => 'DetectedFaceRollAngle', Writable => 0 },
6685
6625
  # (fiel)com.apple.quicktime.detected-face.yaw-angle (dtyp=23, float)
6686
6626
  'detected-face.yaw-angle' => { Name => 'DetectedFaceYawAngle', Writable => 0 },
6627
+ # the following tags generated by ShutterEncoder when "preserve metadata" is selected (forum15610)
6628
+ major_brand => { Name => 'MajorBrand', Avoid => 1 },
6629
+ minor_version => { Name => 'MinorVersion', Avoid => 1 },
6630
+ compatible_brands => { Name => 'CompatibleBrands', Avoid => 1 },
6631
+ creation_time => {
6632
+ Name => 'CreationTime',
6633
+ Groups => { 2 => 'Time' },
6634
+ Avoid => 1,
6635
+ %iso8601Date,
6636
+ },
6687
6637
  #
6688
6638
  # seen in Apple ProRes RAW file
6689
6639
  #
@@ -7315,6 +7265,10 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
7315
7265
  Name => 'SpatialAudio',
7316
7266
  SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::SpatialAudio' },
7317
7267
  },
7268
+ btrt => {
7269
+ Name => 'BitrateInfo',
7270
+ SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Bitrate' },
7271
+ },
7318
7272
  # alac - 28 bytes
7319
7273
  # adrm - AAX DRM atom? 148 bytes
7320
7274
  # aabd - AAX unknown 17kB (contains 'aavd' strings)
@@ -9353,7 +9307,7 @@ sub ProcessMOV($$;$)
9353
9307
  }
9354
9308
  # more convenient to package data as a RandomAccess file
9355
9309
  unless ($raf) {
9356
- $raf = new File::RandomAccess($dataPt);
9310
+ $raf = File::RandomAccess->new($dataPt);
9357
9311
  $dirEnd = $dataPos + $$dirInfo{DirLen} + ($$dirInfo{DirStart} || 0) if $$dirInfo{DirLen};
9358
9312
  }
9359
9313
  # skip leading bytes if necessary
@@ -10009,7 +9963,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
10009
9963
 
10010
9964
  =head1 AUTHOR
10011
9965
 
10012
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
9966
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
10013
9967
 
10014
9968
  This library is free software; you can redistribute it and/or modify it
10015
9969
  under the same terms as Perl itself.