exiftool-vendored.exe 12.67.0 → 12.69.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 (31) hide show
  1. package/bin/exiftool_files/Changes +40 -2
  2. package/bin/exiftool_files/README +7 -7
  3. package/bin/exiftool_files/exiftool.pl +26 -20
  4. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +25 -1
  5. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +25 -2
  6. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +95 -13
  7. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +17 -1
  8. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +16 -11
  9. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +38 -11
  10. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +14 -7
  11. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +13 -9
  12. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +6 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +2 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +62 -52
  15. package/bin/exiftool_files/lib/Image/ExifTool/README +7 -3
  16. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +8 -2
  17. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +66 -21
  18. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6881 -6710
  19. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +445 -32
  20. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +18 -16
  21. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
  22. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +14 -4
  23. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +2 -0
  24. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +22 -3
  25. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +52 -11
  26. package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +185 -0
  27. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +67 -2
  28. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +35 -0
  29. package/bin/exiftool_files/lib/Image/ExifTool.pm +36 -15
  30. package/bin/exiftool_files/lib/Image/ExifTool.pod +5 -5
  31. package/package.json +1 -1
@@ -1873,6 +1873,10 @@ my %sSubVersion = (
1873
1873
  ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
1874
1874
  ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
1875
1875
  },
1876
+ HdrPlusMakernote => {
1877
+ ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
1878
+ ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
1879
+ },
1876
1880
  );
1877
1881
 
1878
1882
  # Google creations namespace (ref PH)
@@ -2037,6 +2041,37 @@ my %sSubVersion = (
2037
2041
  },
2038
2042
  );
2039
2043
 
2044
+ # Google container tags (ref https://developer.android.com/guide/topics/media/platform/hdr-image-format)
2045
+ # NOTE: Not included because these namespace prefixes conflict with Google's depth-map Device tags!
2046
+ # (see ../pics/GooglePixel8Pro.jpg sample image)
2047
+ # %Image::ExifTool::XMP::Container = (
2048
+ # %xmpTableDefaults,
2049
+ # GROUPS => { 1 => 'XMP-Container', 2 => 'Image' },
2050
+ # NAMESPACE => 'Container',
2051
+ # NOTES => 'Google Container namespace.',
2052
+ # Directory => {
2053
+ # Name => 'ContainerDirectory',
2054
+ # FlatName => 'Directory',
2055
+ # List => 'Seq',
2056
+ # Struct => {
2057
+ # STRUCT_NAME => 'Directory',
2058
+ # Item => {
2059
+ # Namespace => 'Container',
2060
+ # Struct => {
2061
+ # STRUCT_NAME => 'Item',
2062
+ # NAMESPACE => { Item => 'http://ns.google.com/photos/1.0/container/item/'},
2063
+ # Mime => { },
2064
+ # Semantic => { },
2065
+ # Length => { Writable => 'integer' },
2066
+ # Label => { },
2067
+ # Padding => { Writable => 'integer' },
2068
+ # URI => { },
2069
+ # },
2070
+ # },
2071
+ # },
2072
+ # },
2073
+ # );
2074
+
2040
2075
  # Getty Images namespace (ref PH)
2041
2076
  %Image::ExifTool::XMP::GettyImages = (
2042
2077
  %xmpTableDefaults,
@@ -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.67';
32
+ $VERSION = '12.69';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -149,8 +149,8 @@ sub ReadValue($$$;$$$);
149
149
  FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC MPEG::Audio
150
150
  MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile QuickTime::Stream
151
151
  QuickTime::Tags360Fly Matroska Matroska::StdTag MOI MXF DV Flash Flash::FLV
152
- Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE
153
- JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
152
+ Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS XISF
153
+ MIE JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
154
154
  EXE::PEString EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard
155
155
  Text VCard::VCalendar VCard::VNote RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR
156
156
  ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF FLIR::FPF MacOS MacOS::MDItem
@@ -193,10 +193,11 @@ $defaultLang = 'en'; # default language
193
193
  @fileTypes = qw(JPEG EXV CRW DR4 TIFF GIF MRW RAF X3F JP2 PNG MIE MIFF PS PDF
194
194
  PSD XMP BMP WPG BPG PPM RIFF AIFF ASF MOV MPEG Real SWF PSP FLV
195
195
  OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
196
- LFP HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR
197
- 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC
198
- M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI R3D AA
199
- PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO TXT);
196
+ LFP HTML VRD RTF FITS XISF XCF DSS QTIF FPX PICT ZIP GZIP PLIST
197
+ RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
198
+ RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI
199
+ R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO
200
+ TXT);
200
201
 
