exiftool-vendored.pl 12.72.0 → 12.73.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 (205) hide show
  1. package/bin/Changes +17 -0
  2. package/bin/META.json +1 -1
  3. package/bin/META.yml +1 -1
  4. package/bin/README +3 -3
  5. package/bin/exiftool +28 -15
  6. package/bin/lib/File/RandomAccess.pm +1 -1
  7. package/bin/lib/File/RandomAccess.pod +2 -2
  8. package/bin/lib/Image/ExifTool/AAC.pm +8 -6
  9. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  10. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  11. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  12. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  13. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  14. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  15. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  16. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  17. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  18. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
  22. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  23. package/bin/lib/Image/ExifTool/Canon.pm +1 -1
  24. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  25. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  26. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  27. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  28. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  29. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  30. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  31. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  32. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  37. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  38. package/bin/lib/Image/ExifTool/Exif.pm +1 -1
  39. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  40. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  41. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  43. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  44. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  45. package/bin/lib/Image/ExifTool/FlashPix.pm +60 -7
  46. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  49. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  50. package/bin/lib/Image/ExifTool/GIF.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GPS.pm +1 -1
  53. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  54. package/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  55. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  56. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  57. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  58. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  60. package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  61. package/bin/lib/Image/ExifTool/ICO.pm +1 -1
  62. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  63. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  64. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  66. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  67. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  68. package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
  69. package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
  70. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  72. package/bin/lib/Image/ExifTool/JVC.pm +3 -3
  73. package/bin/lib/Image/ExifTool/Jpeg2000.pm +17 -6
  74. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  77. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
  83. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
  85. package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
  86. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Leaf.pm +3 -3
  97. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  98. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  99. package/bin/lib/Image/ExifTool/MIE.pm +3 -3
  100. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  101. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  102. package/bin/lib/Image/ExifTool/MISB.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  112. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  113. package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  114. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  116. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  117. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  118. package/bin/lib/Image/ExifTool/Nikon.pm +9 -8
  119. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  120. package/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  121. package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  122. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  123. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  124. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  125. package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  126. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  127. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  128. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  129. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PDF.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PNG.pm +24 -2
  136. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  137. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  138. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  139. package/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
  140. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  141. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  142. package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
  143. package/bin/lib/Image/ExifTool/PhaseOne.pm +4 -4
  144. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  145. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  146. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  147. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  148. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  149. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  150. package/bin/lib/Image/ExifTool/QuickTime.pm +21 -1
  151. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +90 -2
  152. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  154. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
  161. package/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Shift.pl +1 -1
  165. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  166. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  167. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  168. package/bin/lib/Image/ExifTool/Sony.pm +3 -3
  169. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  170. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  171. package/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  172. package/bin/lib/Image/ExifTool/TagLookup.pm +3872 -3858
  173. package/bin/lib/Image/ExifTool/TagNames.pod +11416 -11382
  174. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  177. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  178. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WPG.pm +1 -1
  182. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  183. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  184. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  186. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  190. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +4 -1
  191. package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  192. package/bin/lib/Image/ExifTool/WriteXMP.pl +5 -3
  193. package/bin/lib/Image/ExifTool/Writer.pl +6 -1
  194. package/bin/lib/Image/ExifTool/XISF.pm +1 -1
  195. package/bin/lib/Image/ExifTool/XMP.pm +19 -3
  196. package/bin/lib/Image/ExifTool/XMP2.pl +1 -1
  197. package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  198. package/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  199. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  200. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  201. package/bin/lib/Image/ExifTool.pm +18 -3
  202. package/bin/lib/Image/ExifTool.pod +10 -2
  203. package/bin/perl-Image-ExifTool.spec +1 -1
  204. package/bin/pp_build_exe.args +5 -5
  205. package/package.json +3 -3
@@ -22,7 +22,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
22
22
  use Image::ExifTool::Exif;
23
23
  use Image::ExifTool::ASF; # for GetGUID()
24
24
 
25
- $VERSION = '1.46';
25
+ $VERSION = '1.47';
26
26
 
27
27
  sub ProcessFPX($$);
28
28
  sub ProcessFPXR($$$);
