exiftool_vendored 13.14.0 → 13.17.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84e9102db0da669ac4a4f0a5c4cb35058eee35318fa727ecf365f36341e9d9b9
4
- data.tar.gz: baef093ba9ac71da9d59fc8239d9ca9ea3a5bab5a856fca5f33a3f8fcf6e6ba8
3
+ metadata.gz: 861018287a20c9c313a1fbaae7c77019fb9875a096936c68a61818e5d5cbda48
4
+ data.tar.gz: 1e0cc71de8847a24053b2fa9b569fdbf48b720aa70e027c6c984d6faabcde10a
5
5
  SHA512:
6
- metadata.gz: 2a4abf6f32a17150d1b3b30b43204b8440b1e0c600df23ac992085a423942105067e02922cdcfdfa3a185fa867e138eab5e1a3a4cf3add9b8113afa6e167a038
7
- data.tar.gz: da5b5975b6c1d20dc90d3c45179892297ab655f5e2dd76bac6180221ff5598895da66abc76a073561175d30a490444d56f701860e54fc70f21e93cd55cc0fd2d
6
+ metadata.gz: 9ddf18669ddb544c1360868fd79cf7b5a0664d838f7986a43db8b15d1c21b4fbe30f516efdc2f55c6a4af21b29312e99c7ef2d28acce3eacba9aa77a65b219e7
7
+ data.tar.gz: b47c09c393c4b62543b458b2d57f2a3fee3868b0ed37da38954f7a8958746cf7566c76ff93eb839ffad0ddf9ea77c7a09663eaff8266a8b0f5067153e2579340
data/bin/Changes CHANGED
@@ -7,11 +7,53 @@ 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. 29, 2025 - Version 13.17
11
+
12
+ - Added support for reading more embedded images and videos written in the
13
+ JPEG trailer by some phones
14
+ - Added support for reading JPEG trailer written by some OnePlus phones
15
+ - Added a -validate warning for QuickTime 'wide' atoms with an invalid size
16
+ - Added a new CanonLensType
17
+ - Extract more embedded videos and depth/gain maps from JPEG images written
18
+ - Avoid decoding Sony 0x9050 data for the ILCE-1M2 because the encoding has
19
+ changed since the ILCE-1 and the new encoding is not yet known
20
+ - Fixed issue that could cause runtime error when using -j with -b
21
+ - Fixed some issues decoding AFPointsUsed for some newer Nikon models
22
+ - Fixed problem corrupting QuickTime-format videos when writing if they
23
+ contain a 'wide' atom with an invalid size
24
+
25
+ Jan. 25, 2025 - Version 13.16
26
+
27
+ - Added a couple of new Nikon Z lenses (thanks Warren Hatch)
28
+ - Added a new Canon RFLensType (thanks Norbert Wasser)
29
+ - Added support for a MIE trailer on QuickTime-format files
30
+ - Added a number of new EXE MachineType values (github #309)
31
+ - Made "iTunes" a deletable group
32
+ - Updated decoding of many Nikon tags for the Z9 firmware version 5.1 (thanks
33
+ Warren Hatch)
34
+ - Fixed issue where -diff option would miss showing 1 tag from a group that
35
+ exists in the difference file but not in the source file
36
+ - Fixed issue where tag exclusions for alternate files weren't honoured in a
37
+ -p formatting expression when using "$file#:all:all" in the expression and
38
+ the -file#, -x, and -p options all together
39
+ - Fixed FileTypeDescription for lossless extended WebP images
40
+
41
+ Jan. 23, 2025 - Version 13.15
42
+
43
+ - Added a few new Panasonic AFSubjectDetection values (thanks Andrew J)
44
+ - Added " (lossless)" to FileType for lossless WebP images
45
+ - Avoid treating the QuickTime 'eng' language code as the default 'und' unless
46
+ the country code is also the default
47
+ - Fixed issue where writing metadata to a non-extended lossless WebP image
48
+ with an alpha channel could mess up rendering of the transparency
49
+ - Fixed problem decoding ID3 WXXX frames (github #307)
50
+
10
51
  Jan. 20, 2025 - Version 13.14
11
52
 
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
53
+ - Changed so that deleting QuickTime ItemList group no longer deletes Keys
54
+ - Fixed bug where new ItemList tags weren't created when also creating new
55
+ AudioKeys or VideoKeys tags in the same command if neither tag group
56
+ pre-existed in the file
15
57
 
16
58
  Jan. 20, 2025 - Version 13.13
17
59
 
data/bin/MANIFEST CHANGED
@@ -178,9 +178,9 @@ html/TagNames/Stim.html
178
178
  html/TagNames/Text.html
179
179
  html/TagNames/Theora.html
180
180
  html/TagNames/Torrent.html
181
+ html/TagNames/Trailer.html
181
182
  html/TagNames/Unknown.html
182
183
  html/TagNames/VCard.html
183
- html/TagNames/Vivo.html
184
184
  html/TagNames/Vorbis.html
185
185
  html/TagNames/WPG.html
186
186
  html/TagNames/WTV.html
@@ -429,10 +429,10 @@ lib/Image/ExifTool/TagNames.pod
429
429
  lib/Image/ExifTool/Text.pm
430
430
  lib/Image/ExifTool/Theora.pm
431
431
  lib/Image/ExifTool/Torrent.pm
432
+ lib/Image/ExifTool/Trailer.pm
432
433
  lib/Image/ExifTool/Unknown.pm
433
434
  lib/Image/ExifTool/VCard.pm
434
435
  lib/Image/ExifTool/Validate.pm
435
- lib/Image/ExifTool/Vivo.pm
436
436
  lib/Image/ExifTool/Vorbis.pm
437
437
  lib/Image/ExifTool/WPG.pm
438
438
  lib/Image/ExifTool/WTV.pm
@@ -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.17"
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.17'
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.17.tar.gz | tar -xf -
113
+ cd Image-ExifTool-13.17
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.17';
15
15
 
16
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
17
  my $exePath;
@@ -1525,7 +1525,7 @@ if (($tagOut or defined $diff) and ($csv or $json or %printFmt or $tabFormat or
1525
1525
  }
1526
1526
 
1527
1527
  if ($csv and $csv eq 'CSV' and not $isWriting) {
1528
- undef $json; # (not compatible)
1528
+ $json = 0; # (not compatible)
1529
1529
  if ($textOut) {
1530
1530
  Warn "Sorry, -w may not be combined with -csv\n";
1531
1531
  $rtnVal = 1;
@@ -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.17 --
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
@@ -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.61';
38
+ $VERSION = '3.62';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -74,26 +74,32 @@ my %tweakOrder = (
74
74
  DJI => 'Casio',
75
75
  FLIR => 'DJI',
76
76
  FujiFilm => 'FLIR',
77
+ GoPro => 'GE',
77
78
  Kodak => 'JVC',
78
79
  Leaf => 'Kodak',
79
- Minolta => 'Leaf',
80
+ Lytro => 'Leaf',
81
+ Minolta => 'Lytro',
80
82
  Motorola => 'Minolta',
81
83
  Nikon => 'Motorola',
82
- NikonCustom => 'Nikon',
83
- NikonCapture => 'NikonCustom',
84
- Nintendo => 'NikonCapture',
84
+ NikonCapture => 'Nikon',
85
+ NikonCustom => 'NikonCapture',
86
+ NikonSettings => 'NikonCustom',
87
+ Nintendo => 'NikonSettings',
88
+ Panasonic => 'Olympus',
85
89
  Pentax => 'Panasonic',
90
+ Ricoh => 'Reconyx',
91
+ Samsung => 'Ricoh',
86
92
  SonyIDC => 'Sony',
87
- Vivo => 'SonyIDC',
88
- Unknown => 'Vivo',
93
+ Unknown => 'SonyIDC',
89
94
  DNG => 'Unknown',
90
95
  PrintIM => 'ICC_Profile',
91
96
  Vorbis => 'Ogg',
92
97
  ID3 => 'PostScript',
93
98
  MinoltaRaw => 'KyoceraRaw',
94
99
  KyoceraRaw => 'CanonRaw',
100
+ MinoltaRaw => 'KyoceraRaw',
101
+ PanasonicRaw => 'MinoltaRaw',
95
102
  SigmaRaw => 'PanasonicRaw',
96
- Lytro => 'SigmaRaw',
97
103
  PhotoMechanic => 'FotoStation',
98
104
  Microsoft => 'PhotoMechanic',
99
105
  GIMP => 'Microsoft',
@@ -451,12 +457,6 @@ L<AudioKeys|Image::ExifTool::TagNames/QuickTime AudioKeys Tags> and
451
457
  L<VideoKeys|Image::ExifTool::TagNames/QuickTime VideoKeys Tags> tags for
452
458
  more information.
453
459
 
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
460
  Alternate language tags may be accessed for
461
461
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
462
462
  L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags> tags by adding
@@ -467,8 +467,8 @@ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> tags support a
467
467
  language code, but without a country code. If no language code is specified
468
468
  when writing, the default language is written and alternate languages for
469
469
  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.
470
+ language without deleting alternate languages. Note that when reading,
471
+ "eng" is also treated as the default language if there is no country code.
472
472
 
473
473
  According to the specification, integer-format QuickTime date/time tags
474
474
  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.89';
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)
@@ -527,7 +527,8 @@ $VERSION = '4.87';
527
527
  748 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens', #JR (1.4x Mk III)
528
528
  748.1 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x', #IB
529
529
  748.2 => 'Tamron 70-210mm f/4 Di VC USD (A034) + 2x', #IB
530
- 749 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x', #IB
530
+ 749 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 2x or Tamron Lens', #PH
531
+ 749.1 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x', #IB
531
532
  750 => 'Canon EF 35mm f/1.4L II USM or Tamron Lens', #42
532
533
  750.1 => 'Tamron SP 85mm f/1.8 Di VC USD (F016)', #Exiv2#1072
533
534
  750.2 => 'Tamron SP 45mm f/1.8 Di VC USD (F013)', #PH
@@ -634,8 +635,9 @@ $VERSION = '4.87';
634
635
  '61182.57' => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
635
636
  '61182.58' => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
636
637
  '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
638
+ '61182.60' => 'Canon RF 16-28mm F2.8 IS STM', #42
639
+ '61182.61' => 'Canon RF 50mm F1.4 L VCM', #42
640
+ '61182.62' => 'Canon RF 24mm F1.4 L VCM', #42
639
641
  65535 => 'n/a',
640
642
  );
641
643
 
@@ -7027,6 +7029,7 @@ my %ciMaxFocal = (
7027
7029
  319 => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
7028
7030
  320 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
7029
7031
  321 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF2x', #42
7032
+ 323 => 'Canon RF 16-28mm F2.8 IS STM', #42
7030
7033
  325 => 'Canon RF 50mm F1.4 L VCM', #42
7031
7034
  326 => 'Canon RF 24mm F1.4 L VCM', #42
7032
7035
  # 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)$/) {
@@ -350,7 +350,13 @@ sub ProcessJPEG_HDR($$$);
350
350
  }, {
351
351
  Name => 'Vivo',
352
352
  Condition => '$$valPt =~ /^(streamdata|vivo\{")/',
353
- SubDirectory => { TagTable => 'Image::ExifTool::Vivo::Main' },
353
+ SubDirectory => { TagTable => 'Image::ExifTool::Trailer::Vivo' },
354
+ }, {
355
+ Name => 'OnePlus',
356
+ SubDirectory => { TagTable => 'Image::ExifTool::Trailer::OnePlus' },
357
+ }, {
358
+ Name => 'Google',
359
+ SubDirectory => { TagTable => 'Image::ExifTool::Trailer::Google' },
354
360
  }, {
355
361
  Name => 'EmbeddedVideo',
356
362
  Notes => 'extracted only when ExtractEmbedded option is used',
@@ -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) {