exiftool-vendored.pl 12.39.0 → 12.42.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 (46) hide show
  1. package/bin/Changes +66 -1
  2. package/bin/MANIFEST +1 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +2 -2
  6. package/bin/arg_files/exif2xmp.args +5 -0
  7. package/bin/arg_files/xmp2exif.args +6 -0
  8. package/bin/config_files/acdsee.config +6 -6
  9. package/bin/config_files/photoshop_paths.config +30 -7
  10. package/bin/config_files/picasa_faces.config +1 -1
  11. package/bin/config_files/pix4d.config +2 -2
  12. package/bin/config_files/tiff_version.config +2 -2
  13. package/bin/exiftool +54 -22
  14. package/bin/lib/Image/ExifTool/Canon.pm +89 -6
  15. package/bin/lib/Image/ExifTool/DJI.pm +59 -1
  16. package/bin/lib/Image/ExifTool/DNG.pm +8 -2
  17. package/bin/lib/Image/ExifTool/Exif.pm +53 -20
  18. package/bin/lib/Image/ExifTool/Geotag.pm +3 -2
  19. package/bin/lib/Image/ExifTool/ICC_Profile.pm +10 -8
  20. package/bin/lib/Image/ExifTool/ID3.pm +5 -5
  21. package/bin/lib/Image/ExifTool/MacOS.pm +9 -9
  22. package/bin/lib/Image/ExifTool/MakerNotes.pm +17 -1
  23. package/bin/lib/Image/ExifTool/Nikon.pm +44 -12
  24. package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -1
  25. package/bin/lib/Image/ExifTool/Olympus.pm +27 -7
  26. package/bin/lib/Image/ExifTool/PDF.pm +2 -1
  27. package/bin/lib/Image/ExifTool/Panasonic.pm +10 -1
  28. package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  29. package/bin/lib/Image/ExifTool/Photoshop.pm +6 -5
  30. package/bin/lib/Image/ExifTool/QuickTime.pm +9 -5
  31. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -2
  32. package/bin/lib/Image/ExifTool/Samsung.pm +237 -2
  33. package/bin/lib/Image/ExifTool/Shortcuts.pm +3 -1
  34. package/bin/lib/Image/ExifTool/Sony.pm +10 -4
  35. package/bin/lib/Image/ExifTool/TagLookup.pm +6376 -6354
  36. package/bin/lib/Image/ExifTool/TagNames.pod +79 -28
  37. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +7 -3
  38. package/bin/lib/Image/ExifTool/WriteXMP.pl +2 -0
  39. package/bin/lib/Image/ExifTool/Writer.pl +1 -1
  40. package/bin/lib/Image/ExifTool/XMP.pm +9 -1
  41. package/bin/lib/Image/ExifTool/XMPStruct.pl +21 -7
  42. package/bin/lib/Image/ExifTool.pm +20 -12
  43. package/bin/lib/Image/ExifTool.pod +7 -6
  44. package/bin/perl-Image-ExifTool.spec +1 -1
  45. package/bin/pp_build_exe.args +4 -4
  46. package/package.json +14 -3
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 25764 tags, with 16462 unique tag names.
15
+ They contain a total of 25792 tags, with 16480 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -629,6 +629,7 @@ for the official EXIF 2.32 specification.
629
629
  MakerNoteCanon ExifIFD Canon
630
630
  MakerNoteCasio ExifIFD Casio
631
631
  MakerNoteCasio2 ExifIFD Casio Type2
632
+ MakerNoteDJIInfo ExifIFD DJI Info
632
633
  MakerNoteDJI ExifIFD DJI
633
634
  MakerNoteFLIR ExifIFD FLIR
634
635
  MakerNoteFujiFilm ExifIFD FujiFilm
@@ -669,6 +670,7 @@ for the official EXIF 2.32 specification.
669
670
  MakerNoteNintendo ExifIFD Nintendo
670
671
  MakerNoteOlympus ExifIFD Olympus
671
672
  MakerNoteOlympus2 ExifIFD Olympus
673
+ MakerNoteOlympus3 ExifIFD Olympus
672
674
  MakerNoteLeica ExifIFD Panasonic
