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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c5856e8cbcaf8e5f8ff633ceb9a4150426019668a54304609a7d04190d81324
4
- data.tar.gz: 19ba2a9b10f76de0471eb0fa3da47ad1d68c79a8b1076dda1aa3d56c49b08c25
3
+ metadata.gz: 043102c6d2f82c4799b2885cbd9fdd7e9dfac5f1fe0450dea8bc2392a995dca3
4
+ data.tar.gz: f188b33293746a02b5b8814a5b566cfefebb9311146d75a383522686424dc547
5
5
  SHA512:
6
- metadata.gz: 470e7fbc1cd13d0d108424eefab70069a222a26ca843e17d772c2eb0055eb99654718efc0a514723c67571a4c65a43ded42a7184f1a967fa72ef56b97bc07994
7
- data.tar.gz: 8d4d9fcdf6d33422cb00c0c503e09c676d8b62363827f84ba83ca69efe9780224d1cca729c3317ee2a421800773f55e6bf3e2b1ecf7997ce0d8971e171a7a086
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
@@ -50,5 +50,5 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "12.64"
53
+ "version" : "12.65"
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: 12.64
34
+ version: 12.65
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.64.tar.gz | tar -xf -
112
- cd Image-ExifTool-12.64
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.64';
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 or Error("Expected OPT[=VAL] argument for -api option\n"), $badCmd=1, next;
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);
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.64 --
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<^=>. See
6524
- L<Image::ExifTool Options|Image::ExifTool/Options> for a list of available
6525
- API options. This overrides API options set via the config file.
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.09';
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 => 'MediaGroupUUID', #NealKrawetz private communication
114
- # (changed in 12.19 from Name => 'ContentIdentifier', #forum8750)
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 => 'ImageCaptureReqestID',
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.07';
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.66';
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.45';
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