201
202
  # file types that we can write (edit)
202
203
  my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
@@ -545,6 +546,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
545
546
  X3F => ['X3F', 'Sigma RAW format'],
546
547
  XCF => ['XCF', 'GIMP native image format'],
547
548
  XHTML=> ['HTML', 'Extensible HyperText Markup Language'],
549
+ XISF => ['XISF', 'Extensible Image Serialization Format'],
548
550
  XLA => ['FPX', 'Microsoft Excel Add-in'],
549
551
  XLAM => [['ZIP','FPX'], 'Office Open XML Spreadsheet Add-in Macro-enabled'],
550
552
  XLS => ['FPX', 'Microsoft Excel Spreadsheet'],
@@ -798,6 +800,7 @@ my %fileDescription = (
798
800
  WTV => 'video/x-ms-wtv',
799
801
  X3F => 'image/x-sigma-x3f',
800
802
  XCF => 'image/x-xcf',
803
+ XISF => 'image/x-xisf',
801
804
  XLA => 'application/vnd.ms-excel',
802
805
  XLAM => 'application/vnd.ms-excel.addin.macroEnabled.12',
803
806
  XLS => 'application/vnd.ms-excel',
@@ -994,6 +997,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
994
997
  WTV => '\xb7\xd8\x00\x20\x37\x49\xda\x11\xa6\x4e\x00\x07\xe9\x5e\xad\x8d',
995
998
  X3F => 'FOVb',
996
999
  XCF => 'gimp xcf ',
1000
+ XISF => 'XISF0100',
997
1001
  XMP => '\0{0,3}(\xfe\xff|\xff\xfe|\xef\xbb\xbf)?\0{0,3}\s*<',
998
1002
  ZIP => 'PK\x03\x04',
999
1003
  );