673
675
  MakerNoteLeica2 ExifIFD Panasonic Leica2
674
676
  MakerNoteLeica3 ExifIFD Panasonic Leica3
@@ -853,6 +855,7 @@ for the official EXIF 2.32 specification.
853
855
  MakerNotePentax IFD0 Pentax
854
856
  MakerNotePentax5 IFD0 Pentax
855
857
  MakerNoteRicohPentax IFD0 Pentax
858
+ MakerNoteDJIInfo IFD0 DJI Info
856
859
  DNGPrivateData IFD0 int8u!
857
860
  0xc635 MakerNoteSafety IFD0 int16u
858
861
  0xc640 RawImageSegmentation - no
@@ -6754,6 +6757,7 @@ Metadata tags that exist.
6754
6757
 
6755
6758
  Tag Name Writable
6756
6759
  -------- --------
6760
+ CreatorApp no
6757
6761
  ManufacturerName no
6758
6762
  MediaColor no
6759
6763
  MediaWeight no
@@ -7346,6 +7350,7 @@ Unknown only to reduce the volume of the normal output.
7346
7350
  0x4021 MultiExp Canon MultiExp
7347
7351
  0x4024 FilterInfo Canon FilterInfo
7348
7352
  0x4025 HDRInfo Canon HDRInfo
7353
+ 0x4026 LogInfo Canon LogInfo
7349
7354
  0x4028 AFConfig Canon AFConfig
7350
7355
  0x403f RawBurstModeRoll Canon RawBurstInfo
7351
7356
 
@@ -9515,6 +9520,18 @@ Information about creative filter settings.
9515
9520
  1 HDR int32s
9516
9521
  2 HDREffect int32s
9517
9522
 
9523
+ =head3 Canon LogInfo Tags
9524
+
9525
+ Index4 Tag Name Writable
9526
+ ------ -------- --------
9527
+ 4 CompressionFormat int32s
9528
+ 6 Sharpness int32s
9529
+ 7 Saturation int32s
9530
+ 8 ColorTone int32s
9531
+ 9 ColorSpace2 int32s
9532
+ 10 ColorMatrix int32s
9533
+ 11 CanonLogVersion int32s
9534
+
9518
9535
  =head3 Canon AFConfig Tags
9519
9536
 
9520
9537
  Index4 Tag Name Writable
@@ -10637,6 +10654,30 @@ These tags belong to the ExifTool XMP-drone-dji family 1 group.
10637
10654
  RtkStdLon real
10638
10655
  SelfData string
10639
10656
 
10657
+ =head3 DJI Info Tags
10658
+
10659
+ Tags written by some DJI drones.
10660
+
10661
+ Tag ID Tag Name Writable
10662
+ ------ -------- --------
10663
+ 'FlightDegree(Y,P,R)' FlightDegree no
10664
+ 'FlightSpeed(X,Y,Z)' FlightSpeed no
10665
+ 'GimbalDegree(Y,P,R)' GimbalDegree no
10666
+ 'adj_dbg_info' ADJDebugInfo no
10667
+ 'ae_dbg_info' AEDebugInfo no
10668
+ 'ae_histogram_info' AEHistogramInfo no
10669
+ 'ae_liveview_histogram_info'
10670
+ AELiveViewHistogramInfo no
10671
+ 'ae_liveview_local_histogram'
10672
+ AELiveViewLocalHistogram no
10673
+ 'ae_local_histogram' AELocalHistogram no
10674
+ 'af_dbg_info' AFDebugInfo no
10675
+ 'awb_dbg_info' AWBDebugInfo no
10676
+ 'hiso' Histogram no
10677
+ 'hyperlapse_dbg_info' HyperlapsDebugInfo no
10678
+ 'sensor_id' SensorID no
10679
+ 'xidiri' Xidiri no
10680
+
10640
10681
  =head3 DJI ThermalParams Tags
10641
10682
 
10642
10683
  Thermal parameters extracted from APP4 of DJI RJPEG files from the ZH20T.
@@ -13591,6 +13632,8 @@ These tags belong to the ExifTool XMP-ast family 1 group.
13591
13632
  About no
