exiftool-vendored.pl 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.
- package/bin/Changes +40 -2
- package/bin/MANIFEST +5 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +7 -7
- package/bin/exiftool +21 -16
- package/bin/lib/Image/ExifTool/Canon.pm +25 -1
- package/bin/lib/Image/ExifTool/DNG.pm +25 -2
- package/bin/lib/Image/ExifTool/Exif.pm +95 -13
- package/bin/lib/Image/ExifTool/FujiFilm.pm +17 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +16 -11
- package/bin/lib/Image/ExifTool/Nikon.pm +38 -11
- package/bin/lib/Image/ExifTool/PNG.pm +14 -7
- package/bin/lib/Image/ExifTool/Panasonic.pm +13 -9
- package/bin/lib/Image/ExifTool/Pentax.pm +6 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +2 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +62 -52
- package/bin/lib/Image/ExifTool/README +7 -3
- package/bin/lib/Image/ExifTool/RIFF.pm +8 -2
- package/bin/lib/Image/ExifTool/Sony.pm +66 -21
- package/bin/lib/Image/ExifTool/TagLookup.pm +6881 -6710
- package/bin/lib/Image/ExifTool/TagNames.pod +445 -32
- package/bin/lib/Image/ExifTool/Validate.pm +18 -16
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/lib/Image/ExifTool/WriteExif.pl +14 -4
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -0
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +22 -3
- package/bin/lib/Image/ExifTool/Writer.pl +52 -11
- package/bin/lib/Image/ExifTool/XISF.pm +185 -0
- package/bin/lib/Image/ExifTool/XMP.pm +67 -2
- package/bin/lib/Image/ExifTool/XMP2.pl +35 -0
- package/bin/lib/Image/ExifTool.pm +36 -15
- package/bin/lib/Image/ExifTool.pod +5 -5
- package/bin/perl-Image-ExifTool.spec +6 -6
- package/bin/pp_build_exe.args +5 -4
- 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.
|
|
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
|
|
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
|
|
197
|
-
7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
|
|
198
|
-
M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI
|
|
199
|
-
PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO
|
|
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
|
-
|
|
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
|
|
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.
|
|
8085
|
-
unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.
|
|
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 |
|
|
106
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
|
107
|
-
DLL r | INSP r/w | MXF r | RA r |
|
|
108
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Summary: perl module for image data extraction
|
|
2
2
|
Name: perl-Image-ExifTool
|
|
3
|
-
Version: 12.
|
|
3
|
+
Version: 12.69
|
|
4
4
|
Release: 1
|
|
5
5
|
License: Artistic/GPL
|
|
6
6
|
Group: Development/Libraries/Perl
|
|
@@ -59,11 +59,11 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
59
59
|
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
|
60
60
|
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
|
61
61
|
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
|
62
|
-
DIVX r | IIQ r/w | MRC r | QTIF r/w |
|
|
63
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
|
64
|
-
DLL r | INSP r/w | MXF r | RA r |
|
|
65
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
|
66
|
-
DOC r | INX r | NKSC r/w | RAM r |
|
|
62
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
|
|
63
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
|
|
64
|
+
DLL r | INSP r/w | MXF r | RA r | XLSX r
|
|
65
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
|
|
66
|
+
DOC r | INX r | NKSC r/w | RAM r | ZIP r
|
|
67
67
|
DOCX r | ISO r | NRW r/w | RAR r |
|
|
68
68
|
|
|
69
69
|
Meta Information
|
package/bin/pp_build_exe.args
CHANGED
|
@@ -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.
|
|
25
|
-
#--info=FileVersion=12.6.
|
|
26
|
-
#--info=ProductVersion=12.6.
|
|
27
|
-
##"--info=Build Date=2023:
|
|
24
|
+
-T exiftool-12.69
|
|
25
|
+
#--info=FileVersion=12.6.9.0
|
|
26
|
+
#--info=ProductVersion=12.6.9.0
|
|
27
|
+
##"--info=Build Date=2023:10:26 11:46:50-04:00"
|
|
28
28
|
##"--info=Bundled Perl Version=ActivePerl 5.24.0"
|
|
29
29
|
##"--info=LegalCopyright=Copyright (c) 2003-2023, Phil Harvey"
|
|
30
30
|
##"--info=ProductName=ExifTool"
|
|
@@ -253,6 +253,7 @@
|
|
|
253
253
|
-M Image::ExifTool::Validate
|
|
254
254
|
-M Image::ExifTool::VCard
|
|
255
255
|
-M Image::ExifTool::Vorbis
|
|
256
|
+
-M Image::ExifTool::XISF
|
|
256
257
|
-M Image::ExifTool::WPG
|
|
257
258
|
-M Image::ExifTool::WTV
|
|
258
259
|
-M Image::ExifTool::XMP
|