@@ -511,6 +511,31 @@ my %fpxFileType = (
511
511
  corresponding EmbeddedImage from the Contents of a VNT file
512
512
  },
513
513
  },
514
+ _eeJPG => {
515
+ Name => 'EmbeddedImage',
516
+ Notes => q{
517
+ Not a real tag. Extracted from stream content when the ExtractEmbedded
518
+ option is used
519
+ },
520
+ Groups => { 2 => 'Preview' },
521
+ Binary => 1,
522
+ },
523
+ _eePNG => {
524
+ Name => 'EmbeddedPNG',
525
+ Notes => q{
526
+ Not a real tag. Extracted from stream content when the ExtractEmbedded
527
+ option is used
528
+ },
529
+ Groups => { 2 => 'Preview' },
530
+ Binary => 1,
531
+ },
532
+ _eeLink => {
533
+ Name => 'LinkedFileName',
534
+ Notes => q{
535
+ Not a real tag. Extracted from stream content when the ExtractEmbedded
536
+ option is used
537
+ },
538
+ },
514
539
  );
515
540
 
516
541
  # Summary Information properties
@@ -2180,6 +2205,9 @@ sub ProcessFPX($$)
2180
2205
  my ($buff, $out, $oldIndent, $miniStreamBuff);
2181
2206
  my ($tag, %hier, %objIndex, %loadedDifSect);
2182
2207
 
2208
+ # handle FPX format in memory from PNG cpIp chunk
2209
+ $raf or $raf = new File::RandomAccess($$dirInfo{DataPt});
2210
+
2183
2211
  # read header
2184
2212
  return 0 unless $raf->Read($buff,HDR_SIZE) == HDR_SIZE;
2185
2213
  # check signature
@@ -2291,6 +2319,8 @@ sub ProcessFPX($$)
2291
2319
  my $miniStream;
2292
2320
  $endPos = length($dir);
2293
2321
  my $index = 0;
2322
+ my $ee; # name of next tag to extract if unknown
2323
+ $ee = 0 if $et->Options('ExtractEmbedded');
2294
2324
 
2295
2325
  for ($pos=0; $pos<=$endPos-128; $pos+=128, ++$index) {
2296
2326
 
@@ -2310,6 +2340,9 @@ sub ProcessFPX($$)
2310
2340
  $tag = Image::ExifTool::Decode(undef, substr($dir,$pos,$len*2), 'UCS2', 'II', 'Latin');
2311
2341
  $tag =~ s/\0.*//s; # truncate at null (in case length was wrong)
2312
2342
 
2343
+ if ($tag eq '0' and not defined $ee) {
2344
+ $et->WarnOnce('Use the ExtractEmbedded option to extract embedded information', 3);
2345
+ }
2313
2346
  my $sect = Get32u(\$dir, $pos + 0x74); # start sector number
2314
2347
  my $size = Get32u(\$dir, $pos + 0x78); # stream length
2315
2348
 
@@ -2326,6 +2359,9 @@ sub ProcessFPX($$)
2326
2359
  my $tagInfo;
2327
2360
  if ($$tagTablePtr{$tag}) {
2328
2361
  $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
2362
+ } elsif (defined $ee and $tag eq $ee) {
2363
+ $tagInfo = ''; # won't know the actual tagID untile we read the stream
2364
+ $ee = sprintf('%x', hex($ee)+1); # tag to look for next
2329
2365
  } else {
2330
2366
  # remove instance number or class ID from tag if necessary
2331
2367
  $tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
@@ -2349,7 +2385,7 @@ sub ProcessFPX($$)
2349
2385
  $$sub{Parent} = $index;
2350
2386
  }
2351
2387
 
2352
- next unless $tagInfo or $verbose;
2388
+ next unless defined $tagInfo or $verbose;
2353
2389
 
2354
2390
  # load the data for stream types
2355
2391
  my $extra = '';
@@ -2383,18 +2419,22 @@ sub ProcessFPX($$)
2383
2419
  $extra .= " Left=$lSib" unless $lSib == FREE_SECT;
2384
2420
  $extra .= " Right=$rSib" unless $rSib == FREE_SECT;
2385
2421
  $extra .= " Child=$chld" unless $chld == FREE_SECT;
2422
+ $extra .= " Size=$size" if defined $size;
2423
+ my $name;
2424
+ $name = "Unknown_0x$tag" if not $tagInfo and $tag =~ /^[0-9a-f]{1,3}$/;
2386
2425
  $et->VerboseInfo($tag, $tagInfo,
2387
2426
  Index => $index,
2388
2427
  Value => $buff,
2389
2428
  DataPt => \$buff,
2390
2429
  Extra => $extra,
2391
- Size => $size,
2430
+ # Size => $size, (moved to $extra so we can see the rest of the stream if larger)
2431
+ Name => $name,
2392
2432
  );
2393
2433
  }