13592
13633
  GPSAltitude no
13593
13634
  GPSAltitudeRef no
13635
+ GPSImgDirection no
13636
+ GPSImgDirectionRef no
13594
13637
  GPSLatitude no
13595
13638
  GPSLatitudeRef no
13596
13639
  GPSLongitude no
@@ -14317,6 +14360,7 @@ These tags are used by the Z9.
14317
14360
  434 FlashOutput? int8u
14318
14361
  444 FlashRemoteControl? int8u
14319
14362
  456 FlashWirelessOption? int8u
14363
+ 528 AFAreaMode int8u
14320
14364
  530 VRMode int8u
14321
14365
  534 BracketSet int8u
14322
14366
  536 BracketProgram int8u
@@ -14710,7 +14754,7 @@ These tags are used by the D4S, D750, D810, D5500, D7200 (FlashInfoVersion
14710
14754
  0 AFInfo2Version no
14711
14755
  62 AFImageWidth int16u
14712
14756
  64 AFImageHeight int16u
14713
- 67 FocusPositionHoriontal int8u~
14757
+ 67 FocusPositionHorizontal int8u~
14714
14758
  69 FocusPositionVertical int8u~
14715
14759
  70 AFAreaWidth int16u
14716
14760
  72 AFAreaHeight int16u
@@ -16624,6 +16668,7 @@ any information found here will be extracted, even if the tag is not listed.
16624
16668
  0x0306 AFFineTune int8u
16625
16669
  0x0307 AFFineTuneAdj int16s[3]
16626
16670
  0x0308 FocusBracketStepSize int8u
16671
+ 0x0309 AISubjectTrackingMode int16u
16627
16672
  0x0400 FlashMode int16u
16628
16673
  0x0401 FlashExposureComp rational64s
16629
16674
  0x0403 FlashRemoteControl int16u
@@ -17415,29 +17460,30 @@ iPalm.
17415
17460
  Tags extracted from the PANA and LEIC user data found in MP4 videos from
17416
17461
  various Panasonic and Leica models.
17417
17462
 
17418
- Index1 Tag Name Writable
17419
- ------ -------- --------
17420
- 0 Make no
17421
- 4 Model no
17422
- 12 Model no
17423
- 16 JPEG-likeData EXIF
17424
- 22 Model no
17425
- 52 Version1 no
17426
- 62 Version2 no
17427
- 80 MakerNoteLeica5 Panasonic Leica5
17428
- 88 ThumbnailWidth no
17429
- 90 ThumbnailHeight no
17430
- 92 ThumbnailImage no
17431
- 1334 ThumbnailWidth no
17432
- 1338 ThumbnailHeight no
17433
- 1342 ThumbnailLength no
17434
- 1350 ThumbnailImage no
17435
- 1358 ThumbnailWidth no
17436
- 1362 ThumbnailHeight no
17437
- 1366 ThumbnailLength no
17438
- 1374 ThumbnailImage no
17439
- 16488 ExifData EXIF
17440
- 16512 ExifData EXIF
17463
+ Index1 Tag Name Writable
17464
+ ------ -------- --------
17465
+ 0 Make no
17466
+ 4 Model no
17467
+ 12 Model no
17468
+ 16 JPEG-likeData EXIF
17469
+ 22 Model no
17470
+ 52 Version1 no
17471
+ 62 Version2 no
17472
+ 80 MakerNoteLeica5 Panasonic Leica5
17473
+ 88 ThumbnailWidth no
17474
+ 90 ThumbnailHeight no
17475
+ 92 ThumbnailImage no
17476
+ 1334 ThumbnailWidth no
17477
+ 1338 ThumbnailHeight no
17478
+ 1342 ThumbnailLength no
17479
+ 1350 ThumbnailImage no
17480
+ 1358 ThumbnailWidth no
17481
+ 1362 ThumbnailHeight no
17482
+ 1366 ThumbnailLength no
17483
+ 1374 ThumbnailImage no
17484
+ 16488 ExifData EXIF
17485
+ 16512 ExifData EXIF
17486
+ 0x00200080 ExifData EXIF
17441
17487
 
17442
17488
  =head2 Pentax Tags
17443
17489
 
@@ -20938,6 +20984,7 @@ still proprietary) Adobe format.
20938
20984
  MakerNoteCanon Canon
