exiftool_vendored 12.64.0 → 12.65.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: dd7bba924fc8d29d342ec53188b3331ed2e8e9a28143eb169464ad1f65d8e404
4
- data.tar.gz: 17f3c5d49583b5f614f70c861e2277aab6fdcce3b28203749bc77517150dcb55
3
+ metadata.gz: 043102c6d2f82c4799b2885cbd9fdd7e9dfac5f1fe0450dea8bc2392a995dca3
4
+ data.tar.gz: f188b33293746a02b5b8814a5b566cfefebb9311146d75a383522686424dc547
5
5
  SHA512:
6
- metadata.gz: 0bfff20448186ed9958ecc67b4aaee95e67563b8bdadbb374d1d7ae1bd2f9300f5c80ba4ac4bd8efc0a1b13b8a89be0425afa2d3a4357b7d00c2250b6a69b6d3
7
- data.tar.gz: 87adab8506730664feccc82d398351791b4ff17732b7f090883dcae3607f74bf2c1049ada6107140a0052cc734cbe1e91044c9c025e9968384294eda5f3f1355
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