2394
- if ($tagInfo and $buff) {
2434
+ if (defined $tagInfo and $buff) {
2395
2435
  my $num = $$et{NUM_FOUND};
2396
- my $subdir = $$tagInfo{SubDirectory};
2397
- if ($subdir) {
2436
+ if ($tagInfo and $$tagInfo{SubDirectory}) {
2437
+ my $subdir = $$tagInfo{SubDirectory};
2398
2438
  my %dirInfo = (
2399
2439
  DataPt => \$buff,
2400
2440
  DirStart => $$subdir{DirStart},
@@ -2422,6 +2462,19 @@ sub ProcessFPX($$)
2422
2462
  }
2423
2463
  }
2424
2464
  delete $$et{DOC_NUM};
2465
+ } elsif (not $tagInfo) {
2466
+ # extract some embedded information from PNG Plus images
2467
+ if ($buff =~ /^(.{19,40})(\xff\xd8\xff\xe0|\x89PNG\r\n\x1a\n)/sg) {
2468
+ my $id = $2 eq "\xff\xd8\xff\xe0" ? '_eeJPG' : '_eePNG';
2469
+ $et->HandleTag($tagTablePtr, $id, substr($buff, length($1)));
2470
+ } elsif ($buff =~ /^\0\x80\0\0\x01\0\0\0\x0e\0/ and length($buff) > 18) {
2471
+ my $len = unpack('x17C', $buff);
2472
+ next if $len + 18 > length($buff);
2473
+ my $filename = $et->Decode(substr($buff,18,$len), 'UTF16', 'II');
2474
+ $et->HandleTag($tagTablePtr, '_eeLink', $filename);
2475
+ } else {
2476
+ next;
2477
+ }
2425
2478
  } else {
2426
2479
  $et->FoundTag($tagInfo, $buff);
2427
2480
  }
@@ -2508,7 +2561,7 @@ JPEG images.
2508
2561
 
2509
2562
  =head1 AUTHOR
2510
2563
 
2511
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2564
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2512
2565
 
2513
2566
  This library is free software; you can redistribute it and/or modify it
2514
2567
  under the same terms as Perl itself.
@@ -622,7 +622,7 @@ extracted from these formats.
622
622
 
623
623
  =head1 AUTHOR
624
624
 
625
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
625
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
626
626
 
627
627
  This library is free software; you can redistribute it and/or modify it
628
628
  under the same terms as Perl itself.
@@ -243,7 +243,7 @@ write information from the FotoWare FotoStation trailer.
243
243
 
244
244
  =head1 AUTHOR
245
245
 
246
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
246
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
247
247
 
248
248
  This library is free software; you can redistribute it and/or modify it
249
249
  under the same terms as Perl itself.
@@ -1874,7 +1874,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
1874
1874
 
1875
1875
  =head1 AUTHOR
1876
1876
 
1877
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1877
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1878
1878
 
1879
1879
  This library is free software; you can redistribute it and/or modify it
1880
1880
  under the same terms as Perl itself.
@@ -68,7 +68,7 @@ General Imaging maker notes.
68
68
 
69
69
  =head1 AUTHOR
70
70
 
71
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
71
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
72
72
 
73
73
  This library is free software; you can redistribute it and/or modify it
74
74
  under the same terms as Perl itself.
@@ -545,7 +545,7 @@ write GIF meta information.
545
545
 
546
546
  =head1 AUTHOR
547
547
 
548
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
548
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
549
549
 
550
550
  This library is free software; you can redistribute it and/or modify it
551
551
  under the same terms as Perl itself.
@@ -270,7 +270,7 @@ GIMP software.
270
270
 
271
271
  =head1 AUTHOR
272
272
 
273
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
273
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
274
274
 
275
275
  This library is free software; you can redistribute it and/or modify it
276
276
  under the same terms as Perl itself.
@@ -613,7 +613,7 @@ GPS (Global Positioning System) meta information in EXIF data.
613
613
 
614
614
  =head1 AUTHOR
615
615
 
616
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
616
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
617
617
 
618
618
  This library is free software; you can redistribute it and/or modify it
619
619
  under the same terms as Perl itself.
@@ -2242,7 +2242,7 @@ coordinates.
2242
2242
 
2243
2243
  =head1 AUTHOR
2244
2244
 
2245
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2245
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2246
2246
 
2247
2247
  This library is free software; you can redistribute it and/or modify it
2248
2248
  under the same terms as Perl itself.
@@ -1492,7 +1492,7 @@ user-defined tag GPSRoll, must be active.
1492
1492
 
1493
1493
  =head1 AUTHOR
1494
1494
 
1495
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1495
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1496
1496
 
1497
1497
  This library is free software; you can redistribute it and/or modify it
1498
1498
  under the same terms as Perl itself.
@@ -748,7 +748,7 @@ metadata from GoPro MP4 videos.
748
748
 
749
749
  =head1 AUTHOR
750
750
 
751
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
751
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
752
752
 
753
753
  This library is free software; you can redistribute it and/or modify it
754
754
  under the same terms as Perl itself.
@@ -1123,7 +1123,7 @@ information from H.264 video streams.
1123
1123
 
1124
1124
  =head1 AUTHOR
1125
1125
 
1126
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1126
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1127
1127
 
1128
1128
  This library is free software; you can redistribute it and/or modify it
1129
1129
  under the same terms as Perl itself.
@@ -250,7 +250,7 @@ Hewlett-Packard maker notes.
250
250
 
251
251
  =head1 AUTHOR
252
252
 
253
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
253
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
254
254
 
255
255
  This library is free software; you can redistribute it and/or modify it
256
256
  under the same terms as Perl itself.
@@ -555,7 +555,7 @@ meta information from HTML documents.
555
555
 
556
556
  =head1 AUTHOR
557
557
 
558
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
558
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
559
559
 
560
560
  This library is free software; you can redistribute it and/or modify it
561
561
  under the same terms as Perl itself.
@@ -917,7 +917,7 @@ page.
917
917
 
918
918
  =head1 AUTHOR
919
919
 
920
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
920
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
921
921
 
922
922
  This library is free software; you can redistribute it and/or modify it
923
923
  under the same terms as Perl itself.
@@ -1357,7 +1357,7 @@ data created on one device into another device's native color space.
1357
1357
 
1358
1358
  =head1 AUTHOR
1359
1359
 
1360
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1360
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1361
1361
 
1362
1362
  This library is free software; you can redistribute it and/or modify it
1363
1363
  under the same terms as Perl itself.
@@ -121,7 +121,7 @@ information from Windows ICO (icon) and CUR (cursor) files.
121
121
 
122
122
  =head1 AUTHOR
123
123
 
124
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
124
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
125
125
 
126
126
  This library is free software; you can redistribute it and/or modify it
127
127
  under the same terms as Perl itself.
@@ -1718,7 +1718,7 @@ other types of audio files.
1718
1718
 
1719
1719
  =head1 AUTHOR
1720
1720
 
1721
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1721
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1722
1722
 
1723
1723
  This library is free software; you can redistribute it and/or modify it
1724
1724
  under the same terms as Perl itself.
@@ -1284,7 +1284,7 @@ image files.
1284
1284
 
1285
1285
  =head1 AUTHOR
1286
1286
 
1287
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1287
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1288
1288
 
1289
1289
  This library is free software; you can redistribute it and/or modify it
1290
1290
  under the same terms as Perl itself.
@@ -184,7 +184,7 @@ information from ISO 9660 disk images.
184
184
 
185
185
  =head1 AUTHOR
186
186
 
187
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
187
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
188
188
 
189
189
  This library is free software; you can redistribute it and/or modify it
190
190
  under the same terms as Perl itself.
@@ -191,7 +191,7 @@ information (including artwork images) from iTunes Cover Flow files.
191
191
 
192
192
  =head1 AUTHOR
193
193
 
194
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
194
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
195
195
 
196
196
  This library is free software; you can redistribute it and/or modify it
197
197
  under the same terms as Perl itself.
@@ -348,7 +348,7 @@ stored as hash lookups of tag name/value for each SourceFile.
348
348
 
349
349
  =head1 AUTHOR
350
350
 
351
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
351
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
352
352
 
353
353
  This library is free software; you can redistribute it and/or modify it
354
354
  under the same terms as Perl itself.
@@ -258,7 +258,7 @@ them and the LargeFileSupport option is enabled.
258
258
 
259
259
  =head1 AUTHOR
260
260
 
261
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
261
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
262
262
 
263
263
  This library is free software; you can redistribute it and/or modify it
264
264
  under the same terms as Perl itself.
@@ -206,7 +206,7 @@ IJPEG SDK, used in cameras such as the P2 Pro.
206
206
 
207
207
  =head1 AUTHOR
208
208
 
209
- Copyright 2003-2023, Marcos Del Sol Vives (marcos at orca.pet)
209
+ Copyright 2003-2024, Marcos Del Sol Vives (marcos at orca.pet)
210
210
 
211
211
  This library is free software; you can redistribute it and/or modify it
212
212
  under the same terms as Perl itself.
@@ -11,7 +11,7 @@ use strict;
11
11
  use vars qw($VERSION);
12
12
  use Image::ExifTool qw(:DataAccess :Utils);
13
13
 
14
- $VERSION = '1.35';
14
+ $VERSION = '1.36';
15
15
 
16
16
  sub ProcessOcad($$$);
17
17
  sub ProcessJPEG_HDR($$$);
@@ -335,6 +335,9 @@ sub ProcessJPEG_HDR($$$);
335
335
  Name => 'NikonApp',
336
336
  Condition => '$$valPt =~ m(\0{6}/NIKON APP$)',
337
337
  Notes => 'contains editing information in XMP format',
338
+ }, {
339
+ Name => 'SonyHiddenData',
340
+ Condition => '$$valPt =~ /^\x55\x26\x11\x05\0/',
338
341
  }, {
339
342
  Name => 'PreviewImage',
340
343
  Condition => '$$valPt =~ /^\xff\xd8\xff/',
@@ -765,7 +768,7 @@ segments are included in the Image::ExifTool module itself.
765
768
 
766
769
  =head1 AUTHOR
767
770
 
768
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
771
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
769
772
 
770
773
  This library is free software; you can redistribute it and/or modify it
771
774
  under the same terms as Perl itself.
@@ -2590,7 +2590,7 @@ estimated JPEG quality if requested.
2590
2590
 
2591
2591
  =head1 AUTHOR
2592
2592
 
2593
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2593
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2594
2594
 
2595
2595
  This library is free software; you can redistribute it and/or modify it
2596
2596
  under the same terms as Perl itself.
@@ -179,7 +179,7 @@ information from JSON files.
179
179
 
180
180
  =head1 AUTHOR
181
181
 
182
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
182
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
183
183
 
184
184
  This library is free software; you can redistribute it and/or modify it
185
185
  under the same terms as Perl itself.
@@ -13,7 +13,7 @@ use vars qw($VERSION);
13
13
  use Image::ExifTool qw(:DataAccess :Utils);
14
14
  use Image::ExifTool::Exif;
15
15
 
16
- $VERSION = '1.03';
16
+ $VERSION = '1.04';
17
17
 
18
18
  sub ProcessJVCText($$$);
19
19
 
@@ -88,7 +88,7 @@ sub ProcessJVCText($$$)
88
88
  $tagInfo = {
89
89
  Name => "JVC_Text_$tag",
90
90
  Unknown => 1,
91
- PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val',
91
+ PrintConv => \&Image::ExifTool::LimitLongValues,
92
92
  };
93
93
  # add tag information to table
94
94
  AddTagToTable($tagTablePtr, $tag, $tagInfo);
@@ -117,7 +117,7 @@ notes.
117
117
 
118
118
  =head1 AUTHOR
119
119
 
120
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
120
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
121
121
 
122
122
  This library is free software; you can redistribute it and/or modify it
123
123
  under the same terms as Perl itself.
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.36';
19
+ $VERSION = '1.37';
20
20
 
21
21
  sub ProcessJpeg2000Box($$$);
22
22
  sub ProcessJUMD($$$);
@@ -854,6 +854,17 @@ sub ProcessJUMD($$$)
854
854
  return 1;
855
855
  }
856
856
 
857
+ #------------------------------------------------------------------------------
858
+ # Warn about error in Brotli compression/decompression
859
+ # Inputs: 0) ExifTool ref, 1) box type, 2) true for decoding (Uncompress)
860
+ sub BrotliWarn($$;$)
861
+ {
862
+ my ($et, $type, $uncompress) = @_;
863
+ my ($enc, $mod) = $uncompress ? qw(decoding Uncompress) : qw(encoding Compress);
864
+ $et->WarnOnce("Error $enc '${type}' brob box");
865
+ $et->WarnOnce("Try updating to IO::${mod}::Brotli 0.004 or later");
866
+ }
867
+
857
868
  #------------------------------------------------------------------------------
858
869
  # Create new JPEG 2000 boxes when writing
859
870
  # (Currently only supports adding top-level Writable JPEG2000 tags and certain UUID boxes)
@@ -909,7 +920,7 @@ sub CreateNewBoxes($$)
909
920
  my $compressed;
910
921
  eval { $compressed = IO::Compress::Brotli::bro($pad . $newdir) };
911
922
  if ($@ or not $compressed) {
912
- $et->Warn("Error encoding $dirName brob box");
923
+ BrotliWarn($et, $dirName);
913
924
  } else {
914
925
  $et->VPrint(0, " Writing Brotli-compressed $dir\n");
915
926
  $newdir = $compressed;
@@ -1248,7 +1259,7 @@ sub ProcessJpeg2000Box($$$)
1248
1259
  my $compressed;
1249
1260
  eval { $compressed = IO::Compress::Brotli::bro($pad . $newdir) };
1250
1261
  if ($@ or not $compressed) {
1251
- $et->Warn("Error encoding $boxID brob box");
1262
+ BrotliWarn($et, $boxID);
1252
1263
  } else {
1253
1264
  $et->VPrint(0, " Writing Brotli-compressed $boxID\n");
1254
1265
  $newdir = $boxID . $compressed;
@@ -1389,7 +1400,7 @@ sub ProcessBrotli($$$)
1389
1400
  my $verbose = $isWriting ? 0 : $et->Options('Verbose');
1390
1401
  my $dat = substr($$dataPt, 4);
1391
1402
  eval { $dat = IO::Uncompress::Brotli::unbro($dat, 100000000) };
1392
- $@ and $et->Warn("Error decoding $type brob box"), return 1;
1403
+ $@ and BrotliWarn($et, $type, 1), return 1;
1393
1404
  $verbose > 2 and $et->VerboseDump(\$dat, Prefix => $$et{INDENT} . ' ');
1394
1405
  my %dirInfo = ( DataPt => \$dat );
1395
1406
  if ($type eq 'xml ') {
@@ -1422,7 +1433,7 @@ sub ProcessBrotli($$$)
1422
1433
  # rewrite as uncompressed if Compress option is set to 0 (or '')
1423
1434
  return $dat if defined $compress and not $compress;
1424
1435
  eval { $dat = IO::Compress::Brotli::bro($dat) };
1425
- $@ and $et->Warn("Error encoding $type brob box"), return undef;
1436
+ $@ and BrotliWarn($et, $type), return undef;
1426
1437
  $et->VPrint(0, " Writing Brotli-compressed $type\n");
1427
1438
  return $type . $dat;
1428
1439
  }
@@ -1620,7 +1631,7 @@ files.
1620
1631
 
1621
1632
  =head1 AUTHOR
1622
1633
 
1623
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1634
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1624
1635
 
1625
1636
  This library is free software; you can redistribute it and/or modify it
1626
1637
  under the same terms as Perl itself.
@@ -3252,7 +3252,7 @@ interpret Kodak maker notes EXIF meta information.
3252
3252
 
3253
3253
  =head1 AUTHOR
3254
3254
 
3255
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
3255
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
3256
3256
 
3257
3257
  This library is free software; you can redistribute it and/or modify it
3258
3258
  under the same terms as Perl itself.
@@ -152,7 +152,7 @@ meta information from Kyocera Contax N Digital RAW images.
152
152
 
153
153
  =head1 AUTHOR
154
154
 
155
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
155
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
156
156
 
157
157
  This library is free software; you can redistribute it and/or modify it
158
158
  under the same terms as Perl itself.
@@ -147,7 +147,7 @@ metadata from Leica Image File (LIF) images.
147
147
 
148
148
  =head1 AUTHOR
149
149
 
150
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
150
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
151
151
 
152
152
  This library is free software; you can redistribute it and/or modify it
153
153
  under the same terms as Perl itself.
@@ -703,7 +703,7 @@ information MS Shell Link (Windows shortcut) files.
703
703
 
704
704
  =head1 AUTHOR
705
705
 
706
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
706
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
707
707
 
708
708
  This library is free software; you can redistribute it and/or modify it
709
709
  under the same terms as Perl itself.
@@ -1570,7 +1570,7 @@ and values.
1570
1570
 
1571
1571
  =head1 AUTHOR
1572
1572
 
1573
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1573
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1574
1574
 
1575
1575
  This library is free software; you can redistribute it and/or modify it
1576
1576
  under the same terms as Perl itself.
@@ -8702,7 +8702,7 @@ and values.
8702
8702
 
8703
8703
  =head1 AUTHOR
8704
8704
 
8705
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
8705
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
8706
8706
 
8707
8707
  This library is free software; you can redistribute it and/or modify it
8708
8708
  under the same terms as Perl itself.
@@ -989,7 +989,7 @@ and values.
989
989
 
990
990
  =head1 AUTHOR
991
991
 
992
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
992
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
993
993
 
994
994
  This library is free software; you can redistribute it and/or modify it
995
995
  under the same terms as Perl itself.
@@ -1032,7 +1032,7 @@ and values.
1032
1032
 
1033
1033
  =head1 AUTHOR
1034
1034
 
1035
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1035
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1036
1036
 
1037
1037
  This library is free software; you can redistribute it and/or modify it
1038
1038
  under the same terms as Perl itself.
@@ -1980,10 +1980,10 @@ $VERSION = '1.16';
1980
1980
  'IPTCPixelHeight' => 'Tamaño Pixel Perpendicular a Dirección Escaneo',
1981
1981
  'IPTCPixelWidth' => 'Tamaño Pixel en Dirección Escaneo',
1982
1982
  'ISO' => 'Ratio Velocidad ISO',
1983
- 'ISOAutoParameters' => {
1983
+ 'ISOAutoMinSpeed' => {
1984
1984
  PrintConv => {
1985
- 'Fast' => 'Rápido',
1986
- 'Standard' => 'Estándar',
1985
+ 'Auto Fast' => 'Auto-rápido',
1986
+ 'Auto Standard' => 'Auto-estándar',
1987
1987
  },
1988
1988
  },
1989
1989
  'ISOExpansion' => {
@@ -4005,7 +4005,7 @@ and values.
4005
4005
 
4006
4006
  =head1 AUTHOR
4007
4007
 
4008
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
4008
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
4009
4009
 
4010
4010
  This library is free software; you can redistribute it and/or modify it
4011
4011
  under the same terms as Perl itself.
@@ -2878,7 +2878,7 @@ and values.
2878
2878
 
2879
2879
  =head1 AUTHOR
2880
2880
 
2881
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2881
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2882
2882
 
2883
2883
  This library is free software; you can redistribute it and/or modify it
2884
2884
  under the same terms as Perl itself.