20939
20985
  MakerNoteCasio Casio
20940
20986
  MakerNoteCasio2 Casio Type2
20987
+ MakerNoteDJIInfo DJI Info
20941
20988
  MakerNoteDJI DJI
20942
20989
  MakerNoteFLIR FLIR
20943
20990
  MakerNoteFujiFilm FujiFilm
@@ -20978,6 +21025,7 @@ still proprietary) Adobe format.
20978
21025
  MakerNoteNintendo Nintendo
20979
21026
  MakerNoteOlympus Olympus
20980
21027
  MakerNoteOlympus2 Olympus
21028
+ MakerNoteOlympus3 Olympus
20981
21029
  MakerNoteLeica Panasonic
20982
21030
  MakerNoteLeica2 Panasonic Leica2
20983
21031
  MakerNoteLeica3 Panasonic Leica3
@@ -26737,9 +26785,9 @@ ExifTool extracts ID3 and Lyrics3 information from MP3, MPEG, WAV, AIFF,
26737
26785
  OGG, FLAC, APE, MPC and RealAudio files. ID3v2 tags which support multiple
26738
26786
  languages (eg. Comment and Lyrics) are extracted by specifying the tag name,
26739
26787
  followed by a dash ('-'), then a 3-character ISO 639-2 language code (eg.
26740
- "Comment-spa"). See L<http://www.id3.org/> for the official ID3
26741
- specification and L<http://www.loc.gov/standards/iso639-2/php/code_list.php>
26742
- for a list of ISO 639-2 language codes.
26788
+ "Comment-spa"). See L<https://id3.org/> for the official ID3 specification
26789
+ and L<http://www.loc.gov/standards/iso639-2/php/code_list.php> for a list of
26790
+ ISO 639-2 language codes.
26743
26791
 
26744
26792
  Tag Name Writable
26745
26793
  -------- --------
@@ -37010,6 +37058,7 @@ FileName.
37010
37058
  NewGUID ExifTool no
37011
37059
  Now ExifTool no
37012
37060
  OtherImage File no
37061
+ PageCount File no
37013
37062
  PreviewImage File yes
37014
37063
  PreviewPDF File no
37015
37064
  PreviewPNG File no
@@ -37477,6 +37526,7 @@ for more details.
37477
37526
  MakerNoteCasio
37478
37527
  MakerNoteCasio2
37479
37528
  MakerNoteDJI
37529
+ MakerNoteDJIInfo
37480
37530
  MakerNoteFLIR
37481
37531
  MakerNoteFujiFilm
37482
37532
  MakerNoteGE
@@ -37517,6 +37567,7 @@ for more details.
37517
37567
  MakerNoteNintendo
37518
37568
  MakerNoteOlympus
37519
37569
  MakerNoteOlympus2
37570
+ MakerNoteOlympus3
37520
37571
  MakerNoteLeica
37521
37572
  MakerNoteLeica2
37522
37573
  MakerNoteLeica3
@@ -1391,9 +1391,13 @@ sub WriteQuickTime($$$)
1391
1391
  $pos += $siz;
1392
1392
  }
1393
1393
  if ($msg) {
1394
- my $grp = $$et{CUR_WRITE_GROUP} || $parent;
1395
- $et->Error("$msg for $grp");
1396
- return $rtnErr;
1394
+ # (allow empty sample description for non-audio/video handler types, eg. 'url ', 'meta')
1395
+ if ($$et{HandlerType}) {
1396
+ my $grp = $$et{CUR_WRITE_GROUP} || $parent;
1397
+ $et->Error("$msg for $grp");
1398
+ return $rtnErr;
1399
+ }
1400
+ $flg = 1; # (this seems to be the case)
1397
1401
  }
1398
1402
  $$et{QtDataFlg} = $flg;
1399
1403
  }
@@ -298,6 +298,8 @@ sub SetPropertyPath($$;$$$$)
298
298
  $flatInfo = $$tagTablePtr{$flatID};
