exiftool_vendored 12.64.1 → 12.65.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.
- checksums.yaml +4 -4
- data/bin/Changes +26 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +22 -15
- data/bin/lib/Image/ExifTool/Apple.pm +9 -5
- data/bin/lib/Image/ExifTool/BigTIFF.pm +8 -1
- data/bin/lib/Image/ExifTool/Canon.pm +3 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +8 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +561 -67
- data/bin/lib/Image/ExifTool/NikonCustom.pm +862 -61
- data/bin/lib/Image/ExifTool/PDF.pm +18 -8
- data/bin/lib/Image/ExifTool/QuickTime.pm +18 -10
- data/bin/lib/Image/ExifTool/Samsung.pm +227 -227
- data/bin/lib/Image/ExifTool/Sony.pm +128 -24
- data/bin/lib/Image/ExifTool/TagLookup.pm +4607 -4591
- data/bin/lib/Image/ExifTool/TagNames.pod +465 -21
- data/bin/lib/Image/ExifTool/Writer.pl +7 -2
- data/bin/lib/Image/ExifTool.pm +112 -92
- data/bin/lib/Image/ExifTool.pod +26 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -184
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 043102c6d2f82c4799b2885cbd9fdd7e9dfac5f1fe0450dea8bc2392a995dca3
|
4
|
+
data.tar.gz: f188b33293746a02b5b8814a5b566cfefebb9311146d75a383522686424dc547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af7e7099dbf145f6ad9000691f208cd15bac17f74b5051e5e3273837f3d6d09b121171d3b593029bca036b6b58b23dddc55b962ddf9b2d7e0638a9d926de5400
|
7
|
+
data.tar.gz: f92aae3415a5d73e8c449c466584798d66941ec0c28d97ebe1e88c0d917cecfce642c7bf2b20608fd425ddd412ff2b2a3659da97519a413903524fc99d98da73
|
data/bin/Changes
CHANGED
@@ -7,6 +7,32 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 12.60. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Aug. 10, 2023 - Version 12.65
|
11
|
+
|
12
|
+
- Added a new QuickTime Keys tag
|
13
|
+
- Added a new CanonModelID (thanks Laurent Clevy)
|
14
|
+
- Added a new Canon LensType (thanks Norbert Wasser)
|
15
|
+
- Added number in brackets to converted Samsung MCCData value
|
16
|
+
- Decode a number of new Sony tags (thanks Jos Roost)
|
17
|
+
- Decode a few new FlashPix tags (github #217)
|
18
|
+
- Improved decoding of Nikon Z9 firmware 4.0 tags (thanks Warren Hatch)
|
19
|
+
- Improved parsing of PDF:Keywords to support semicolon-separated lists
|
20
|
+
- Enhanced -api option to show list of available options if no argument is
|
21
|
+
provided
|
22
|
+
- Lowered priority of IFD1 tags in ARW images so IFD0/SubIFD take precedence
|
23
|
+
- Changed QuickTime tag names for atID (AlbumTitleID to ArtistID) and plID
|
24
|
+
(PlayListID to AlbumID) (github issue #216), and added cmID (ComposerID)
|
25
|
+
- Changed Apple:MediaGroupUUID tag name back to ContentIdentifier
|
26
|
+
- Patched the -d option to handle the %s format code internally when writing
|
27
|
+
(avoids problems due to inconsistent behaviour of this format code in the
|
28
|
+
strptime function on different systems)
|
29
|
+
- Patched patch of version 12.32 to restore ability to read from named pipes
|
30
|
+
- Fixed bug which could cause a hang when processing a corrupt BigTIFF image
|
31
|
+
- Fixed document number for auxiliary image metadata in HEIC files
|
32
|
+
- Fixed misspelt Apple tag name (thanks Neal Krawetz)
|
33
|
+
- API Changes:
|
34
|
+
- Added AvailableOptions method
|
35
|
+
|
10
36
|
June 28, 2023 - Version 12.64
|
11
37
|
|
12
38
|
- Added a new Sony LensType (thanks Jos Roost)
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
108
108
|
terminal window to extract and run ExifTool:
|
109
109
|
|
110
110
|
cd ~/Desktop
|
111
|
-
gzip -dc Image-ExifTool-12.
|
112
|
-
cd Image-ExifTool-12.
|
111
|
+
gzip -dc Image-ExifTool-12.65.tar.gz | tar -xf -
|
112
|
+
cd Image-ExifTool-12.65
|
113
113
|
./exiftool t/images/ExifTool.jpg
|
114
114
|
|
115
115
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -11,7 +11,7 @@ use strict;
|
|
11
11
|
use warnings;
|
12
12
|
require 5.004;
|
13
13
|
|
14
|
-
my $version = '12.
|
14
|
+
my $version = '12.65';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
my $exePath;
|
@@ -814,11 +814,17 @@ for (;;) {
|
|
814
814
|
/^(-?)(a|duplicates)$/i and $mt->Options(Duplicates => ($1 ? 0 : 1)), next;
|
815
815
|
if ($a eq 'api') {
|
816
816
|
my $opt = shift;
|
817
|
-
defined $opt
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
817
|
+
if (defined $opt and length $opt) {
|
818
|
+
my $val = ($opt =~ s/=(.*)//s) ? $1 : 1;
|
819
|
+
# empty string means an undefined value unless ^= is used
|
820
|
+
$val = undef unless $opt =~ s/\^$// or length $val;
|
821
|
+
$mt->Options($opt => $val);
|
822
|
+
} else {
|
823
|
+
print "Available API Options:\n";
|
824
|
+
my $availableOptions = Image::ExifTool::AvailableOptions();
|
825
|
+
printf(" %-17s - %s\n", $$_[0], $$_[2]) foreach @$availableOptions;
|
826
|
+
$helped = 1;
|
827
|
+
}
|
822
828
|
next;
|
823
829
|
}
|
824
830
|
/^arg(s|format)$/i and $argFormat = 1, next;
|
@@ -2874,7 +2880,7 @@ sub SetImageInfo($$$)
|
|
2874
2880
|
}
|
2875
2881
|
unless ($isStdout) {
|
2876
2882
|
$outfile = NextUnusedFilename($outfile);
|
2877
|
-
if ($et->Exists($outfile) and not $doSetFileName) {
|
2883
|
+
if ($et->Exists($outfile, 1) and not $doSetFileName) {
|
2878
2884
|
Warn "Error: '${outfile}' already exists - $infile\n";
|
2879
2885
|
EFile($infile);
|
2880
2886
|
++$countBadWr;
|
@@ -3005,7 +3011,7 @@ sub SetImageInfo($$$)
|
|
3005
3011
|
$outfile = Image::ExifTool::GetNewFileName(defined $outfile ? $outfile : $file, $newDir);
|
3006
3012
|
}
|
3007
3013
|
$outfile = NextUnusedFilename($outfile, $infile);
|
3008
|
-
if ($et->Exists($outfile)) {
|
3014
|
+
if ($et->Exists($outfile, 1)) {
|
3009
3015
|
if ($infile eq $outfile) {
|
3010
3016
|
undef $outfile; # not changing the file name after all
|
3011
3017
|
# (allow for case-insensitive filesystems)
|
@@ -4233,7 +4239,7 @@ sub NextUnusedFilename($;$)
|
|
4233
4239
|
}
|
4234
4240
|
$filename .= substr($fmt, $pos); # add rest of file name
|
4235
4241
|
# return now with filename unless file exists
|
4236
|
-
return $filename unless ($mt->Exists($filename) and not defined $usedFileName{$filename}) or $usedFileName{$filename};
|
4242
|
+
return $filename unless ($mt->Exists($filename, 1) and not defined $usedFileName{$filename}) or $usedFileName{$filename};
|
4237
4243
|
if (defined $okfile) {
|
4238
4244
|
return $filename if $filename eq $okfile;
|
4239
4245
|
my ($fn, $ok) = (AbsPath($filename), AbsPath($okfile));
|
@@ -4313,7 +4319,7 @@ sub OpenOutputFile($;@)
|
|
4313
4319
|
$outfile .= $textOut;
|
4314
4320
|
}
|
4315
4321
|
my $mode = '>';
|
4316
|
-
if ($mt->Exists($outfile)) {
|
4322
|
+
if ($mt->Exists($outfile, 1)) {
|
4317
4323
|
unless ($textOverwrite) {
|
4318
4324
|
Warn "Output file $outfile already exists for $file\n";
|
4319
4325
|
return ();
|
@@ -5576,7 +5582,7 @@ with this command:
|
|
5576
5582
|
|
5577
5583
|
produces output like this:
|
5578
5584
|
|
5579
|
-
-- Generated by ExifTool 12.
|
5585
|
+
-- Generated by ExifTool 12.65 --
|
5580
5586
|
File: a.jpg - 2003:10:31 15:44:19
|
5581
5587
|
(f/5.6, 1/60s, ISO 100)
|
5582
5588
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6516,13 +6522,14 @@ load exiftool for each invocation.
|
|
6516
6522
|
|
6517
6523
|
=over 5
|
6518
6524
|
|
6519
|
-
=item B<-api> I<OPT[[^]=[VAL]]>
|
6525
|
+
=item B<-api> [I<OPT[[^]=[VAL]]>]
|
6520
6526
|
|
6521
6527
|
Set ExifTool API option. I<OPT> is an API option name. The option value is
|
6522
6528
|
set to 1 if I<=VAL> is omitted. If I<VAL> is omitted, the option value is
|
6523
|
-
set to undef if C<=> is used, or an empty string with C<^=>.
|
6524
|
-
|
6525
|
-
|
6529
|
+
set to undef if C<=> is used, or an empty string with C<^=>. If I<OPT> is
|
6530
|
+
not specified a list of available options is returned. See
|
6531
|
+
L<Image::ExifTool Options|Image::ExifTool/Options> for option details. This
|
6532
|
+
overrides API options set via the config file.
|
6526
6533
|
|
6527
6534
|
=item B<-common_args>
|
6528
6535
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
16
16
|
use Image::ExifTool::Exif;
|
17
17
|
use Image::ExifTool::PLIST;
|
18
18
|
|
19
|
-
$VERSION = '1.
|
19
|
+
$VERSION = '1.10';
|
20
20
|
|
21
21
|
sub ConvertPLIST($$);
|
22
22
|
|
@@ -110,9 +110,13 @@ sub ConvertPLIST($$);
|
|
110
110
|
},
|
111
111
|
# 0x0010 - int32s: 1 (SphereStatus, ref 2)
|
112
112
|
0x0011 => { # (if defined, there is a live photo associated with the video, #forum13565) (AssetIdentifier, ref 2)
|
113
|
-
Name => '
|
114
|
-
|
113
|
+
Name => 'ContentIdentifier',
|
114
|
+
Notes => 'called MediaGroupUUID when it appears as an XAttr',
|
115
|
+
# - originally called ContentIdentifier, forum8750
|
116
|
+
# - changed in 12.19 to MediaGroupUUID, NealKrawetz private communication
|
117
|
+
# - changed back to ContentIdentifier since Apple writes this to Keys content.identifier (forum14874)
|
115
118
|
Writable => 'string',
|
119
|
+
|
116
120
|
},
|
117
121
|
# 0x0012 - (QRMOutputType, ref 2)
|
118
122
|
# 0x0013 - (SphereExternalForceOffset, ref 2)
|
@@ -127,7 +131,7 @@ sub ConvertPLIST($$);
|
|
127
131
|
Writable => 'string',
|
128
132
|
},
|
129
133
|
# 0x0016 - string[29]: "AXZ6pMTOh2L+acSh4Kg630XCScoO\0" (PhotosOriginatingSignature, ref 2)
|
130
|
-
0x0017 => { #forum13565 (only valid if MediaGroupUUID exists) (StillImageCaptureFlags, ref 2)
|
134
|
+
0x0017 => { #forum13565 (only valid if MediaGroupUUID/ContentIdentifier exists) (StillImageCaptureFlags, ref 2)
|
131
135
|
Name => 'LivePhotoVideoIndex',
|
132
136
|
Notes => 'divide by RunTimeScale to get time in seconds',
|
133
137
|
},
|
@@ -153,7 +157,7 @@ sub ConvertPLIST($$);
|
|
153
157
|
# 0x001e - (OriginatingAppID, ref 2)
|
154
158
|
# 0x001f - int32s: 0,1 (PhotosAppFeatureFlags, ref 2)
|
155
159
|
0x0020 => { # (ImageCaptureRequestIdentifier, ref 2)
|
156
|
-
Name => '
|
160
|
+
Name => 'ImageCaptureRequestID',
|
157
161
|
Writable => 'string',
|
158
162
|
Unknown => 1,
|
159
163
|
},
|
@@ -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.
|
18
|
+
$VERSION = '1.08';
|
19
19
|
|
20
20
|
my $maxOffset = 0x7fffffff; # currently supported maximum data offset/size
|
21
21
|
|
@@ -216,6 +216,13 @@ sub ProcessBigIFD($$$)
|
|
216
216
|
$dirStart = Image::ExifTool::Get64u(\$nextIFD, 0);
|
217
217
|
$dirStart or last;
|
218
218
|
$offName = $nextOffName;
|
219
|
+
# protect against infinite loop
|
220
|
+
if ($$et{PROCESSED}{$dirStart}) {
|
221
|
+
$et->Warn("$dirName pointer references previous $$et{PROCESSED}{$dirStart} directory");
|
222
|
+
last;
|
223
|
+
} else {
|
224
|
+
$$et{PROCESSED}{$dirStart} = $dirName;
|
225
|
+
}
|
219
226
|
}
|
220
227
|
return 1;
|
221
228
|
}
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.67';
|
92
92
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -476,6 +476,7 @@ $VERSION = '4.66';
|
|
476
476
|
255.1 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #50
|
477
477
|
255.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD', #exiv issue 1202 (A009)
|
478
478
|
255.3 => 'Yongnuo YN 50mm f/1.8', #50
|
479
|
+
313 => 'Canon RF 28mm F2.8 STM', #42
|
479
480
|
368 => 'Sigma 14-24mm f/2.8 DG HSM | A or other Sigma Lens', #IB (A018)
|
480
481
|
368.1 => 'Sigma 20mm f/1.4 DG HSM | A', #50 (newer firmware)
|
481
482
|
368.2 => 'Sigma 50mm f/1.4 DG HSM | A', #50
|
@@ -983,6 +984,7 @@ $VERSION = '4.66';
|
|
983
984
|
0x80000480 => 'EOS R50', #42
|
984
985
|
0x80000481 => 'EOS R6 Mark II', #42
|
985
986
|
0x80000487 => 'EOS R8', #42
|
987
|
+
0x80000491 => 'PowerShot V10', #25
|
986
988
|
0x80000520 => 'EOS D2000C', #IB
|
987
989
|
0x80000560 => 'EOS D6000C', #PH (guess)
|
988
990
|
);
|
@@ -11,6 +11,7 @@
|
|
11
11
|
# 4) http://msdn.microsoft.com/en-us/library/aa380374.aspx
|
12
12
|
# 5) http://www.cpan.org/modules/by-authors/id/H/HC/HCARVEY/File-MSWord-0.1.zip
|
13
13
|
# 6) https://msdn.microsoft.com/en-us/library/cc313153(v=office.12).aspx
|
14
|
+
# 7) https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-oshared/3ef02e83-afef-4b6c-9585-c109edd24e07
|
14
15
|
#------------------------------------------------------------------------------
|
15
16
|
|
16
17
|
package Image::ExifTool::FlashPix;
|
@@ -21,7 +22,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
21
22
|
use Image::ExifTool::Exif;
|
22
23
|
use Image::ExifTool::ASF; # for GetGUID()
|
23
24
|
|
24
|
-
$VERSION = '1.
|
25
|
+
$VERSION = '1.46';
|
25
26
|
|
26
27
|
sub ProcessFPX($$);
|
27
28
|
sub ProcessFPXR($$$);
|
@@ -587,6 +588,7 @@ my %fpxFileType = (
|
|
587
588
|
However, ExifTool will also extract any other information found in the
|
588
589
|
UserDefined properties.
|
589
590
|
},
|
591
|
+
# 0x01 => 'CodePage', #7
|
590
592
|
0x02 => 'Category',
|
591
593
|
0x03 => 'PresentationTarget',
|
592
594
|
0x04 => 'Bytes',
|
@@ -631,12 +633,16 @@ my %fpxFileType = (
|
|
631
633
|
Name => 'AppVersion',
|
632
634
|
ValueConv => 'sprintf("%d.%.4d",$val >> 16, $val & 0xffff)',
|
633
635
|
},
|
634
|
-
# 0x18 ? seen -1
|
636
|
+
# 0x18 ? seen -1 (DigitalSignature, VtDigSig format, ref 7)
|
635
637
|
# 0x19 ? seen 0
|
636
638
|
# 0x1a ? seen 0
|
637
639
|
# 0x1b ? seen 0
|
638
640
|
# 0x1c ? seen 0,1
|
639
641
|
# 0x1d ? seen 1
|
642
|
+
0x1a => 'ContentType', #7, github#217
|
643
|
+
0x1b => 'ContentStatus', #7, github#217
|
644
|
+
0x1c => 'Language', #7, github#217
|
645
|
+
0x1d => 'DocVersion', #7, github#217
|
640
646
|
# 0x1e ? seen 1
|
641
647
|
# 0x1f ? seen 1,5
|
642
648
|
# 0x20 ? seen 0,5
|