exiftool_vendored 13.14.0 → 13.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +30 -3
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +3 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -8
- data/bin/lib/Image/ExifTool/Canon.pm +5 -3
- data/bin/lib/Image/ExifTool/EXE.pm +16 -2
- data/bin/lib/Image/ExifTool/ID3.pm +4 -4
- data/bin/lib/Image/ExifTool/MIE.pm +6 -3
- data/bin/lib/Image/ExifTool/Nikon.pm +328 -6
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +7 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +69 -24
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +10 -10
- data/bin/lib/Image/ExifTool/README +4 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +11 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4813 -4811
- data/bin/lib/Image/ExifTool/TagNames.pod +149 -10
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +45 -23
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +3 -1
- data/bin/lib/Image/ExifTool/Writer.pl +8 -7
- data/bin/lib/Image/ExifTool.pm +3 -3
- data/bin/lib/Image/ExifTool.pod +52 -51
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a2fbb131eed743102ffdaabb8bea2056bb48c0edb682da5253254b01bf3ff09
|
4
|
+
data.tar.gz: 64c9b1bde7d428f63e7fa9c13f3e9cdd5c604412aef2267fb8cba6473ae7f86f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '048b32a6e81dc59b044a6d2f684ea91c5db112bfc069a6252e696870b0cd54bd541754ff777bf8cf53a42a73fa676d9781618c0c84662cefe98876005126614f'
|
7
|
+
data.tar.gz: 2003384df037a8d9875e61d75aa9edfc3d3136fb1c31126cbe9d7fdee704b992ffea8132e9d7a1b698c8d5642053bf84fd5e9255877674b0c6823e7c04e96b99
|
data/bin/Changes
CHANGED
@@ -7,11 +7,38 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.10. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Jan. 25, 2025 - Version 13.16
|
11
|
+
|
12
|
+
- Added a couple of new Nikon Z lenses (thanks Warren Hatch)
|
13
|
+
- Added a new Canon RFLensType (thanks Norbert Wasser)
|
14
|
+
- Added support for a MIE trailer on QuickTime-format files
|
15
|
+
- Added a number of new EXE MachineType values (github #309)
|
16
|
+
- Made "iTunes" a deletable group
|
17
|
+
- Updated decoding of many Nikon tags for the Z9 firmware version 5.1 (thanks
|
18
|
+
Warren Hatch)
|
19
|
+
- Fixed issue where -diff option would miss showing 1 tag from a group that
|
20
|
+
exists in the difference file but not in the source file
|
21
|
+
- Fixed issue where tag exclusions for alternate files weren't honoured in a
|
22
|
+
-p formatting expression when using "$file#:all:all" in the expression and
|
23
|
+
the -file#, -x, and -p options all together
|
24
|
+
- Fixed FileTypeDescription for lossless extended WebP images
|
25
|
+
|
26
|
+
Jan. 23, 2025 - Version 13.15
|
27
|
+
|
28
|
+
- Added a few new Panasonic AFSubjectDetection values (thanks Andrew J)
|
29
|
+
- Added " (lossless)" to FileType for lossless WebP images
|
30
|
+
- Avoid treating the QuickTime 'eng' language code as the default 'und' unless
|
31
|
+
the country code is also the default
|
32
|
+
- Fixed issue where writing metadata to a non-extended lossless WebP image
|
33
|
+
with an alpha channel could mess up rendering of the transparency
|
34
|
+
- Fixed problem decoding ID3 WXXX frames (github #307)
|
35
|
+
|
10
36
|
Jan. 20, 2025 - Version 13.14
|
11
37
|
|
12
|
-
-
|
13
|
-
|
14
|
-
|
38
|
+
- Changed so that deleting QuickTime ItemList group no longer deletes Keys
|
39
|
+
- Fixed bug where new ItemList tags weren't created when also creating new
|
40
|
+
AudioKeys or VideoKeys tags in the same command if neither tag group
|
41
|
+
pre-existed in the file
|
15
42
|
|
16
43
|
Jan. 20, 2025 - Version 13.13
|
17
44
|
|
data/bin/MANIFEST
CHANGED
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
|
|
109
109
|
terminal window to extract and run ExifTool:
|
110
110
|
|
111
111
|
cd ~/Desktop
|
112
|
-
gzip -dc Image-ExifTool-13.
|
113
|
-
cd Image-ExifTool-13.
|
112
|
+
gzip -dc Image-ExifTool-13.16.tar.gz | tar -xf -
|
113
|
+
cd Image-ExifTool-13.16
|
114
114
|
./exiftool t/images/ExifTool.jpg
|
115
115
|
|
116
116
|
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 = '13.
|
14
|
+
my $version = '13.16';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
my $exePath;
|
@@ -2404,6 +2404,7 @@ sub GetImageInfo($$)
|
|
2404
2404
|
($g2, $same) = ($g, 0);
|
2405
2405
|
# build list of all tags in the new group of the diff file
|
2406
2406
|
@groupTags2 = ();
|
2407
|
+
push @groupTags2, $tag2 if defined $tag2;
|
2407
2408
|
foreach $t2 (@found2) {
|
2408
2409
|
$done2{$t2} or $g ne $et2->GetGroup($t2, $showGroup) or push @groupTags2, $t2;
|
2409
2410
|
}
|
@@ -5983,7 +5984,7 @@ with this command:
|
|
5983
5984
|
|
5984
5985
|
produces output like this:
|
5985
5986
|
|
5986
|
-
-- Generated by ExifTool 13.
|
5987
|
+
-- Generated by ExifTool 13.16 --
|
5987
5988
|
File: a.jpg - 2003:10:31 15:44:19
|
5988
5989
|
(f/5.6, 1/60s, ISO 100)
|
5989
5990
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -451,12 +451,6 @@ L<AudioKeys|Image::ExifTool::TagNames/QuickTime AudioKeys Tags> and
|
|
451
451
|
L<VideoKeys|Image::ExifTool::TagNames/QuickTime VideoKeys Tags> tags for
|
452
452
|
more information.
|
453
453
|
|
454
|
-
Beware that the values of the Keys tags are actually stored inside an
|
455
|
-
ItemList atom in the file, so deleting the ItemList group as a block (ie.
|
456
|
-
C<-ItemList:all=>) also deletes Keys tags. Instead, to preserve Keys tags
|
457
|
-
the ItemList tags may be deleted individually with
|
458
|
-
C<-QuickTime:ItemList:all=>.
|
459
|
-
|
460
454
|
Alternate language tags may be accessed for
|
461
455
|
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
|
462
456
|
L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags> tags by adding
|
@@ -467,8 +461,8 @@ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> tags support a
|
|
467
461
|
language code, but without a country code. If no language code is specified
|
468
462
|
when writing, the default language is written and alternate languages for
|
469
463
|
the tag are deleted. Use the "und" language code to write the default
|
470
|
-
language without deleting alternate languages. Note that
|
471
|
-
as
|
464
|
+
language without deleting alternate languages. Note that when reading,
|
465
|
+
"eng" is also treated as the default language if there is no country code.
|
472
466
|
|
473
467
|
According to the specification, integer-format QuickTime date/time tags
|
474
468
|
should be stored as UTC. Unfortunately, digital cameras often store local
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.88';
|
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)
|
@@ -634,8 +634,9 @@ $VERSION = '4.87';
|
|
634
634
|
'61182.57' => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
|
635
635
|
'61182.58' => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
|
636
636
|
'61182.59' => 'Canon RF 70-200mm F2.8 L IS USM Z + RF2x', #42
|
637
|
-
'61182.60' => 'Canon RF
|
638
|
-
'61182.61' => 'Canon RF
|
637
|
+
'61182.60' => 'Canon RF 16-28mm F2.8 IS STM', #42
|
638
|
+
'61182.61' => 'Canon RF 50mm F1.4 L VCM', #42
|
639
|
+
'61182.62' => 'Canon RF 24mm F1.4 L VCM', #42
|
639
640
|
65535 => 'n/a',
|
640
641
|
);
|
641
642
|
|
@@ -7027,6 +7028,7 @@ my %ciMaxFocal = (
|
|
7027
7028
|
319 => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
|
7028
7029
|
320 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
|
7029
7030
|
321 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF2x', #42
|
7031
|
+
323 => 'Canon RF 16-28mm F2.8 IS STM', #42
|
7030
7032
|
325 => 'Canon RF 50mm F1.4 L VCM', #42
|
7031
7033
|
326 => 'Canon RF 24mm F1.4 L VCM', #42
|
7032
7034
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
@@ -22,7 +22,7 @@ use strict;
|
|
22
22
|
use vars qw($VERSION);
|
23
23
|
use Image::ExifTool qw(:DataAccess :Utils);
|
24
24
|
|
25
|
-
$VERSION = '1.
|
25
|
+
$VERSION = '1.22';
|
26
26
|
|
27
27
|
sub ProcessPEResources($$);
|
28
28
|
sub ProcessPEVersion($$);
|
@@ -194,6 +194,8 @@ my %int32uTime = (
|
|
194
194
|
Name => 'MachineType',
|
195
195
|
PrintHex => 1,
|
196
196
|
PrintConv => {
|
197
|
+
0x0 => 'Unknown',
|
198
|
+
0x01 => 'Target host',
|
197
199
|
0x014c => 'Intel 386 or later, and compatibles',
|
198
200
|
0x014d => 'Intel i860', #5
|
199
201
|
0x0162 => 'MIPS R3000',
|
@@ -204,10 +206,12 @@ my %int32uTime = (
|
|
204
206
|
0x0184 => 'Alpha AXP',
|
205
207
|
0x01a2 => 'Hitachi SH3',
|
206
208
|
0x01a3 => 'Hitachi SH3 DSP',
|
209
|
+
0x01a4 => 'Hitachi SH3E',
|
207
210
|
0x01a6 => 'Hitachi SH4',
|
208
211
|
0x01a8 => 'Hitachi SH5',
|
209
212
|
0x01c0 => 'ARM little endian',
|
210
213
|
0x01c2 => 'Thumb',
|
214
|
+
0x01c4 => 'Thumb 2 little endian',
|
211
215
|
0x01d3 => 'Matsushita AM33',
|
212
216
|
0x01f0 => 'PowerPC little endian',
|
213
217
|
0x01f1 => 'PowerPC with floating point support',
|
@@ -217,16 +221,26 @@ my %int32uTime = (
|
|
217
221
|
0x0284 => 'Alpha AXP 64-bit',
|
218
222
|
0x0366 => 'MIPS with FPU',
|
219
223
|
0x0466 => 'MIPS16 with FPU',
|
224
|
+
0x0520 => 'Infineon Tricore',
|
220
225
|
0x0ebc => 'EFI Byte Code',
|
226
|
+
0x3a64 => 'Compiled Hybrid PE',
|
227
|
+
0x5032 => 'RISC-V 32-bit',
|
228
|
+
0x5064 => 'RISC-V 64-bit',
|
229
|
+
0x5128 => 'RISC-V 128-bit',
|
230
|
+
0x6232 => 'LoongArch 32-bit',
|
231
|
+
0x6264 => 'LoongArch 64-bit',
|
221
232
|
0x8664 => 'AMD AMD64',
|
222
233
|
0x9041 => 'Mitsubishi M32R little endian',
|
234
|
+
0xaa64 => 'ARM64 little endian',
|
223
235
|
0xc0ee => 'clr pure MSIL',
|
236
|
+
0x0cef => 'CEF',
|
237
|
+
0xec20 => 'Dotnet 0xEC20'
|
224
238
|
},
|
225
239
|
},
|
226
240
|
2 => { Name => 'TimeStamp', %int32uTime },
|
227
241
|
9 => {
|
228
242
|
Name => 'ImageFileCharacteristics',
|
229
|
-
# ref https://docs.microsoft.com/en-us/windows/desktop/api/winnt/ns-winnt-
|
243
|
+
# ref https://docs.microsoft.com/en-us/windows/desktop/api/winnt/ns-winnt-image_file_header
|
230
244
|
PrintConv => { BITMASK => {
|
231
245
|
0 => 'No relocs',
|
232
246
|
1 => 'Executable',
|
@@ -18,7 +18,7 @@ use strict;
|
|
18
18
|
use vars qw($VERSION);
|
19
19
|
use Image::ExifTool qw(:DataAccess :Utils);
|
20
20
|
|
21
|
-
$VERSION = '1.
|
21
|
+
$VERSION = '1.63';
|
22
22
|
|
23
23
|
sub ProcessID3v2($$$);
|
24
24
|
sub ProcessPrivate($$$);
|
@@ -1278,9 +1278,9 @@ sub ProcessID3v2($$$)
|
|
1278
1278
|
my $enc = unpack('C', $val);
|
1279
1279
|
my ($tag, $url);
|
1280
1280
|
if ($enc == 1 or $enc == 2) {
|
1281
|
-
($tag, $url) = ($
|
1281
|
+
($tag, $url) = ($val =~ /^(.(?:..)*?)\0\0(.*)/s);
|
1282
1282
|
} else {
|
1283
|
-
($tag, $url) = ($
|
1283
|
+
($tag, $url) = ($val =~ /^(..*?)\0(.*)/s);
|
1284
1284
|
}
|
1285
1285
|
unless (defined $tag and defined $url) {
|
1286
1286
|
$et->Warn("Invalid $id frame value");
|
@@ -1293,7 +1293,7 @@ sub ProcessID3v2($$$)
|
|
1293
1293
|
$tagInfo = $$tagTablePtr{$id} || AddTagToTable($tagTablePtr, $id, MakeTagName($tag));
|
1294
1294
|
}
|
1295
1295
|
$url =~ s/\0.*//s;
|
1296
|
-
$val = $url;
|
1296
|
+
$val = $et->Decode($url, 'Latin');
|
1297
1297
|
} elsif ($id =~ /^W/) {
|
1298
1298
|
$val =~ s/\0.*//s; # truncate at null
|
1299
1299
|
} elsif ($id =~ /^(COM|COMM|ULT|USLT)$/) {
|
@@ -14,7 +14,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
14
14
|
use Image::ExifTool::Exif;
|
15
15
|
use Image::ExifTool::GPS;
|
16
16
|
|
17
|
-
$VERSION = '1.
|
17
|
+
$VERSION = '1.56';
|
18
18
|
|
19
19
|
sub ProcessMIE($$);
|
20
20
|
sub ProcessMIEGroup($$$);
|
@@ -1376,8 +1376,9 @@ sub WriteMIEGroup($$$)
|
|
1376
1376
|
my $term = "~\0\0\0";
|
1377
1377
|
unless ($$dirInfo{Parent}) {
|
1378
1378
|
# write extended terminator for file-level group
|
1379
|
-
my $len = ref $outfile eq 'SCALAR' ? length($$outfile) : tell $outfile;
|
1380
|
-
|
1379
|
+
my $len = ref $outfile eq 'SCALAR' ? length($$outfile) || 0 : tell $outfile;
|
1380
|
+
# include length of terminator itself minus original $outfile position
|
1381
|
+
$len += 10 - ($$dirInfo{OutPos} || 0);
|
1381
1382
|
if ($len and $len <= 0x7fffffff) {
|
1382
1383
|
$term = "~\0\0\x06" . Set32u($len) . MIEGroupFormat(1) . "\x04";
|
1383
1384
|
}
|
@@ -1802,6 +1803,8 @@ sub ProcessMIE($$)
|
|
1802
1803
|
# don't define Parent so WriteMIEGroup() writes extended terminator
|
1803
1804
|
);
|
1804
1805
|
if ($outfile) {
|
1806
|
+
# save start position in $outfile
|
1807
|
+
$subdirInfo{OutPos} = ref $outfile eq 'SCALAR' ? length($$outfile) || 0 : tell $outfile;
|
1805
1808
|
# generate lookup for MIE format codes if not done already
|
1806
1809
|
unless (%mieCode) {
|
1807
1810
|
foreach (keys %mieFormat) {
|