299
299
  if ($flatInfo) {
300
300
  return if $$flatInfo{PropertyPath};
301
+ } elsif (@$propList > 50) {
302
+ return; # avoid deep recursion
301
303
  } else {
302
304
  # flattened tag doesn't exist, so create it now
303
305
  # (could happen if we were just writing a structure)
@@ -858,7 +858,7 @@ TAG: foreach $tagInfo (@matchingTags) {
858
858
  ($shift or ($shiftable eq '0' and $options{DelValue})))
859
859
  {
860
860
  $err = "$wgrp1:$tag is not shiftable";
861
- $verbose > 2 and print $out "$err\n";
861
+ $verbose and print $out "$err\n";
862
862
  next;
863
863
  }
864
864
  }
@@ -3399,6 +3399,10 @@ NoLoop:
3399
3399
  }
3400
3400
  # save property list for verbose "adding" message unless this tag already exists
3401
3401
  $added = \@tagList unless $$tagTablePtr{$tagID};
3402
+ # if this is an empty structure, we must add a Struct field
3403
+ if (not length $val and $$attrs{'rdf:parseType'} and $$attrs{'rdf:parseType'} eq 'Resource') {
3404
+ $$tagInfo{Struct} = { STRUCT_NAME => 'XMP Unknown' };
3405
+ }
3402
3406
  AddTagToTable($tagTablePtr, $tagID, $tagInfo);
3403
3407
  last;
3404
3408
  }
@@ -3730,7 +3734,11 @@ sub ParseXMPElement($$$;$$$$)
3730
3734
  } elsif ($prop eq 'rdf:Description') {
3731
3735
  # remove unnecessary rdf:Description elements since parseType='Resource'
3732
3736
  # is more efficient (also necessary to make property path consistent)
3733
- $parseResource = 1 if grep /^rdf:Description$/, @$propList;
3737
+ if (grep /^rdf:Description$/, @$propList) {
3738
+ $parseResource = 1;
3739
+ # set parseType so we know this is a structure
3740
+ $attrs{'rdf:parseType'} = 'Resource';
3741
+ }
3734
3742
  } elsif ($prop eq 'xmp:xmpmeta') {
3735
3743
  # patch MicrosoftPhoto unconformity
3736
3744
  $prop = 'x:xmpmeta';
@@ -634,15 +634,14 @@ sub RestoreStruct($;$)
634
634
  local $_;
635
635
  my ($et, $keepFlat) = @_;
636
636
  my ($key, %structs, %var, %lists, $si, %listKeys, @siList);
637
- my $ex = $$et{TAG_EXTRA};
638
637
  my $valueHash = $$et{VALUE};
639
638
  my $fileOrder = $$et{FILE_ORDER};
640
639
  my $tagExtra = $$et{TAG_EXTRA};
641
640
  foreach $key (keys %{$$et{TAG_INFO}}) {
642
- $$ex{$key} or next;
643
- my $structProps = $$ex{$key}{Struct} or next;
644
- delete $$ex{$key}{Struct}; # (don't re-use)
645
- my $tagInfo = $$et{TAG_INFO}{$key}; # tagInfo for flattened tag
641
+ $$tagExtra{$key} or next;
642
+ my $structProps = $$tagExtra{$key}{Struct} or next;
643
+ delete $$tagExtra{$key}{Struct}; # (don't re-use)
644
+ my $tagInfo = $$et{TAG_INFO}{$key}; # tagInfo for flattened tag
646
645
  my $table = $$tagInfo{Table};
647
646
  my $prop = shift @$structProps;
648
647
  my $tag = $$prop[0];
@@ -829,8 +828,23 @@ sub RestoreStruct($;$)
829
828
  $var{$_} and push @siList, $_ foreach keys %structs;
830
829
  # save new structures in the same order they were read from file
831
830
  foreach $si (sort { $var{$a}[1] <=> $var{$b}[1] } @siList) {
832
- $key = $et->FoundTag($var{$si}[0], '');
833
- $$valueHash{$key} = $structs{$si};
831
+ # test to see if a tag for this structure has already been generated
832
+ # (this could happen only if one of the structures in a list was empty)
833
+ $key = $var{$si}[0]{Name};
834
+ my $found;
835
+ if ($$valueHash{$key}) {
836
+ my @keys = grep /^$key( \(\d+\))?$/, keys %$valueHash;
837
+ foreach $key (@keys) {
838
+ next unless $$valueHash{$key} eq $structs{$si};
839
+ $found = 1;
840
+ last;
841
+ }
842
+ }
843
+ unless ($found) {
844
+ # otherwise, generate a new tag for this structure
845
+ $key = $et->FoundTag($var{$si}[0], '');
846
+ $$valueHash{$key} = $structs{$si};
847
+ }
834
848
  $$fileOrder{$key} = $var{$si}[1];
835
849
  }
836
850
  }
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars);
31
31
 