@@ -1581,6 +1585,7 @@ my %systemTagsNotes = (
1581
1585
  ImageHeight => { Notes => 'the height of the image in number of pixels' },
1582
1586
  XResolution => { Notes => 'the horizontal pixel resolution' },
1583
1587
  YResolution => { Notes => 'the vertical pixel resolution' },
1588
+ NumPlanes => { Notes => 'number of color planes' },
1584
1589
  MaxVal => { Notes => 'maximum pixel value in PPM or PGM image' },
1585
1590
  EXIF => {
1586
1591
  Notes => q{
@@ -1844,7 +1849,7 @@ my %systemTagsNotes = (
1844
1849
  Geotime => {
1845
1850
  Writable => 1,
1846
1851
  WriteOnly => 1,
1847
- AllowGroup => '(exif|gps|xmp|xmp-exif)',
1852
+ AllowGroup => '(exif|gps|xmp|xmp-exif|quicktime|keys|itemlist|userdata)',
1848
1853
  Notes => q{
1849
1854
  this write-only tag is used to define a date/time for interpolating a
1850
1855
  position in the GPS track specified by the Geotag tag. Writing this tag
@@ -7475,7 +7480,8 @@ sub ProcessJPEG($$)
7475
7480
  my $hdr = $1;
7476
7481
  $dumpType = 'JUMBF';
7477
7482
  SetByteOrder('MM');
7478
- my $seq = Get32u($segDataPt, 4) - 1; # (start from 0)
7483
+ # (sequence should start from 1, but some software incorrectly writes 0)
7484
+ my $seq = Get32u($segDataPt, 4);
7479
7485
  my $len = Get32u($segDataPt, 8);
7480
7486
  my $type = substr($$segDataPt, 12, 4);
7481
7487
  my $hdrLen;
@@ -7485,14 +7491,13 @@ sub ProcessJPEG($$)
7485
7491
  } else {
7486
7492
  $hdrLen = 8;
7487
7493
  }
7488
- $jumbfChunk{$type} or $jumbfChunk{$type} = [ ];
7494
+ $jumbfChunk{$type} or $jumbfChunk{$type} = [ '' ];
7489
7495
  if ($len < $hdrLen) {
7490
7496
  $self->Warn('Invalid JUMBF segment');
7491
- } elsif ($seq < 0) {
7492
- $self->Warn('Invalid JUMBF sequence number');
7493
- } elsif (defined $jumbfChunk{$type}[$seq]) {
7497
+ } elsif (defined $jumbfChunk{$type}[$seq] and length $jumbfChunk{$type}[$seq]) {
7494
7498
  $self->Warn('Duplicate JUMBF sequence number');
7495
7499
  } else {
7500
+ $seq or $self->Warn('Incorrect JUMBF sequence numbering (should start from 0, not 1)');
7496
7501
  # add to list of JUMBF chunks
7497
7502
  $jumbfChunk{$type}[$seq] = substr($$segDataPt, 8 + $hdrLen);
7498
7503
  # check to see if we have a complete JUMBF box
@@ -7716,6 +7721,19 @@ sub ProcessTIFF($$;$)
7716
7721
  return $rtnVal;
7717
7722
  }
7718
7723
 
7724
+ #------------------------------------------------------------------------------
7725
+ # Process TIFF as a sub-document
7726
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) optional tag table ref
7727
+ # Returns: 1 if this looked like a valid EXIF block, 0 otherwise, or -1 on write error
7728
+ sub ProcessSubTIFF($$;$)
7729
+ {
7730
+ my ($self, $dirInfo, $tagTablePtr) = @_;
7731
+ $$self{DOC_NUM} = ++$$self{DOC_COUNT};
7732
+ my $rtnVal = $self->ProcessTIFF($dirInfo, $tagTablePtr);
7733
+ delete $$self{DOC_NUM};
7734
+ return $rtnVal;
7735
+ }
7736
+
7719
7737
  #------------------------------------------------------------------------------
7720
7738
  # Process TIFF data
7721
7739
  # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) optional tag table ref
@@ -7940,6 +7958,9 @@ sub DoProcessTIFF($$;$)
7940
7958
  }
7941
7959
  if ($$self{TIFF_TYPE} eq 'TIFF') {
7942
7960
  $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7961
+ } elsif ($$self{TIFF_TYPE} eq 'NRW' and $$self{VALUE}{NEFLinearizationTable}) {
7962
+ # fix NEF type if misidentified as NRW
7963
+ $self->OverrideFileType($$self{TIFF_TYPE} = 'NEF');
7943
7964
  }
7944
7965
  if ($$self{ImageDataHash} and $$self{A100DataOffset} and $raf->Seek($$self{A100DataOffset},0)) {
7945
7966
  $self->ImageDataHash($raf, undef, 'A100');
@@ -8081,8 +8102,8 @@ sub DoProcessTIFF($$;$)
8081
8102
  # check DNG version
8082
8103
  if ($$self{DNGVersion}) {
8083
8104
  my $ver = $$self{DNGVersion};
8084
- # currently support up to DNG version 1.6
8085
- unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.6) {
8105
+ # currently support up to DNG version 1.7
8106
+ unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.7) {
8086
8107
  $ver =~ tr/ /./;
8087
8108
  $self->Error("DNG Version $ver not yet tested", 1);
8088
8109
  }
@@ -102,11 +102,11 @@ supported by ExifTool (r = read, w = write, c = create):
102
102
  DCP r/w | ICO r | MPG r | PSB r/w | WV r
103
103
  DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
104
104
  DFONT r | IDML r | MQV r/w | PSP r | XCF r
105
- DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
106
- DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
107
- DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
108
- DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
109
- DOC r | INX r | NKSC r/w | RAM r |
105
+ DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
106
+ DJVU r | IND r/w | MRW r/w | R3D r | XLS r
107
+ DLL r | INSP r/w | MXF r | RA r | XLSX r
108
+ DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
109
+ DOC r | INX r | NKSC r/w | RAM r | ZIP r
110
110
  DOCX r | ISO r | NRW r/w | RAR r |
111
111
 
112
112
  Meta Information
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.exe",
3
- "version": "12.67.0",
3
+ "version": "12.69.0",
4
4
  "description": "Vendored win32 ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/mceachen/exiftool-vendored.exe#readme",