exiftool_vendored 13.53.0 → 13.57.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 +52 -13
- data/bin/MANIFEST +7 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +49 -49
- data/bin/config_files/local_time.config +27 -3
- data/bin/exiftool +78 -64
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
- data/bin/lib/Image/ExifTool/Canon.pm +14 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +4211 -13
- data/bin/lib/Image/ExifTool/DJI.pm +49 -7
- data/bin/lib/Image/ExifTool/Exif.pm +97 -2
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/GE.pm +2 -0
- data/bin/lib/Image/ExifTool/GM.pm +2 -3
- data/bin/lib/Image/ExifTool/Garmin.pm +9678 -0
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +100 -12
- data/bin/lib/Image/ExifTool/Google.pm +2 -0
- data/bin/lib/Image/ExifTool/InfiRay.pm +2 -0
- data/bin/lib/Image/ExifTool/LNK.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +15 -4
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -0
- data/bin/lib/Image/ExifTool/Pentax.pm +3 -1
- data/bin/lib/Image/ExifTool/Protobuf.pm +2 -0
- data/bin/lib/Image/ExifTool/QuickTime.pm +39 -6
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +37 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -0
- data/bin/lib/Image/ExifTool/Reconyx.pm +2 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +24 -3
- data/bin/lib/Image/ExifTool/TagNames.pod +5376 -20
- data/bin/lib/Image/ExifTool/Validate.pm +10 -1
- data/bin/lib/Image/ExifTool/Writer.pl +12 -4
- data/bin/lib/Image/ExifTool.pm +27 -13
- data/bin/lib/Image/ExifTool.pod +107 -90
- data/bin/perl-Image-ExifTool.spec +47 -47
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -1
data/bin/exiftool
CHANGED
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '13.
|
|
14
|
+
my $version = '13.57';
|
|
15
15
|
|
|
16
16
|
$^W = 1; # enable global warnings
|
|
17
17
|
|
|
@@ -309,8 +309,8 @@ my @recommends = qw(
|
|
|
309
309
|
POSIX::strptime
|
|
310
310
|
Time::Local
|
|
311
311
|
Unicode::LineBreak
|
|
312
|
-
Compress::Raw::Lzma
|
|
313
312
|
File::StatX
|
|
313
|
+
Compress::Raw::Lzma
|
|
314
314
|
IO::Compress::RawDeflate
|
|
315
315
|
IO::Uncompress::RawInflate
|
|
316
316
|
IO::Compress::Brotli
|
|
@@ -880,6 +880,11 @@ for (;;) {
|
|
|
880
880
|
$val = undef unless $opt =~ s/\^$// or length $val;
|
|
881
881
|
$mt->Options($opt => $val);
|
|
882
882
|
} else {
|
|
883
|
+
unless ($pass) {
|
|
884
|
+
push @nextPass, '-api';
|
|
885
|
+
push @nextPass, $opt if defined $opt;
|
|
886
|
+
next;
|
|
887
|
+
}
|
|
883
888
|
print "Available API Options:\n";
|
|
884
889
|
my $availableOptions = Image::ExifTool::AvailableOptions();
|
|
885
890
|
$$_[3] or printf(" %-17s - %s\n", $$_[0], $$_[2]) foreach @$availableOptions;
|
|
@@ -902,7 +907,11 @@ for (;;) {
|
|
|
902
907
|
if ($a eq 'charset') {
|
|
903
908
|
my $charset = (@ARGV and $ARGV[0] !~ /^(-|\xe2\x88\x92)/) ? shift : undef;
|
|
904
909
|
if (not $charset) {
|
|
905
|
-
$pass
|
|
910
|
+
unless ($pass) {
|
|
911
|
+
push @nextPass, '-charset' ;
|
|
912
|
+
push @nextPass, $charset if defined $charset;
|
|
913
|
+
next;
|
|
914
|
+
}
|
|
906
915
|
my %charsets;
|
|
907
916
|
$charsets{$_} = 1 foreach values %Image::ExifTool::charsetName;
|
|
908
917
|
PrintTagList('Available character sets', sort keys %charsets);
|
|
@@ -1144,8 +1153,10 @@ for (;;) {
|
|
|
1144
1153
|
$langOpt =~ tr/-A-Z/_a-z/;
|
|
1145
1154
|
$mt->Options(Lang => $langOpt);
|
|
1146
1155
|
next if $langOpt eq $mt->Options('Lang');
|
|
1147
|
-
}
|
|
1148
|
-
|
|
1156
|
+
} elsif (not $pass) {
|
|
1157
|
+
push @nextPass, '-lang';
|
|
1158
|
+
push @nextPass, $langOpt if defined $langOpt;
|
|
1159
|
+
next;
|
|
1149
1160
|
}
|
|
1150
1161
|
my $langs = $quiet ? '' : "Available languages:\n";
|
|
1151
1162
|
$langs .= " $_ - $Image::ExifTool::langName{$_}\n" foreach @Image::ExifTool::langs;
|
|
@@ -4205,8 +4216,8 @@ sub SetWindowTitle($)
|
|
|
4205
4216
|
if ($curTitle ne $title) {
|
|
4206
4217
|
$curTitle = $title;
|
|
4207
4218
|
if ($^O eq 'MSWin32') {
|
|
4208
|
-
|
|
4209
|
-
$title =~
|
|
4219
|
+
# allow only safe characters
|
|
4220
|
+
$title =~ tr(-_a-zA-Z0-9 \(\)[]{}%.+/:;,=?*!@#$~')()dc;
|
|
4210
4221
|
eval { system qq{title $title} };
|
|
4211
4222
|
} else {
|
|
4212
4223
|
# (this only works for XTerm terminals, and STDERR must go to the console)
|
|
@@ -5118,52 +5129,52 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
5118
5129
|
|
|
5119
5130
|
File Types
|
|
5120
5131
|
------------+-------------+-------------+-------------+------------
|
|
5121
|
-
360 r/w | DR4 r/w/c |
|
|
5122
|
-
3FR r | DSF r |
|
|
5123
|
-
3G2 r/w | DSS r |
|
|
5124
|
-
3GP r/w | DV r |
|
|
5125
|
-
7Z r | DVB r/w |
|
|
5126
|
-
A r | DVR-MS r |
|
|
5127
|
-
AA r | DYLIB r |
|
|
5128
|
-
AAC r | EIP r |
|
|
5129
|
-
AAE r | EPS r/w |
|
|
5130
|
-
AAX r/w | EPUB r |
|
|
5131
|
-
ACR r | ERF r/w |
|
|
5132
|
-
AFM r | EXE r |
|
|
5133
|
-
AI r/w | EXIF r/w/c |
|
|
5134
|
-
AIFF r | EXR r |
|
|
5135
|
-
APE r | EXV r/w/c |
|
|
5136
|
-
ARQ r/w | F4A/V r/w |
|
|
5137
|
-
ARW r/w | FFF r/w |
|
|
5138
|
-
ASF r |
|
|
5139
|
-
AVI r |
|
|
5140
|
-
AVIF r/w |
|
|
5141
|
-
AZW r |
|
|
5142
|
-
BMP r |
|
|
5143
|
-
BPG r |
|
|
5144
|
-
BTF r |
|
|
5145
|
-
C2PA r |
|
|
5146
|
-
CHM r |
|
|
5147
|
-
COS r |
|
|
5148
|
-
CR2 r/w |
|
|
5149
|
-
CR3 r/w |
|
|
5150
|
-
CRM r/w |
|
|
5151
|
-
CRW r/w |
|
|
5152
|
-
CS1 r/w |
|
|
5153
|
-
CSV r |
|
|
5154
|
-
CUR r |
|
|
5155
|
-
CZI r |
|
|
5156
|
-
DCM r |
|
|
5157
|
-
DCP r/w |
|
|
5158
|
-
DCR r |
|
|
5159
|
-
DFONT r |
|
|
5160
|
-
DIVX r |
|
|
5161
|
-
DJVU r |
|
|
5162
|
-
DLL r |
|
|
5163
|
-
DNG r/w |
|
|
5164
|
-
DOC r |
|
|
5165
|
-
DOCX r |
|
|
5166
|
-
DPX r |
|
|
5132
|
+
360 r/w | DR4 r/w/c | JNG r/w | ODP r | RTF r
|
|
5133
|
+
3FR r | DSF r | JP2 r/w | ODS r | RW2 r/w
|
|
5134
|
+
3G2 r/w | DSS r | JPEG r/w | ODT r | RWL r/w
|
|
5135
|
+
3GP r/w | DV r | JSON r | OFR r | RWZ r
|
|
5136
|
+
7Z r | DVB r/w | JXL r/w | OGG r | RM r
|
|
5137
|
+
A r | DVR-MS r | K25 r | OGV r | SEQ r
|
|
5138
|
+
AA r | DYLIB r | KDC r | ONP r | SKETCH r
|
|
5139
|
+
AAC r | EIP r | KEY r | OPUS r | SO r
|
|
5140
|
+
AAE r | EPS r/w | KVAR r | ORF r/w | SR2 r/w
|
|
5141
|
+
AAX r/w | EPUB r | LA r | ORI r/w | SRF r
|
|
5142
|
+
ACR r | ERF r/w | LFP r | OTF r | SRW r/w
|
|
5143
|
+
AFM r | EXE r | LIF r | PAC r | SVG r
|
|
5144
|
+
AI r/w | EXIF r/w/c | LNK r | PAGES r | SWF r
|
|
5145
|
+
AIFF r | EXR r | LRV r/w | PBM r/w | THM r/w
|
|
5146
|
+
APE r | EXV r/w/c | M2TS r | PCAP r | TIFF r/w
|
|
5147
|
+
ARQ r/w | F4A/V r/w | M4A/V r/w | PCAPNG r | TNEF r
|
|
5148
|
+
ARW r/w | FFF r/w | MACOS r | PCD r | TORRENT r
|
|
5149
|
+
ASF r | FIT r | MAX r | PCX r | TTC r
|
|
5150
|
+
AVI r | FITS r | MEF r/w | PDB r | TTF r
|
|
5151
|
+
AVIF r/w | FLA r | MIE r/w/c | PDF r/w | TXT r
|
|
5152
|
+
AZW r | FLAC r | MIFF r | PEF r/w | URL r
|
|
5153
|
+
BMP r | FLIF r/w | MKA r | PFA r | VCF r
|
|
5154
|
+
BPG r | FLV r | MKS r | PFB r | VNT r
|
|
5155
|
+
BTF r | FPF r | MKV r | PFM r | VRD r/w/c
|
|
5156
|
+
C2PA r | FPX r | MNG r/w | PGF r | VSD r
|
|
5157
|
+
CHM r | GIF r/w | MOBI r | PGM r/w | VSDX r
|
|
5158
|
+
COS r | GLV r/w | MODD r | PLIST r | WAV r
|
|
5159
|
+
CR2 r/w | GPR r/w | MOI r | PICT r | WDP r/w
|
|
5160
|
+
CR3 r/w | GZ r | MOS r/w | PMP r | WEBP r/w
|
|
5161
|
+
CRM r/w | HDP r/w | MOV r/w | PNG r/w | WEBM r
|
|
5162
|
+
CRW r/w | HDR r | MP3 r | PPM r/w | WMA r
|
|
5163
|
+
CS1 r/w | HEIC r/w | MP4 r/w | PPT r | WMV r
|
|
5164
|
+
CSV r | HEIF r/w | MPC r | PPTX r | WOFF r
|
|
5165
|
+
CUR r | HTML r | MPG r | PS r/w | WOFF2 r
|
|
5166
|
+
CZI r | ICC r/w/c | MPO r/w | PSB r/w | WPG r
|
|
5167
|
+
DCM r | ICO r | MQV r/w | PSD r/w | WTV r
|
|
5168
|
+
DCP r/w | ICS r | MRC r | PSP r | WV r
|
|
5169
|
+
DCR r | IDML r | MRW r/w | QTIF r/w | X3F r/w
|
|
5170
|
+
DFONT r | IIQ r/w | MXF r | R3D r | XCF r
|
|
5171
|
+
DIVX r | IND r/w | NEF r/w | RA r | XISF r
|
|
5172
|
+
DJVU r | INSP r/w | NKA r | RAF r/w | XLS r
|
|
5173
|
+
DLL r | INSV r | NKSC r/w | RAM r | XLSX r
|
|
5174
|
+
DNG r/w | INX r | NRW r/w | RAR r | XMP r/w/c
|
|
5175
|
+
DOC r | ISO r | NUMBERS r | RAW r/w | ZIP r
|
|
5176
|
+
DOCX r | ITC r | NXD r | RIFF r |
|
|
5177
|
+
DPX r | J2C r | O r | RSRC r |
|
|
5167
5178
|
|
|
5168
5179
|
Meta Information
|
|
5169
5180
|
----------------------+----------------------+---------------------
|
|
@@ -5275,7 +5286,7 @@ L<Other options|/Other options>
|
|
|
5275
5286
|
|
|
5276
5287
|
-@ ARGFILE Read command-line arguments from file
|
|
5277
5288
|
-k (-pause) Pause before terminating
|
|
5278
|
-
-list[w|f|wf|g[NUM]|d|x]
|
|
5289
|
+
-list[w|f|r|wf|g[NUM]|d|x|geo] List various exiftool capabilities
|
|
5279
5290
|
-ver Print exiftool version number
|
|
5280
5291
|
-- End of options
|
|
5281
5292
|
|
|
@@ -5293,7 +5304,7 @@ L<Utilities|/Utilities>
|
|
|
5293
5304
|
|
|
5294
5305
|
L<Advanced options|/Advanced options>
|
|
5295
5306
|
|
|
5296
|
-
-api OPT[[^]=[VAL]]
|
|
5307
|
+
-api [OPT[[^]=[VAL]]] Set ExifTool API option
|
|
5297
5308
|
-common_args Define common arguments
|
|
5298
5309
|
-config CFGFILE Specify configuration file name
|
|
5299
5310
|
-echo[NUM] TEXT Echo text to stdout or stderr
|
|
@@ -5886,9 +5897,10 @@ Escape characters in output tag values for HTML (B<-E>), XML (B<-ex>) or C
|
|
|
5886
5897
|
(B<-ec>). For HTML, all characters with Unicode code points above U+007F
|
|
5887
5898
|
are escaped as well as the following 5 characters: & (&) E<39> (')
|
|
5888
5899
|
E<quot> (") E<gt> (>) and E<lt> (<). For XML, only these 5
|
|
5889
|
-
characters are escaped. The B<-E> option is implied with B<-h>,
|
|
5890
|
-
|
|
5891
|
-
|
|
5900
|
+
characters are escaped. The B<-E> option is implied with B<-h>, B<-ex> is
|
|
5901
|
+
implied with B<-X>, B<-ec> is implied with B<-json>, and none of these
|
|
5902
|
+
options apply to the B<-csv> output. For C, all control characters and the
|
|
5903
|
+
backslash are escaped. The inverse conversion is applied when writing tags.
|
|
5892
5904
|
|
|
5893
5905
|
=item B<-f> (B<-forcePrint>)
|
|
5894
5906
|
|
|
@@ -6147,7 +6159,7 @@ with this command:
|
|
|
6147
6159
|
|
|
6148
6160
|
produces output like this:
|
|
6149
6161
|
|
|
6150
|
-
-- Generated by ExifTool 13.
|
|
6162
|
+
-- Generated by ExifTool 13.57 --
|
|
6151
6163
|
File: a.jpg - 2003:10:31 15:44:19
|
|
6152
6164
|
(f/5.6, 1/60s, ISO 100)
|
|
6153
6165
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6297,7 +6309,7 @@ each processed file when writing and the new file name when renaming,
|
|
|
6297
6309
|
moving or copying. Verbose levels above B<-v0> do not flush after each
|
|
6298
6310
|
line. Also see the B<-progress> option.
|
|
6299
6311
|
|
|
6300
|
-
=item B<-w>[
|
|
6312
|
+
=item B<-w>[+][!] I<EXT> or I<FMT> (B<-textOut>)
|
|
6301
6313
|
|
|
6302
6314
|
Write console output to files with names ending in I<EXT>, one for each
|
|
6303
6315
|
source file. The output file name is obtained by replacing the source file
|
|
@@ -6433,7 +6445,7 @@ natural numbers starting from 1, instead of 0 (see example F above).
|
|
|
6433
6445
|
This same I<FMT> syntax is used with the B<-o> and B<-tagsFromFile> options,
|
|
6434
6446
|
although %c and %C are only valid for output file names.
|
|
6435
6447
|
|
|
6436
|
-
=item B<-W>[
|
|
6448
|
+
=item B<-W>[+][!] I<FMT> (B<-tagOut>)
|
|
6437
6449
|
|
|
6438
6450
|
This enhanced version of the B<-w> option allows a separate output file to
|
|
6439
6451
|
be created for each extracted tag. See the B<-w> option documentation above
|
|
@@ -7351,16 +7363,18 @@ necessary when using this technique.)
|
|
|
7351
7363
|
Set user parameter. I<PARAM> is an arbitrary user parameter name. This is
|
|
7352
7364
|
an interface to the API UserParam option (see the
|
|
7353
7365
|
L<Image::ExifTool Options|Image::ExifTool/Options> documentation), and
|
|
7354
|
-
provides a method to access user-defined parameters in arguments
|
|
7366
|
+
provides a method to access user-defined parameters in arguments of the
|
|
7355
7367
|
B<-if>, B<-p> and B<-fileNUM> options as if they were any other tag.
|
|
7356
7368
|
Appending a hash tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
|
|
7357
7369
|
causes the parameter to be extracted as a normal tag in the UserParam group.
|
|
7358
|
-
|
|
7370
|
+
Similar to the B<-api> option, the parameter value is set to 1 if I<=VAL>
|
|
7359
7371
|
is omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
|
7360
|
-
I<VAL> is omitted with C<^=>.
|
|
7372
|
+
I<VAL> is omitted with C<^=>. Examples:
|
|
7361
7373
|
|
|
7362
7374
|
exiftool -p '$test from $filename' -userparam test=Hello FILE
|
|
7363
7375
|
|
|
7376
|
+
exiftool "-description<mytag" -userparam mytag#="test" FILE
|
|
7377
|
+
|
|
7364
7378
|
=back
|
|
7365
7379
|
|
|
7366
7380
|
=head3 Advanced formatting feature
|
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
|
35
35
|
use Image::ExifTool::Validate;
|
|
36
36
|
use Image::ExifTool::MacOS;
|
|
37
37
|
|
|
38
|
-
$VERSION = '3.
|
|
38
|
+
$VERSION = '3.68';
|
|
39
39
|
@ISA = qw(Exporter);
|
|
40
40
|
|
|
41
41
|
sub NumbersFirst($$);
|
|
@@ -273,11 +273,11 @@ tags remain.
|
|
|
273
273
|
|
|
274
274
|
The table below lists all EXIF tags. Also listed are TIFF, DNG, HDP and
|
|
275
275
|
other tags which are not part of the EXIF specification, but may co-exist
|
|
276
|
-
with EXIF tags in some images. Tags which are part of the EXIF 3.
|
|
276
|
+
with EXIF tags in some images. Tags which are part of the EXIF 3.1
|
|
277
277
|
specification have an underlined B<Tag Name> in the HTML version of this
|
|
278
278
|
documentation. See
|
|
279
|
-
L<https://www.cipa.jp/std/documents/download_e.html?CIPA_DC-008-
|
|
280
|
-
for the official EXIF 3.
|
|
279
|
+
L<https://www.cipa.jp/std/documents/download_e.html?CIPA_DC-008-2026-E>
|
|
280
|
+
for the official EXIF 3.1 specification.
|
|
281
281
|
},
|
|
282
282
|
GPS => q{
|
|
283
283
|
These GPS tags are part of the EXIF standard, and are stored in a separate
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '5.
|
|
91
|
+
$VERSION = '5.06';
|
|
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)
|
|
@@ -10267,6 +10267,19 @@ sub PrintLensID(@)
|
|
|
10267
10267
|
}
|
|
10268
10268
|
@matches = @likely unless @matches;
|
|
10269
10269
|
@matches = @maybe unless @matches;
|
|
10270
|
+
# use LensModel focal length and aperture if necessary and available
|
|
10271
|
+
if (@matches > 1 and $lensModel and
|
|
10272
|
+
$lensModel =~ /(\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?) ?mm ?f\/?(\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?)/i)
|
|
10273
|
+
{
|
|
10274
|
+
my ($mm, $fstop) = ($1, $2);
|
|
10275
|
+
my @best;
|
|
10276
|
+
foreach $lens (@matches) {
|
|
10277
|
+
next unless $lens =~ /(\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?) ?mm ?f\/?(\d+(?:\.\d+)?(?:-\d+(?:\.\d+)?)?)/i;
|
|
10278
|
+
push @best, $lens if $mm eq $1 and $fstop eq $2;
|
|
10279
|
+
}
|
|
10280
|
+
@matches = @best if @best;
|
|
10281
|
+
}
|
|
10282
|
+
|
|
10270
10283
|
Image::ExifTool::Exif::MatchLensModel(\@matches, $lensModel);
|
|
10271
10284
|
return join(' or ', @matches) if @matches;
|
|
10272
10285
|
} elsif ($lensModel and $lensModel =~ /\d/) {
|