32
- $VERSION = '12.39';
32
+ $VERSION = '12.42';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -320,7 +320,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
320
320
  FPF => ['FPF', 'FLIR Public image Format'],
321
321
  FPX => ['FPX', 'FlashPix'],
322
322
  GIF => ['GIF', 'Compuserve Graphics Interchange Format'],
323
- GPR => ['TIFF', 'GoPro RAW'],
323
+ GPR => ['TIFF', 'General Purpose RAW'], # https://gopro.github.io/gpr/
324
324
  GZ => 'GZIP',
325
325
  GZIP => ['GZIP', 'GNU ZIP compressed archive'],
326
326
  HDP => ['TIFF', 'Windows HD Photo'],
@@ -1799,6 +1799,7 @@ my %systemTagsNotes = (
1799
1799
  Writable => 1,
1800
1800
  Protected => 1,
1801
1801
  },
1802
+ PageCount => { Notes => 'the number of pages in a multi-page TIFF document' },
1802
1803
  );
1803
1804
 
1804
1805
  # tags defined by UserParam option (added at runtime)
@@ -5895,13 +5896,13 @@ sub GetUnixTime($;$)
5895
5896
  sub ConvertFileSize($)
5896
5897
  {
5897
5898
  my $val = shift;
5898
- $val < 2048 and return "$val bytes";
5899
- $val < 10240 and return sprintf('%.1f KiB', $val / 1024);
5900
- $val < 2097152 and return sprintf('%.0f KiB', $val / 1024);
5901
- $val < 10485760 and return sprintf('%.1f MiB', $val / 1048576);
5902
- $val < 2147483648 and return sprintf('%.0f MiB', $val / 1048576);
5903
- $val < 10737418240 and return sprintf('%.1f GiB', $val / 1073741824);
5904
- return sprintf('%.0f GiB', $val / 1073741824);
5899
+ $val < 2000 and return "$val bytes";
5900
+ $val < 10000 and return sprintf('%.1f kB', $val / 1000);
5901
+ $val < 2000000 and return sprintf('%.0f kB', $val / 1000);
5902
+ $val < 10000000 and return sprintf('%.1f MB', $val / 1000000);
5903
+ $val < 2000000000 and return sprintf('%.0f MB', $val / 1000000);
5904
+ $val < 10000000000 and return sprintf('%.1f GB', $val / 1000000000);
5905
+ return sprintf('%.0f GB', $val / 1000000000);
5905
5906
  }
5906
5907
 
5907
5908
  #------------------------------------------------------------------------------
@@ -7448,7 +7449,11 @@ sub DoProcessTIFF($$;$)
7448
7449
  # this looks like a BigTIFF image
7449
7450
  $raf->Seek(0);
7450
7451
  require Image::ExifTool::BigTIFF;
7451
- return 1 if Image::ExifTool::BigTIFF::ProcessBTF($self, $dirInfo);
7452
+ my $result = Image::ExifTool::BigTIFF::ProcessBTF($self, $dirInfo);
7453
+ if ($result) {
7454
+ $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7455
+ return 1;
7456
+ }
7452
7457
  } elsif ($identifier == 0x4f52 or $identifier == 0x5352) {
7453
7458
  # Olympus ORF image (set FileType now because base type is 'ORF')
7454
7459
  $self->SetFileType($fileType = 'ORF');
@@ -7541,6 +7546,9 @@ sub DoProcessTIFF($$;$)
7541
7546
  # override whatever FileType we set since we now know it is DNG
7542
7547
  $self->OverrideFileType($$self{TIFF_TYPE} = 'DNG');
7543
7548
  }
