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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84e9102db0da669ac4a4f0a5c4cb35058eee35318fa727ecf365f36341e9d9b9
4
- data.tar.gz: baef093ba9ac71da9d59fc8239d9ca9ea3a5bab5a856fca5f33a3f8fcf6e6ba8
3
+ metadata.gz: 3a2fbb131eed743102ffdaabb8bea2056bb48c0edb682da5253254b01bf3ff09
4
+ data.tar.gz: 64c9b1bde7d428f63e7fa9c13f3e9cdd5c604412aef2267fb8cba6473ae7f86f
5
5
  SHA512:
6
- metadata.gz: 2a4abf6f32a17150d1b3b30b43204b8440b1e0c600df23ac992085a423942105067e02922cdcfdfa3a185fa867e138eab5e1a3a4cf3add9b8113afa6e167a038
7
- data.tar.gz: da5b5975b6c1d20dc90d3c45179892297ab655f5e2dd76bac6180221ff5598895da66abc76a073561175d30a490444d56f701860e54fc70f21e93cd55cc0fd2d
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
- - Fixed bug where ItemList tags weren't created when creating new AudioKeys or
13
- VideoKeys tags in the same command and neither tag group pre-existed in the
14
- file
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
@@ -832,6 +832,8 @@ t/QuickTime_18.out
832
832
  t/QuickTime_19.out
833
833
  t/QuickTime_2.out
834
834
  t/QuickTime_20.out
835
+ t/QuickTime_21.out
836
+ t/QuickTime_22.out
835
837
  t/QuickTime_3.out
836
838
  t/QuickTime_4.out
837
839
  t/QuickTime_5.out
data/bin/META.json CHANGED
@@ -50,5 +50,5 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "13.14"
53
+ "version" : "13.16"
54
54
  }
data/bin/META.yml CHANGED
@@ -31,4 +31,4 @@ recommends:
31
31
  Time::HiRes: '0'
32
32
  requires:
33
33
  perl: '5.004'
34
- version: '13.14'
34
+ version: '13.16'
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.14.tar.gz | tar -xf -
113
- cd Image-ExifTool-13.14
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';
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.14 --
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 "eng" is treated
471
- as a default language when reading, but not when writing.
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.87';
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 50mm F1.4 L VCM', #42
638
- '61182.61' => 'Canon RF 24mm F1.4 L VCM', #42
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.21';
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-_image_file_header
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.62';
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) = ($tag =~ /^(.(?:..)*?)\0\0(.*)/s);
1281
+ ($tag, $url) = ($val =~ /^(.(?:..)*?)\0\0(.*)/s);
1282
1282
  } else {
1283
- ($tag, $url) = ($tag =~ /^(..*?)\0(.*)/s);
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.55';
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
- $len += 10; # include length of terminator itself
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) {