7549
+ if ($$self{TIFF_TYPE} eq 'TIFF') {
7550
+ $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7551
+ }
7544
7552
  return 1;
7545
7553
  }
7546
7554
  #
@@ -7678,8 +7686,8 @@ sub DoProcessTIFF($$;$)
7678
7686
  # check DNG version
7679
7687
  if ($$self{DNGVersion}) {
7680
7688
  my $ver = $$self{DNGVersion};
7681
- # currently support up to DNG version 1.5
7682
- unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.5) {
7689
+ # currently support up to DNG version 1.6
7690
+ unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.6) {
7683
7691
  $ver =~ tr/ /./;
7684
7692
  $self->Error("DNG Version $ver not yet tested", 1);
7685
7693
  }
@@ -593,12 +593,13 @@ different when copying tags with L</SetNewValuesFromFile>.
593
593
  =item DateFormat
594
594
 
595
595
  Format for printing date/time values. See C<strftime> in the L<POSIX>
596
- package for details about the format string. If date can not be converted,
597
- value is left unchanged unless the StrictDate option is set. Timezones are
598
- ignored. The inverse conversion (ie. when calling L</SetNewValue>) is
599
- performed only if POSIX::strptime or Time::Piece is installed. The default
600
- setting of undef causes date/time values to remain in standard EXIF format
601
- (similar to a DateFormat of "%Y:%m:%d %H:%M:%S").
596
+ package and L<https://exiftool.org/filename.html#codes> for details about
597
+ the format string. If the date can not be converted, the value is left
598
+ unchanged unless the StrictDate option is set. Timezones are ignored. The
599
+ inverse conversion (ie. when calling L</SetNewValue>) is performed only if
600
+ POSIX::strptime or Time::Piece is installed. The default setting of undef
601
+ causes date/time values to remain in standard EXIF format (similar to a
602
+ DateFormat of "%Y:%m:%d %H:%M:%S").
602
603
 
603
604
  =item Duplicates
604
605
 
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.39
3
+ Version: 12.42
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -21,10 +21,10 @@
21
21
  # 10) Copy zip archive to web servers.
22
22
  # 11) Update zip file version in link and text of html/index.html.
23
23
  #------------------------------------------------------------------------------
24
- -T exiftool-12.39
25
- #--info=FileVersion=12.3.9.0
26
- #--info=ProductVersion=12.3.9.0
27
- ##"--info=Build Date=2022:01:13 07:56:50-05:00"
24
+ -T exiftool-12.42
25
+ #--info=FileVersion=12.4.2.0
26
+ #--info=ProductVersion=12.4.2.0
27
+ ##"--info=Build Date=2022:06:01 14:21:21-04:00"
28
28
  ##"--info=Bundled Perl Version=ActivePerl 5.24.0"
29
29
  ##"--info=LegalCopyright=Copyright (c) 2003-2022, Phil Harvey"
30
30
  ##"--info=ProductName=ExifTool"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.pl",
3
- "version": "12.39.0",
3
+ "version": "12.42.0",
4
4
  "description": "Vendored perl ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/mceachen/exiftool-vendored.pl#readme",
@@ -30,9 +30,20 @@
30
30
  "test": "mocha",
31
31
  "update": "bash -c ./update.sh"
32
32
  },
33
+ "release-it": {
34
+ "hooks": {
35
+ "before:init": [
36
+ "yarn install",
37
+ "yarn test"
38
+ ]
39
+ },
40
+ "github": {
41
+ "release": true
42
+ }
43
+ },
33
44
  "devDependencies": {
34
- "mocha": "^9.1.4",
35
- "prettier": "^2.5.1",
45
+ "mocha": "^10.0.0",
46
+ "prettier": "^2.7.1",
36
47
  "rimraf": "^3.0.2"
37
48
  }
38
49
  }