exiftool_vendored 12.33.0 → 12.34.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: c2579a96159a6bebe1550982f10cbb416ee1760ac092cb135c725e8704a66ed8
4
- data.tar.gz: 22a1963fc56a05e435fada1b55e74df2fcbd1782bd84a902595950ebe25ac923
3
+ metadata.gz: ab3c45f9ea8ba8771084a357dc9e5b8deb7eef973b4edee129f974899a412bf2
4
+ data.tar.gz: 12d0a164cf31c3283809dae4e5cccd9bb8b7e667216fe6b1f104c0247da3b62d
5
5
  SHA512:
6
- metadata.gz: bab490d296c90b99ed805c0a4b80b48f5d08282657f17f97ca856af36e6e4b32799c9162be40e3f0e4996d892530edebe582f37961df6ebb9717a892e935f3a2
7
- data.tar.gz: 8ac18abe9d185ce0b4fcf43909554caba45c904b73b10a8ae6e93c4011e120fd299b1d05f4dd404d7d1ab9c255a48b96c57d31057286f42e5a41717429ba2864
6
+ metadata.gz: 57a16498bc569f83ec79e0ca6179b073ebe2b8c468ba93c397d44f90259d28a37390a1a2b06770b4ffc8c36c7e63abfa055e82771b6cddfac3f6e1de78c7f3b9
7
+ data.tar.gz: 7eec435a6bd1a16cf49aa3324a0633cec6a319e9358ff5277c6601b509b9c967636092137237cfa9c265b28b0fd7209719f4b90432b8761c25d47d626b5f679d
data/bin/Changes CHANGED
@@ -7,6 +7,24 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.30. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Oct. 27, 2021 - Version 12.34
11
+
12
+ - Added support for ICC.2:2019 (Profile version 5.0.0 - iccMAX) color profiles
13
+ - Added ability to detect/delete a Windows Zone.Identifier alternate data
14
+ stream (ADS) via the new ZoneIdentifier tag
15
+ - Added support for the Sony ILCE-7M4 (thanks Jos Roost)
16
+ - Added a new Sony lens (thanks LibRaw and Jos Roost)
17
+ - Added a new SonyModelID (thanks LibRaw)
18
+ - Added a new Canon RF lens (thanks Norbert Wasser)
19
+ - Improved handling of some SVG files
20
+ - Patched -overwrite_original_in_place option to open the output file in
21
+ update mode rather than write mode (to allow some write optimizations on
22
+ certain filesystems)
23
+ - Fixed case of tag ID for new XMP-iptcExt:EventID (thanks Michael Steidl)
24
+ - Fixed problem extracting ICC_Profile information from some PDF files
25
+ - API Changes:
26
+ - Added QuickTimePad option
27
+
10
28
  Oct. 16, 2021 - Version 12.33
11
29
 
12
30
  - Added support for DNG version 1.6.0.0
data/bin/META.json CHANGED
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.33"
50
+ "version" : "12.34"
51
51
  }
data/bin/META.yml CHANGED
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.33
31
+ version: 12.34
data/bin/README CHANGED
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
107
107
  terminal window to extract and run ExifTool:
108
108
 
109
109
  cd ~/Desktop
110
- gzip -dc Image-ExifTool-12.33.tar.gz | tar -xf -
111
- cd Image-ExifTool-12.33
110
+ gzip -dc Image-ExifTool-12.34.tar.gz | tar -xf -
111
+ cd Image-ExifTool-12.34
112
112
  ./exiftool t/images/ExifTool.jpg
113
113
 
114
114
  Note: These commands extract meta information from one of the test images.
data/bin/exiftool CHANGED
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '12.33';
13
+ my $version = '12.34';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -3061,12 +3061,14 @@ sub SetImageInfo($$$)
3061
3061
  # temporarily disable CTRL-C during this critical operation
3062
3062
  $critical = 1;
3063
3063
  undef $tmpFile; # handle deletion of temporary file ourself
3064
- if ($et->Open(\*ORIG_FILE, $file, '>')) {
3064
+ if ($et->Open(\*ORIG_FILE, $file, '+<')) {
3065
3065
  binmode(ORIG_FILE);
3066
3066
  while (read(NEW_FILE, $buff, 65536)) {
3067
3067
  print ORIG_FILE $buff or $err = 1;
3068
3068
  }
3069
3069
  close(NEW_FILE);
3070
+ # Handle files being shorter than the original
3071
+ eval { truncate(ORIG_FILE, tell(ORIG_FILE)) } or $err = 1;
3070
3072
  close(ORIG_FILE) or $err = 1;
3071
3073
  if ($err) {
3072
3074
  Warn "Couldn't overwrite in place - $file\n";
@@ -5408,7 +5410,7 @@ with this command:
5408
5410
 
5409
5411
  produces output like this:
5410
5412
 
5411
- -- Generated by ExifTool 12.33 --
5413
+ -- Generated by ExifTool 12.34 --
5412
5414
  File: a.jpg - 2003:10:31 15:44:19
5413
5415
  (f/5.6, 1/60s, ISO 100)
5414
5416
  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.45';
38
+ $VERSION = '3.46';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -469,6 +469,11 @@ the PrintConv option is enabled and no time zone is specified. This is
469
469
  because Apple software may display crazy values if the time zone is missing
470
470
  for some tags.
471
471
 
472
+ By default ExifTool will remove null padding from some QuickTime containers
473
+ in Canon CR3 files when writing, but the
474
+ L<QuickTimePad|../ExifTool.html#QuickTimePad> option may be used to preserve
475
+ the original size by padding with nulls if necessary.
476
+
472
477
  See
473
478
  L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
474
479
  for the official specification.
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.52';
91
+ $VERSION = '4.53';
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)
@@ -595,7 +595,10 @@ $VERSION = '4.52';
595
595
  '61182.21' => 'Canon RF 70-200mm F4L IS USM', #42
596
596
  '61182.22' => 'Canon RF 50mm F1.8 STM', #42
597
597
  '61182.23' => 'Canon RF 14-35mm F4L IS USM', #IB
598
- '61182.24' => 'Canon RF 16mm F2.8 STM', #42
598
+ '61182.24' => 'Canon RF 100-400mm F5.6-8 IS USM', #42
599
+ '61182.25' => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
600
+ '61182.26' => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
601
+ '61182.27' => 'Canon RF 16mm F2.8 STM', #42
599
602
  #'61182.xx' => 'Canon RF 100mm F2.8L MACRO IS USM',
600
603
  65535 => 'n/a',
601
604
  );
@@ -6776,6 +6779,9 @@ my %ciMaxFocal = (
6776
6779
  278 => 'Canon RF 70-200mm F4L IS USM', #42
6777
6780
  280 => 'Canon RF 50mm F1.8 STM', #42
6778
6781
  281 => 'Canon RF 14-35mm F4L IS USM', #42/IB
6782
+ 283 => 'Canon RF 100-400mm F5.6-8 IS USM', #42
6783
+ 284 => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
6784
+ 285 => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
6779
6785
  288 => 'Canon RF 16mm F2.8 STM', #42
6780
6786
  #xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
6781
6787
  # Note: add new RF lenses to %canonLensTypes with ID 61182
@@ -8752,6 +8758,7 @@ my %filterConv = (
8752
8758
  # --> ignored when reading, but offsets are updated when writing
8753
8759
  CMT1 => { # (CR3 files)
8754
8760
  Name => 'IFD0',
8761
+ PreservePadding => 1,
8755
8762
  SubDirectory => {
8756
8763
  TagTable => 'Image::ExifTool::Exif::Main',
8757
8764
  ProcessProc => \&Image::ExifTool::ProcessTIFF,
@@ -8760,6 +8767,7 @@ my %filterConv = (
8760
8767
  },
8761
8768
  CMT2 => { # (CR3 files)
8762
8769
  Name => 'ExifIFD',
8770
+ PreservePadding => 1,
8763
8771
  SubDirectory => {
8764
8772
  TagTable => 'Image::ExifTool::Exif::Main',
8765
8773
  ProcessProc => \&Image::ExifTool::ProcessTIFF,
@@ -8768,6 +8776,7 @@ my %filterConv = (
8768
8776
  },
8769
8777
  CMT3 => { # (CR3 files)
8770
8778
  Name => 'MakerNoteCanon',
8779
+ PreservePadding => 1,
8771
8780
  SubDirectory => {
8772
8781
  TagTable => 'Image::ExifTool::Canon::Main',
8773
8782
  ProcessProc => \&ProcessCMT3,
@@ -8776,6 +8785,7 @@ my %filterConv = (
8776
8785
  },
8777
8786
  CMT4 => { # (CR3 files)
8778
8787
  Name => 'GPSInfo',
8788
+ PreservePadding => 1,
8779
8789
  SubDirectory => {
8780
8790
  TagTable => 'Image::ExifTool::GPS::Main',
8781
8791
  ProcessProc => \&Image::ExifTool::ProcessTIFF,
@@ -8786,6 +8796,7 @@ my %filterConv = (
8786
8796
  THMB => {
8787
8797
  Name => 'ThumbnailImage',
8788
8798
  Groups => { 2 => 'Preview' },
8799
+ PreservePadding => 1,
8789
8800
  RawConv => 'substr($val, 16)',
8790
8801
  Binary => 1,
8791
8802
  },
@@ -8800,6 +8811,7 @@ my %filterConv = (
8800
8811
  WRITE_PROC => 'Image::ExifTool::QuickTime::WriteQuickTime',
8801
8812
  CNOP => {
8802
8813
  Name => 'CanonVRD',
8814
+ PreservePadding => 1,
8803
8815
  SubDirectory => {
8804
8816
  TagTable => 'Image::ExifTool::CanonVRD::Main',
8805
8817
  WriteProc => 'Image::ExifTool::CanonVRD::WriteCanonDR4',
@@ -6,6 +6,8 @@
6
6
  # Revisions: 2009/08/28 - P. Harvey created
7
7
  # 2010/01/20 - P. Harvey complete re-write
8
8
  # 2010/07/16 - P. Harvey added UTF-16 support
9
+ #
10
+ # Notes: Charset lookups are generated using my convertCharset script
9
11
  #------------------------------------------------------------------------------
10
12
 
11
13
  package Image::ExifTool::Charset;
@@ -11,6 +11,7 @@
11
11
  # 4) http://www.color.org/privatetag2007-01.pdf
12
12
  # 5) http://www.color.org/icc_specs2.xalter (approved revisions, 2010-07-16)
13
13
  # 6) Eef Vreeland private communication
14
+ # 7) https://color.org/specification/ICC.2-2019.pdf
14
15
  #
15
16
  # Notes: The ICC profile information is different: the format of each
16
17
  # tag is embedded in the information instead of in the directory
@@ -24,7 +25,7 @@ use strict;
24
25
  use vars qw($VERSION);
25
26
  use Image::ExifTool qw(:DataAccess :Utils);
26
27
 
27
- $VERSION = '1.36';
28
+ $VERSION = '1.37';
28
29
 
29
30
  sub ProcessICC($$);
30
31
  sub ProcessICC_Profile($$$);
@@ -52,6 +53,11 @@ my %profileClass = (
52
53
  abst => 'Abstract Profile',
53
54
  nmcl => 'NamedColor Profile',
54
55
  nkpf => 'Nikon Input Device Profile (NON-STANDARD!)', # (written by Nikon utilities)
56
+ # additions in v5 (ref 7)
57
+ cenc => 'ColorEncodingSpace Profile',
58
+ 'mid '=> 'MultiplexIdentification Profile',
59
+ mlnk => 'MultiplexLink Profile',
60
+ mvis => 'MultiplexVisualization Profile',
55
61
  );
56
62
  my %manuSig = ( #6
57
63
  'NONE' => 'none',
@@ -539,6 +545,90 @@ my %manuSig = ( #6
539
545
  Binary => 1, # (NC)
540
546
  },
541
547
 
548
+ # new tags in v5 (ref 7)
549
+ A2B3 => 'AToB3',
550
+ A2M0 => 'AToM0',
551
+ B2A3 => 'BToA3',
552
+ bcp0 => 'BRDFColorimetricParameter3Tag',
553
+ bcp1 => 'BRDFColorimetricParam1',
554
+ bcp2 => 'BRDFColorimetricParam2',
555
+ bcp3 => 'BRDFColorimetricParam3',
556
+ bsp0 => 'BRDFSpectralParam0',
557
+ bsp1 => 'BRDFSpectralParam1',
558
+ bsp2 => 'BRDFSpectralParam2',
559
+ bsp3 => 'BRDFSpectralParam3',
560
+ bAB0 => 'BRDFAToB0',
561
+ bAB1 => 'BRDFAToB1',
562
+ bAB2 => 'BRDFAToB2',
563
+ bAB3 => 'BRDFAToB3',
564
+ bBA0 => 'BRDFBToA0',
565
+ bBA1 => 'BRDFBToA1',
566
+ bBA2 => 'BRDFBToA2',
567
+ bBA3 => 'BRDFBToA3',
568
+ bBD0 => 'BRDFBToD0',
569
+ bBD1 => 'BRDFBToD1',
570
+ bBD2 => 'BRDFBToD2',
571
+ bBD3 => 'BRDFBToD3',
572
+ bDB0 => 'BRDFDToB0',
573
+ bDB1 => 'BRDFDToB1',
574
+ bDB2 => 'BRDFDToB2',
575
+ bDB3 => 'BRDFDToB3',
576
+ bMB0 => 'BRDFMToB0',
577
+ bMB1 => 'BRDFMToB1',
578
+ bMB2 => 'BRDFMToB2',
579
+ bMB3 => 'BRDFMToB3',
580
+ bMS0 => 'BRDFMToS0',
581
+ bMS1 => 'BRDFMToS1',
582
+ bMS2 => 'BRDFMToS2',
583
+ bMS3 => 'BRDFMToS3',
584
+ dAB0 => 'DirectionalAToB0',
585
+ dAB1 => 'DirectionalAToB1',
586
+ dAB2 => 'DirectionalAToB2',
587
+ dAB3 => 'DirectionalAToB3',
588
+ dBA0 => 'DirectionalBToA0',
589
+ dBA1 => 'DirectionalBToA1',
590
+ dBA2 => 'DirectionalBToA2',
591
+ dBA3 => 'DirectionalBToA3',
592
+ dBD0 => 'DirectionalBToD0',
593
+ dBD1 => 'DirectionalBToD1',
594
+ dBD2 => 'DirectionalBToD2',
595
+ dBD3 => 'DirectionalBToD3',
596
+ dDB0 => 'DirectionalDToB0',
597
+ dDB1 => 'DirectionalDToB1',
598
+ dDB2 => 'DirectionalDToB2',
599
+ dDB3 => 'DirectionalDToB3',
600
+ gdb0 => 'GamutBoundaryDescription0',
601
+ gdb1 => 'GamutBoundaryDescription1',
602
+ gdb2 => 'GamutBoundaryDescription2',
603
+ gdb3 => 'GamutBoundaryDescription3',
604
+ 'mdv '=> 'MultiplexDefaultValues',
605
+ mcta => 'MultiplixTypeArray',
606
+ minf => 'MeasurementInfo',
607
+ miin => 'MeasurementInputInfo',
608
+ M2A0 => 'MToA0',
609
+ M2B0 => 'MToB0',
610
+ M2B1 => 'MToB1',
611
+ M2B2 => 'MToB2',
612
+ M2B3 => 'MToB3',
613
+ M2S0 => 'MToS0',
614
+ M2S1 => 'MToS1',
615
+ M2S2 => 'MToS2',
616
+ M2S3 => 'MToS3',
617
+ cept => 'ColorEncodingParams',
618
+ csnm => 'ColorSpaceName',
619
+ cloo => 'ColorantOrderOut',
620
+ clio => 'ColorantInfoOut',
621
+ c2sp => 'CustomToStandardPcc',
622
+ 'CxF '=> 'CXF',
623
+ nmcl => 'NamedColor',
624
+ psin => 'ProfileSequenceInfo',
625
+ rfnm => 'ReferenceName',
626
+ svcn => 'SpectralViewingConditions',
627
+ swpt => 'SpectralWhitePoint',
628
+ s2cp => 'StandardToCustomPcc',
629
+ smap => 'SurfaceMap',
630
+ # smwp ? (seen in some v5 samples)
631
+
542
632
  # the following entry represents the ICC profile header, and doesn't
543
633
  # exist as a tag in the directory. It is only in this table to provide
544
634
  # a link so ExifTool can locate the header tags
@@ -850,7 +940,7 @@ sub FormatICCTag($$$)
850
940
  # dataType
851
941
  if ($type eq 'data' and $size >= 12) {
852
942
  my $form = Get32u($dataPt, $offset+8);
853
- # format 0 is ASCII data
943
+ # format 0 is UTF-8 data
854
944
  $form == 0 and return substr($$dataPt, $offset+12, $size-12);
855
945
  # binary data and other data types treat as binary (ie. don't format)
856
946
  }
@@ -1022,7 +1112,7 @@ sub ValidateICC($)
1022
1112
  $profileClass{substr($$valPtr, 12, 4)} or $err = 'profile class';
1023
1113
  my $col = substr($$valPtr, 16, 4); # ColorSpaceData
1024
1114
  my $con = substr($$valPtr, 20, 4); # ConnectionSpace
1025
- my $match = '(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR)';
1115
+ my $match = '(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR|nc..|\0{4})';
1026
1116
  $col =~ /$match/ or $err = 'color space';
1027
1117
  $con =~ /$match/ or $err = 'connection space';
1028
1118
  return $err ? "Invalid ICC profile (bad $err)" : undef;
@@ -1134,7 +1224,7 @@ sub ProcessICC_Profile($$$)
1134
1224
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tagID);
1135
1225
  # unknown tags aren't generated automatically by GetTagInfo()
1136
1226
  # if the tagID's aren't numeric, so we must do this manually:
1137
- if (not $tagInfo and $$et{OPTIONS}{Unknown}) {
1227
+ if (not $tagInfo and ($$et{OPTIONS}{Unknown} or $verbose)) {
1138
1228
  $tagInfo = { Unknown => 1 };
1139
1229
  AddTagToTable($tagTablePtr, $tagID, $tagInfo);
1140
1230
  }
@@ -1277,6 +1367,8 @@ under the same terms as Perl itself.
1277
1367
 
1278
1368
  =item L<http://developer.apple.com/documentation/GraphicsImaging/Reference/ColorSync_Manager/ColorSync_Manager.pdf>
1279
1369
 
1370
+ =item L<https://color.org/specification/ICC.2-2019.pdf>
1371
+
1280
1372
  =back
1281
1373
 
1282
1374
  =head1 SEE ALSO
@@ -21,7 +21,7 @@ use vars qw($VERSION $AUTOLOAD $lastFetched);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  require Exporter;
23
23
 
24
- $VERSION = '1.53';
24
+ $VERSION = '1.54';
25
25
 
26
26
  sub FetchObject($$$$);
27
27
  sub ExtractObject($$;$$);
@@ -280,10 +280,12 @@ my %supportedFilter = (
280
280
  ConvertToDict => 1,
281
281
  },
282
282
  Cs1 => {
283
- SubDirectory => { TagTable => 'Image::ExifTool::PDF::ICCBased' },
283
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::DefaultRGB' },
284
+ ConvertToDict => 1, # (just in case)
284
285
  },
285
286
  CS0 => {
286
- SubDirectory => { TagTable => 'Image::ExifTool::PDF::ICCBased' },
287
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::DefaultRGB' },
288
+ ConvertToDict => 1, # (just in case)
287
289
  },
288
290
  );
289
291
 
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
47
47
  use Image::ExifTool::Exif;
48
48
  use Image::ExifTool::GPS;
49
49
 
50
- $VERSION = '2.70';
50
+ $VERSION = '2.71';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -558,6 +558,7 @@ my %eeBox2 = (
558
558
  # *** this is where ExifTool writes XMP in MP4 videos (as per XMP spec) ***
559
559
  Condition => '$$valPt=~/^\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac/',
560
560
  WriteGroup => 'XMP', # (write main XMP tags here)
561
+ PreservePadding => 1,
561
562
  SubDirectory => {
562
563
  TagTable => 'Image::ExifTool::XMP::Main',
563
564
  Start => 16,
@@ -607,6 +608,7 @@ my %eeBox2 = (
607
608
  Name => 'PreviewImage',
608
609
  Condition => '$$valPt=~/^\xea\xf4\x2b\x5e\x1c\x98\x4b\x88\xb9\xfb\xb7\xdc\x40\x6e\x4d\x16/',
609
610
  Groups => { 2 => 'Preview' },
611
+ PreservePadding => 1,
610
612
  # 0x00 - undef[16]: UUID
611
613
  # 0x10 - int32u[2]: "0 1" (version and/or item count?)
612
614
  # 0x18 - int32u: PRVW atom size
@@ -9425,7 +9427,7 @@ ItemID: foreach $id (keys %$items) {
9425
9427
  for (;;) {
9426
9428
  last if $pos + 16 > $size;
9427
9429
  my ($len, $type, $flags, $ctry, $lang) = unpack("x${pos}Na4Nnn", $val);
9428
- last if $pos + $len > $size;
9430
+ last if $pos + $len > $size or not $len;
9429
9431
  my ($value, $langInfo, $oldDir);
9430
9432
  my $format = $$tagInfo{Format};
9431
9433
  if ($type eq 'data' and $len >= 16) {
@@ -450,6 +450,10 @@ numerical, and generated automatically otherwise.
450
450
  may be written if the tag already exists. By default, all
451
451
  MakerNotes tags are permanent unless otherwise specified.
452
452
 
453
+ 'PreservePadding' - [QuickTime only] flag to preserve the
454
+ original size of the QuickTime atom by padding with nulls when
455
+ writing with the QuickTimePad option.
456
+
453
457
  'PrintHex' - specifies that unknown PrintConv values should
454
458
  be printed in hex (eg. 'Unknown (0x1)'). Also causes
455
459
  numerical tag values to be printed in hex in the HTML tag name
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
34
34
  use Image::ExifTool::Exif;
35
35
  use Image::ExifTool::Minolta;
36
36
 
37
- $VERSION = '3.46';
37
+ $VERSION = '3.47';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -241,7 +241,8 @@ sub PrintInvLensSpec($;$$);
241
241
  50528 => 'Sigma 35mm F1.4 DG DN | A', #IB/JR (021)
242
242
  50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
243
243
  50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
244
-
244
+ 50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
245
+
245
246
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
246
247
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
247
248
  50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
@@ -1580,6 +1581,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1580
1581
  65535 => 'n/a',
1581
1582
  },
1582
1583
  },
1584
+ # 0x203a - 0x2041: first seen October 2021 for ILCE-7M4
1583
1585
  0x3000 => {
1584
1586
  Name => 'ShotInfo',
1585
1587
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
@@ -1608,7 +1610,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1608
1610
  # from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
1609
1611
  {
1610
1612
  Name => 'Tag9050a',
1611
- Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1613
+ Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1612
1614
  SubDirectory => {
1613
1615
  TagTable => 'Image::ExifTool::Sony::Tag9050a',
1614
1616
  ByteOrder => 'LittleEndian',
@@ -1622,7 +1624,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1622
1624
  },
1623
1625
  },{
1624
1626
  Name => 'Tag9050c',
1625
- Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)/',
1627
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)/',
1626
1628
  SubDirectory => {
1627
1629
  TagTable => 'Image::ExifTool::Sony::Tag9050c',
1628
1630
  ByteOrder => 'LittleEndian',
@@ -2032,6 +2034,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2032
2034
  385 => 'ILME-FX3', #JR
2033
2035
  386 => 'ILCE-7RM3A', #JR
2034
2036
  387 => 'ILCE-7RM4A', #forum12542
2037
+ 388 => 'ILCE-7M4', #IB/JR
2035
2038
  },
2036
2039
  },
2037
2040
  0xb020 => { #2
@@ -7954,7 +7957,7 @@ my %isoSetting2010 = (
7954
7957
  },
7955
7958
  0x0088 => {
7956
7959
  Name => 'InternalSerialNumber', #(NC)
7957
- Condition => '$$self{Model} =~ /^(ILCE-7SM3|ILME-FX3)/',
7960
+ Condition => '$$self{Model} =~ /^(ILCE-(7M4|7SM3)|ILME-FX3)/',
7958
7961
  Format => 'int8u[6]',
7959
7962
  PrintConv => 'unpack "H*", pack "C*", split " ", $val',
7960
7963
  },
@@ -8192,7 +8195,7 @@ my %isoSetting2010 = (
8192
8195
  },
8193
8196
  0x002a => [{
8194
8197
  Name => 'Quality2',
8195
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8198
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8196
8199
  PrintConv => {
8197
8200
  0 => 'JPEG',
8198
8201
  1 => 'RAW',
@@ -8201,7 +8204,7 @@ my %isoSetting2010 = (
8201
8204
  },
8202
8205
  },{
8203
8206
  Name => 'Quality2',
8204
- Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8207
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8205
8208
  PrintConv => {
8206
8209
  1 => 'JPEG',
8207
8210
  2 => 'RAW',
@@ -8212,13 +8215,13 @@ my %isoSetting2010 = (
8212
8215
  }],
8213
8216
  0x0047 => {
8214
8217
  Name => 'SonyImageHeight',
8215
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8218
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8216
8219
  Format => 'int16u',
8217
8220
  PrintConv => '$val > 0 ? 8*$val : "n.a."',
8218
8221
  },
8219
8222
  0x0053 => {
8220
8223
  Name => 'ModelReleaseYear',
8221
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8224
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8222
8225
  Format => 'int8u',
8223
8226
  PrintConv => 'sprintf("20%.2d", $val)',
8224
8227
  },
@@ -8233,10 +8236,11 @@ my %isoSetting2010 = (
8233
8236
  FIRST_ENTRY => 0,
8234
8237
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8235
8238
  DATAMEMBER => [ 0 ],
8236
- IS_SUBDIR => [ 0x0498, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8239
+ IS_SUBDIR => [ 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8237
8240
  0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8238
8241
 
8239
8242
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8243
+ 0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8240
8244
  0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8241
8245
  0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8242
8246
  0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -9505,7 +9509,7 @@ my %isoSetting2010 = (
9505
9509
  WRITE_PROC => \&WriteEnciphered,
9506
9510
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9507
9511
  FORMAT => 'int8u',
9508
- NOTES => 'Valid for the ILCE-1/7SM3, ILME-FX3.',
9512
+ NOTES => 'Valid for the ILCE-1/7M4/7SM3, ILME-FX3.',
9509
9513
  FIRST_ENTRY => 0,
9510
9514
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9511
9515
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -9632,10 +9636,22 @@ my %isoSetting2010 = (
9632
9636
  },
9633
9637
  0x088f => {
9634
9638
  Name => 'VignettingCorrParams',
9639
+ Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9640
+ Format => 'int16s[16]',
9641
+ },
9642
+ 0x0891 => {
9643
+ Name => 'VignettingCorrParams',
9644
+ Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9635
9645
  Format => 'int16s[16]',
9636
9646
  },
9637
9647
  0x0914 => {
9638
9648
  Name => 'ChromaticAberrationCorrParams',
9649
+ Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9650
+ Format => 'int16s[32]',
9651
+ },
9652
+ 0x0916 => {
9653
+ Name => 'ChromaticAberrationCorrParams',
9654
+ Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9639
9655
  Format => 'int16s[32]',
9640
9656
  },
9641
9657
  );
@@ -2345,7 +2345,7 @@ my %tagLookup = (
2345
2345
  'eventfieldnotes' => { 116 => [\'Event','EventFieldNotes'] },
2346
2346
  'eventfieldnumber' => { 116 => [\'Event','EventFieldNumber'] },
2347
2347
  'eventhabitat' => { 116 => [\'Event','EventHabitat'] },
2348
- 'eventid' => { 116 => [\'Event','EventEventID'], 480 => 'EventID' },
2348
+ 'eventid' => { 116 => [\'Event','EventEventID'], 480 => 'EventId' },
2349
2349
  'eventlatestdate' => { 116 => [\'Event','EventLatestDate'] },
2350
2350
  'eventmonth' => { 116 => [\'Event','EventMonth'] },
2351
2351
  'eventnumber' => { 372 => 0x9, 373 => 0x37, 374 => 0x3a },
@@ -6431,6 +6431,7 @@ my %tagLookup = (
6431
6431
  'yield' => { 486 => 'yield' },
6432
6432
  'yposition' => { 117 => 0x11f },
6433
6433
  'yresolution' => { 117 => 0x11b, 132 => 0x5, 361 => 0x4, 490 => 'YResolution' },
6434
+ 'zoneidentifier' => { 118 => 'ZoneIdentifier' },
6434
6435
  'zonematching' => { 183 => 0x10a, 186 => [0x3a,0x4a], 411 => 0xb024 },
6435
6436
  'zonematchingmode' => { 181 => 0x14 },
6436
6437
  'zonematchingon' => { 180 => 0x75 },
@@ -6657,6 +6658,8 @@ my %tagExists = (
6657
6658
  'atob0' => 1,
6658
6659
  'atob1' => 1,
6659
6660
  'atob2' => 1,
6661
+ 'atob3' => 1,
6662
+ 'atom0' => 1,
6660
6663
  'atsccontent' => 1,
6661
6664
  'attachments' => 1,
6662
6665
  'attitude' => 1,
@@ -6896,6 +6899,38 @@ my %tagExists = (
6896
6899
  'brain' => 1,
6897
6900
  'brandingimageid' => 1,
6898
6901
  'brandingname' => 1,
6902
+ 'brdfatob0' => 1,
6903
+ 'brdfatob1' => 1,
6904
+ 'brdfatob2' => 1,
6905
+ 'brdfatob3' => 1,
6906
+ 'brdfbtoa0' => 1,
6907
+ 'brdfbtoa1' => 1,
6908
+ 'brdfbtoa2' => 1,
6909
+ 'brdfbtoa3' => 1,
6910
+ 'brdfbtod0' => 1,
6911
+ 'brdfbtod1' => 1,
6912
+ 'brdfbtod2' => 1,
6913
+ 'brdfbtod3' => 1,
6914
+ 'brdfcolorimetricparam1' => 1,
6915
+ 'brdfcolorimetricparam2' => 1,
6916
+ 'brdfcolorimetricparam3' => 1,
6917
+ 'brdfcolorimetricparameter3tag' => 1,
6918
+ 'brdfdtob0' => 1,
6919
+ 'brdfdtob1' => 1,
6920
+ 'brdfdtob2' => 1,
6921
+ 'brdfdtob3' => 1,
6922
+ 'brdfmtob0' => 1,
6923
+ 'brdfmtob1' => 1,
6924
+ 'brdfmtob2' => 1,
6925
+ 'brdfmtob3' => 1,
6926
+ 'brdfmtos0' => 1,
6927
+ 'brdfmtos1' => 1,
6928
+ 'brdfmtos2' => 1,
6929
+ 'brdfmtos3' => 1,
6930
+ 'brdfspectralparam0' => 1,
6931
+ 'brdfspectralparam1' => 1,
6932
+ 'brdfspectralparam2' => 1,
6933
+ 'brdfspectralparam3' => 1,
6899
6934
  'breakchar' => 1,
6900
6935
  'brightdefectintegrationms' => 1,
6901
6936
  'brightdefectisocode' => 1,
@@ -6908,6 +6943,7 @@ my %tagExists = (
6908
6943
  'btoa0' => 1,
6909
6944
  'btoa1' => 1,
6910
6945
  'btoa2' => 1,
6946
+ 'btoa3' => 1,
6911
6947
  'btod0' => 1,
6912
6948
  'btod1' => 1,
6913
6949
  'btod2' => 1,
@@ -7241,7 +7277,9 @@ my %tagExists = (
7241
7277
  'colorant3coordinates' => 1,
7242
7278
  'colorant3name' => 1,
7243
7279
  'colorantcount' => 1,
7280
+ 'colorantinfoout' => 1,
7244
7281
  'colorantorder' => 1,
7282
+ 'colorantorderout' => 1,
7245
7283
  'coloranttable' => 1,
7246
7284
  'coloranttableout' => 1,
7247
7285
  'coloraverages' => 1,
@@ -7280,6 +7318,7 @@ my %tagExists = (
7280
7318
  'colordata8' => 1,
7281
7319
  'colordata9' => 1,
7282
7320
  'colordataunknown' => 1,
7321
+ 'colorencodingparams' => 1,
7283
7322
  'colorgroup' => 1,
7284
7323
  'colorhalftoninginfo' => 1,
7285
7324
  'colorimetricintentimagestate' => 1,
@@ -7301,6 +7340,7 @@ my %tagExists = (
7301
7340
  'colorsamplersresource2' => 1,
7302
7341
  'colorsetup' => 1,
7303
7342
  'colorspacedata' => 1,
7343
+ 'colorspacename' => 1,
7304
7344
  'colorspecapproximation' => 1,
7305
7345
  'colorspecdata' => 1,
7306
7346
  'colorspecification' => 1,
@@ -7518,6 +7558,8 @@ my %tagExists = (
7518
7558
  'customsettingsd810' => 1,
7519
7559
  'customsettingsd850' => 1,
7520
7560
  'customsettingsd90' => 1,
7561
+ 'customtostandardpcc' => 1,
7562
+ 'cxf' => 1,
7521
7563
  'd-lightinghqdata' => 1,
7522
7564
  'd-lightinghsdata' => 1,
7523
7565
  'd2' => 1,
@@ -7681,6 +7723,22 @@ my %tagExists = (
7681
7723
  'digitalimagebroker' => 1,
7682
7724
  'digitalsignature' => 1,
7683
7725
  'dimensions' => 1,
7726
+ 'directionalatob0' => 1,
7727
+ 'directionalatob1' => 1,
7728
+ 'directionalatob2' => 1,
7729
+ 'directionalatob3' => 1,
7730
+ 'directionalbtoa0' => 1,
7731
+ 'directionalbtoa1' => 1,
7732
+ 'directionalbtoa2' => 1,
7733
+ 'directionalbtoa3' => 1,
7734
+ 'directionalbtod0' => 1,
7735
+ 'directionalbtod1' => 1,
7736
+ 'directionalbtod2' => 1,
7737
+ 'directionalbtod3' => 1,
7738
+ 'directionaldtob0' => 1,
7739
+ 'directionaldtob1' => 1,
7740
+ 'directionaldtob2' => 1,
7741
+ 'directionaldtob3' => 1,
7684
7742
  'directors' => 1,
7685
7743
  'disableflagspresent' => 1,
7686
7744
  'discardobjects' => 1,
@@ -8250,6 +8308,10 @@ my %tagExists = (
8250
8308
  'gammared' => 1,
8251
8309
  'gammatable' => 1,
8252
8310
  'gamut' => 1,
8311
+ 'gamutboundarydescription0' => 1,
8312
+ 'gamutboundarydescription1' => 1,
8313
+ 'gamutboundarydescription2' => 1,
8314
+ 'gamutboundarydescription3' => 1,
8253
8315
  'gapless' => 1,
8254
8316
  'gaudio' => 1,
8255
8317
  'gaussianweights' => 1,
@@ -9239,6 +9301,7 @@ my %tagExists = (
9239
9301
  'measurementgeometry' => 1,
9240
9302
  'measurementilluminant' => 1,
9241
9303
  'measurementinfo' => 1,
9304
+ 'measurementinputinfo' => 1,
9242
9305
  'measurementobserver' => 1,
9243
9306
  'measurementscale' => 1,
9244
9307
  'mebx' => 1,
@@ -9420,9 +9483,20 @@ my %tagExists = (
9420
9483
  'msdocumenttextposition' => 1,
9421
9484
  'mspropertysetstorage' => 1,
9422
9485
  'msstereo' => 1,
9486
+ 'mtoa0' => 1,
9487
+ 'mtob0' => 1,
9488
+ 'mtob1' => 1,
9489
+ 'mtob2' => 1,
9490
+ 'mtob3' => 1,
9491
+ 'mtos0' => 1,
9492
+ 'mtos1' => 1,
9493
+ 'mtos2' => 1,
9494
+ 'mtos3' => 1,
9423
9495
  'multiexp' => 1,
9424
9496
  'multiexposureversion' => 1,
9425
9497
  'multimediatype' => 1,
9498
+ 'multiplexdefaultvalues' => 1,
9499
+ 'multiplixtypearray' => 1,
9426
9500
  'multiprofiles' => 1,
9427
9501
  'multiquality' => 1,
9428
9502
  'multishoton' => 1,
@@ -9991,6 +10065,7 @@ my %tagExists = (
9991
10065
  'profileifd' => 1,
9992
10066
  'profilesequencedesc' => 1,
9993
10067
  'profilesequenceidentifier' => 1,
10068
+ 'profilesequenceinfo' => 1,
9994
10069
  'profilesize' => 1,
9995
10070
  'profileversion' => 1,
9996
10071
  'progid' => 1,
@@ -10195,6 +10270,7 @@ my %tagExists = (
10195
10270
  'reelnumber' => 1,
10196
10271
  'reeltimecode' => 1,
10197
10272
  'reference' => 1,
10273
+ 'referencename' => 1,
10198
10274
  'referencetemperature' => 1,
10199
10275
  'reflectedapparenttemperature' => 1,
10200
10276
  'reflection' => 1,
@@ -10632,6 +10708,8 @@ my %tagExists = (
10632
10708
  'specialeffectsopticalfilter' => 1,
10633
10709
  'specialfolderdata' => 1,
10634
10710
  'specificationversion' => 1,
10711
+ 'spectralviewingconditions' => 1,
10712
+ 'spectralwhitepoint' => 1,
10635
10713
  'speed' => 1,
10636
10714
  'sphericalvideo' => 1,
10637
10715
  'sphericalvideoxml' => 1,
@@ -10652,6 +10730,7 @@ my %tagExists = (
10652
10730
  'srgbrendering' => 1,
10653
10731
  'stampinfo' => 1,
10654
10732
  'stamptoolcount' => 1,
10733
+ 'standardtocustompcc' => 1,
10655
10734
  'standbymonitorofftime' => 1,
10656
10735
  'starring' => 1,
10657
10736
  'startdate' => 1,
@@ -10775,6 +10854,7 @@ my %tagExists = (
10775
10854
  'suggestedpalette' => 1,
10776
10855
  'summary' => 1,
10777
10856
  'summaryinfo' => 1,
10857
+ 'surfacemap' => 1,
10778
10858
  'surroundmode' => 1,
10779
10859
  'surroundshotvideo' => 1,
10780
10860
  'surroundshotvideoname' => 1,
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 24363 tags, with 15798 unique tag names.
15
+ They contain a total of 24447 tags, with 15878 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -3161,8 +3161,8 @@ These tags belong to the ExifTool XMP-exif family 1 group.
3161
3161
 
3162
3162
  =head3 XMP exifEX Tags
3163
3163
 
3164
- EXIF tags added by the EXIF 2.31 for XMP specification (see
3165
- L<http://www.cipa.jp/std/documents/e/DC-X010-2017.pdf>).
3164
+ EXIF tags added by the EXIF 2.32 for XMP specification (see
3165
+ L<https://cipa.jp/std/documents/download_e.html?DC-010-2020_E>).
3166
3166
 
3167
3167
  These tags belong to the ExifTool XMP-exifEX family 1 group.
3168
3168
 
@@ -5569,32 +5569,98 @@ specification.
5569
5569
  'A2B0' AToB0 no
5570
5570
  'A2B1' AToB1 no
5571
5571
  'A2B2' AToB2 no
5572
+ 'A2B3' AToB3 no
5573
+ 'A2M0' AToM0 no
5572
5574
  'B2A0' BToA0 no
5573
5575
  'B2A1' BToA1 no
5574
5576
  'B2A2' BToA2 no
5577
+ 'B2A3' BToA3 no
5575
5578
  'B2D0' BToD0 no
5576
5579
  'B2D1' BToD1 no
5577
5580
  'B2D2' BToD2 no
5578
5581
  'B2D3' BToD3 no
5582
+ 'CxF ' CXF no
5579
5583
  'D2B0' DToB0 no
5580
5584
  'D2B1' DToB1 no
5581
5585
  'D2B2' DToB2 no
5582
5586
  'D2B3' DToB3 no
5583
5587
  'Header' ProfileHeader ICC_Profile Header
5588
+ 'M2A0' MToA0 no
5589
+ 'M2B0' MToB0 no
5590
+ 'M2B1' MToB1 no
5591
+ 'M2B2' MToB2 no
5592
+ 'M2B3' MToB3 no
5593
+ 'M2S0' MToS0 no
5594
+ 'M2S1' MToS1 no
5595
+ 'M2S2' MToS2 no
5596
+ 'M2S3' MToS3 no
5584
5597
  'MS00' WCSProfiles no
5598
+ 'bAB0' BRDFAToB0 no
5599
+ 'bAB1' BRDFAToB1 no
5600
+ 'bAB2' BRDFAToB2 no
5601
+ 'bAB3' BRDFAToB3 no
5602
+ 'bBA0' BRDFBToA0 no
5603
+ 'bBA1' BRDFBToA1 no
5604
+ 'bBA2' BRDFBToA2 no
5605
+ 'bBA3' BRDFBToA3 no
5606
+ 'bBD0' BRDFBToD0 no
5607
+ 'bBD1' BRDFBToD1 no
5608
+ 'bBD2' BRDFBToD2 no
5609
+ 'bBD3' BRDFBToD3 no
5610
+ 'bDB0' BRDFDToB0 no
5611
+ 'bDB1' BRDFDToB1 no
5612
+ 'bDB2' BRDFDToB2 no
5613
+ 'bDB3' BRDFDToB3 no
5614
+ 'bMB0' BRDFMToB0 no
5615
+ 'bMB1' BRDFMToB1 no
5616
+ 'bMB2' BRDFMToB2 no
5617
+ 'bMB3' BRDFMToB3 no
5618
+ 'bMS0' BRDFMToS0 no
5619
+ 'bMS1' BRDFMToS1 no
5620
+ 'bMS2' BRDFMToS2 no
5621
+ 'bMS3' BRDFMToS3 no
5585
5622
  'bTRC' BlueTRC no
5586
5623
  'bXYZ' BlueMatrixColumn no
5624
+ 'bcp0' BRDFColorimetricParameter3Tag no
5625
+ 'bcp1' BRDFColorimetricParam1 no
5626
+ 'bcp2' BRDFColorimetricParam2 no
5627
+ 'bcp3' BRDFColorimetricParam3 no
5587
5628
  'bfd ' UCRBG no
5588
5629
  'bkpt' MediaBlackPoint no
5630
+ 'bsp0' BRDFSpectralParam0 no
5631
+ 'bsp1' BRDFSpectralParam1 no
5632
+ 'bsp2' BRDFSpectralParam2 no
5633
+ 'bsp3' BRDFSpectralParam3 no
5634
+ 'c2sp' CustomToStandardPcc no
5589
5635
  'calt' CalibrationDateTime no
5636
+ 'cept' ColorEncodingParams no
5590
5637
  'chad' ChromaticAdaptation no
5591
5638
  'chrm' Chromaticity ICC_Profile Chromaticity
5592
5639
  'ciis' ColorimetricIntentImageState no
5640
+ 'clio' ColorantInfoOut no
5641
+ 'cloo' ColorantOrderOut no
5593
5642
  'clot' ColorantTableOut no
5594
5643
  'clro' ColorantOrder no
5595
5644
  'clrt' ColorantTable ICC_Profile ColorantTable
5596
5645
  'cprt' ProfileCopyright no
5597
5646
  'crdi' CRDInfo no
5647
+ 'csnm' ColorSpaceName no
5648
+ 'dAB0' DirectionalAToB0 no
5649
+ 'dAB1' DirectionalAToB1 no
5650
+ 'dAB2' DirectionalAToB2 no
5651
+ 'dAB3' DirectionalAToB3 no
5652
+ 'dBA0' DirectionalBToA0 no
5653
+ 'dBA1' DirectionalBToA1 no
5654
+ 'dBA2' DirectionalBToA2 no
5655
+ 'dBA3' DirectionalBToA3 no
5656
+ 'dBD0' DirectionalBToD0 no
5657
+ 'dBD1' DirectionalBToD1 no
5658
+ 'dBD2' DirectionalBToD2 no
5659
+ 'dBD3' DirectionalBToD3 no
5660
+ 'dDB0' DirectionalDToB0 no
5661
+ 'dDB1' DirectionalDToB1 no
5662
+ 'dDB2' DirectionalDToB2 no
5663
+ 'dDB3' DirectionalDToB3 no
5598
5664
  'desc' ProfileDescription no
5599
5665
  'devs' DeviceSettings no
5600
5666
  'dmdd' DeviceModelDesc no
@@ -5604,14 +5670,23 @@ specification.
5604
5670
  'gTRC' GreenTRC no
5605
5671
  'gXYZ' GreenMatrixColumn no
5606
5672
  'gamt' Gamut no
5673
+ 'gdb0' GamutBoundaryDescription0 no
5674
+ 'gdb1' GamutBoundaryDescription1 no
5675
+ 'gdb2' GamutBoundaryDescription2 no
5676
+ 'gdb3' GamutBoundaryDescription3 no
5607
5677
  'kTRC' GrayTRC no
5608
5678
  'lumi' Luminance no
5679
+ 'mcta' MultiplixTypeArray no
5680
+ 'mdv ' MultiplexDefaultValues no
5609
5681
  'meas' Measurement ICC_Profile Measurement
5610
5682
  'meta' Metadata ICC_Profile Metadata
5683
+ 'miin' MeasurementInputInfo no
5684
+ 'minf' MeasurementInfo no
5611
5685
  'mmod' MakeAndModel no
5612
5686
  'ncl2' NamedColor2 no
5613
5687
  'ncol' NamedColor no
5614
5688
  'ndin' NativeDisplayInfo no
5689
+ 'nmcl' NamedColor no
5615
5690
  'pre0' Preview0 no
5616
5691
  'pre1' Preview1 no
5617
5692
  'pre2' Preview2 no
@@ -5623,18 +5698,24 @@ specification.
5623
5698
  'psd3' PostScript2CRD3 no
5624
5699
  'pseq' ProfileSequenceDesc no
5625
5700
  'psid' ProfileSequenceIdentifier no
5701
+ 'psin' ProfileSequenceInfo no
5626
5702
  'psvm' PS2CRDVMSize no
5627
5703
  'rTRC' RedTRC no
5628
5704
  'rXYZ' RedMatrixColumn no
5629
5705
  'resp' OutputResponse no
5706
+ 'rfnm' ReferenceName no
5630
5707
  'rhoc' ReflectionHardcopyOrigColorimetry no
5631
5708
  'rig0' PerceptualRenderingIntentGamut no
5632
5709
  'rig2' SaturationRenderingIntentGamut no
5633
5710
  'rpoc' ReflectionPrintOutputColorimetry no
5711
+ 's2cp' StandardToCustomPcc no
5634
5712
  'sape' SceneAppearanceEstimates no
5635
5713
  'scoe' SceneColorimetryEstimates no
5636
5714
  'scrd' ScreeningDesc no
5637
5715
  'scrn' Screening no
5716
+ 'smap' SurfaceMap no
5717
+ 'svcn' SpectralViewingConditions no
5718
+ 'swpt' SpectralWhitePoint no
5638
5719
  'targ' CharTarget no
5639
5720
  'tech' Technology no
5640
5721
  'vcgt' VideoCardGamma no
@@ -18744,6 +18825,7 @@ WX350/WX500, ILCE-1/7/7C/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/7SM3/9/9M2/5000/
18744
18825
  Index1 Tag Name Writable
18745
18826
  ------ -------- --------
18746
18827
  1176 ISOInfo Sony ISOInfo
18828
+ 1181 ISOInfo Sony ISOInfo
18747
18829
  1185 ISOInfo Sony ISOInfo
18748
18830
  1186 ISOInfo Sony ISOInfo
18749
18831
  1437 ISOInfo Sony ISOInfo
@@ -19074,7 +19156,7 @@ E-mount models.
19074
19156
 
19075
19157
  =head3 Sony Tag9416 Tags
19076
19158
 
19077
- Valid for the ILCE-1/7SM3, ILME-FX3.
19159
+ Valid for the ILCE-1/7M4/7SM3, ILME-FX3.
19078
19160
 
19079
19161
  Index1 Tag Name Writable
19080
19162
  ------ -------- --------
@@ -19098,7 +19180,9 @@ Valid for the ILCE-1/7SM3, ILME-FX3.
19098
19180
  115 MinFocalLength no
19099
19181
  117 MaxFocalLength no
19100
19182
  2191 VignettingCorrParams no
19183
+ 2193 VignettingCorrParams no
19101
19184
  2324 ChromaticAberrationCorrParams no
19185
+ 2326 ChromaticAberrationCorrParams no
19102
19186
 
19103
19187
  =head3 Sony PIC Tags
19104
19188
 
@@ -25049,22 +25133,22 @@ This is the PDF document catalog.
25049
25133
 
25050
25134
  Tag ID Tag Name Writable
25051
25135
  ------ -------- --------
25052
- 'CS0' CS0 PDF ICCBased
25053
- 'Cs1' Cs1 PDF ICCBased
25136
+ 'CS0' CS0 PDF DefaultRGB
25137
+ 'Cs1' Cs1 PDF DefaultRGB
25054
25138
  'DefaultCMYK' DefaultCMYK PDF DefaultRGB
25055
25139
  'DefaultRGB' DefaultRGB PDF DefaultRGB
25056
25140
 
25057
- =head3 PDF ICCBased Tags
25141
+ =head3 PDF DefaultRGB Tags
25058
25142
 
25059
25143
  Tag ID Tag Name Writable
25060
25144
  ------ -------- --------
25061
- '_stream' _stream ICC_Profile
25145
+ 'ICCBased' ICCBased PDF ICCBased
25062
25146
 
25063
- =head3 PDF DefaultRGB Tags
25147
+ =head3 PDF ICCBased Tags
25064
25148
 
25065
25149
  Tag ID Tag Name Writable
25066
25150
  ------ -------- --------
25067
- 'ICCBased' ICCBased PDF ICCBased
25151
+ '_stream' _stream ICC_Profile
25068
25152
 
25069
25153
  =head3 PDF Properties Tags
25070
25154
 
@@ -26079,6 +26163,11 @@ the PrintConv option is enabled and no time zone is specified. This is
26079
26163
  because Apple software may display crazy values if the time zone is missing
26080
26164
  for some tags.
26081
26165
 
26166
+ By default ExifTool will remove null padding from some QuickTime containers
26167
+ in Canon CR3 files when writing, but the
26168
+ QuickTimePad option may be used to preserve
26169
+ the original size by padding with nulls if necessary.
26170
+
26082
26171
  See
26083
26172
  L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
26084
26173
  for the official specification.
@@ -35464,6 +35553,7 @@ FileName.
35464
35553
  XMP XMP yes!
35465
35554
  XResolution File no
35466
35555
  YResolution File no
35556
+ ZoneIdentifier System yes!
35467
35557
 
35468
35558
  =head2 Composite Tags
35469
35559
 
@@ -1067,6 +1067,9 @@ sub WriteQuickTime($$$)
1067
1067
  # 3=optional base offset, 4=optional item ID)
1068
1068
  ChunkOffset => \@chunkOffset,
1069
1069
  );
1070
+ # set InPlace flag so XMP will be padded properly when
1071
+ # QuickTimePad is used if this is an XMP directory
1072
+ $subdirInfo{InPlace} = 2 if $et->Options('QuickTimePad');
1070
1073
  # pass the header pointer if necessary (for EXIF IFD's
1071
1074
  # where the Base offset is at the end of the header)
1072
1075
  if ($hdrLen and $hdrLen < $size) {
@@ -1331,6 +1334,13 @@ sub WriteQuickTime($$$)
1331
1334
  }
1332
1335
  # write the new atom if it was modified
1333
1336
  if (defined $newData) {
1337
+ my $sizeDiff = length($buff) - length($newData);
1338
+ if ($sizeDiff > 0 and $$tagInfo{PreservePadding} and $et->Options('QuickTimePad')) {
1339
+ $newData .= "\0" x $sizeDiff;
1340
+ $et->VPrint(1, " ($$tagInfo{Name} padded to original size)");
1341
+ } elsif ($sizeDiff) {
1342
+ $et->VPrint(1, " ($$tagInfo{Name} changed size)");
1343
+ }
1334
1344
  my $len = length($newData) + 8;
1335
1345
  $len > 0x7fffffff and $et->Error("$$tagInfo{Name} to large to write"), last;
1336
1346
  # update size in ChunkOffset list for modified 'uuid' atom
@@ -2074,6 +2074,46 @@ sub SetSystemTags($$)
2074
2074
  last;
2075
2075
  }
2076
2076
  }
2077
+ # delete Windows Zone.Identifier if specified
2078
+ my $zhash = $self->GetNewValueHash($Image::ExifTool::Extra{ZoneIdentifier});
2079
+ if ($zhash) {
2080
+ my $res = -1;
2081
+ if ($^O ne 'MSWin32') {
2082
+ $self->Warn('ZoneIdentifer is a Windows-only tag');
2083
+ } elsif (ref $file) {
2084
+ $self->Warn('Writing ZoneIdentifer requires a file name');
2085
+ } elsif (defined $self->GetNewValue('ZoneIdentifier', \$zhash)) {
2086
+ $self->Warn('ZoneIndentifier may only be delted');
2087
+ } elsif (not eval { require Win32API::File }) {
2088
+ $self->Warn('Install Win32API::File to write ZoneIdentifier');
2089
+ } else {
2090
+ my ($wattr, $wide);
2091
+ my $zfile = "${file}:Zone.Identifier";
2092
+ if ($self->EncodeFileName($zfile)) {
2093
+ $wide = 1;
2094
+ $wattr = eval { Win32API::File::GetFileAttributesW($zfile) };
2095
+ } else {
2096
+ $wattr = eval { Win32API::File::GetFileAttributes($zfile) };
2097
+ }
2098
+ if ($wattr == Win32API::File::INVALID_FILE_ATTRIBUTES()) {
2099
+ $res = 0; # file doesn't exist, nothing to do
2100
+ } elsif ($wattr & Win32API::File::FILE_ATTRIBUTE_READONLY()) {
2101
+ $self->Warn('Zone.Identifier stream is read-only');
2102
+ } else {
2103
+ if ($wide) {
2104
+ $res = 1 if eval { Win32API::File::DeleteFileW($zfile) };
2105
+ } else {
2106
+ $res = 1 if eval { Win32API::File::DeleteFile($zfile) };
2107
+ }
2108
+ if ($res > 0) {
2109
+ $self->VPrint(0, " Deleting Zone.Identifier stream\n");
2110
+ } else {
2111
+ $self->Warn('Error deleting Zone.Identifier stream');
2112
+ }
2113
+ }
2114
+ }
2115
+ $result = $res if $res == 1 or not $result;
2116
+ }
2077
2117
  return $result;
2078
2118
  }
2079
2119
 
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
50
50
  use Image::ExifTool::GPS;
51
51
  require Exporter;
52
52
 
53
- $VERSION = '3.46';
53
+ $VERSION = '3.47';
54
54
  @ISA = qw(Exporter);
55
55
  @EXPORT_OK = qw(EscapeXML UnescapeXML);
56
56
 
@@ -2142,8 +2142,8 @@ my %sPantryItem = (
2142
2142
  NAMESPACE => 'exifEX',
2143
2143
  PRIORITY => 0, # not as reliable as actual EXIF tags
2144
2144
  NOTES => q{
2145
- EXIF tags added by the EXIF 2.31 for XMP specification (see
2146
- L<http://www.cipa.jp/std/documents/e/DC-X010-2017.pdf>).
2145
+ EXIF tags added by the EXIF 2.32 for XMP specification (see
2146
+ L<https://cipa.jp/std/documents/download_e.html?DC-010-2020_E>).
2147
2147
  },
2148
2148
  Gamma => { Writable => 'rational' },
2149
2149
  PhotographicSensitivity => { Writable => 'integer' },
@@ -2349,8 +2349,9 @@ my %sPantryItem = (
2349
2349
  Scene => { Groups => { 2 => 'Other' }, List => 'Bag' },
2350
2350
  SubjectCode => { Groups => { 2 => 'Other' }, List => 'Bag' },
2351
2351
  # Copyright - have seen this in a sample (Jan 2021), but I think it is non-standard
2352
- AltTextAccessibility =>{ Groups => { 2 => 'Other' }, Writable => 'lang-alt' }, # added 2021-10-13
2353
- ExtDescrAccessibility=>{ Groups => { 2 => 'Other' }, Writable => 'lang-alt' }, # added 2021-10-13
2352
+ # new IPTC Core 1.3 properties
2353
+ AltTextAccessibility => { Groups => { 2 => 'Other' }, Writable => 'lang-alt' },
2354
+ ExtDescrAccessibility => { Groups => { 2 => 'Other' }, Writable => 'lang-alt' },
2354
2355
  );
2355
2356
 
2356
2357
  # Adobe Lightroom namespace properties (lr) (ref PH)
@@ -3975,14 +3976,16 @@ sub ProcessXMP($$;$)
3975
3976
  } elsif ($buf2 =~ /<plist[\s>]/) {
3976
3977
  $type = 'PLIST';
3977
3978
  }
3978
- if ($isSVG and $$et{XMP_CAPTURE}) {
3979
- $et->Error("ExifTool does not yet support writing of SVG images");
3980
- return 0;
3981
- }
3982
3979
  }
3983
3980
  $isXML = 1;
3984
3981
  } elsif ($2 eq '<rdf:RDF') {
3985
3982
  $isRDF = 1; # recognize XMP without x:xmpmeta element
3983
+ } elsif ($2 eq '<svg') {
3984
+ $isSVG = $isXML = 1;
3985
+ }
3986
+ if ($isSVG and $$et{XMP_CAPTURE}) {
3987
+ $et->Error("ExifTool does not yet support writing of SVG images");
3988
+ return 0;
3986
3989
  }
3987
3990
  if ($buff =~ /^\0\0/) {
3988
3991
  $fmt = 'N'; # UTF-32 MM with or without BOM
@@ -797,7 +797,8 @@ my %sImageRegion = ( # new in 1.5
797
797
  audioBitsPerSample => { Groups => { 2 => 'Audio' }, Writable => 'integer' },
798
798
  # new IPTC Extension schema 1.5 property
799
799
  ImageRegion => { Groups => { 2 => 'Image' }, List => 'Bag', Struct => \%sImageRegion },
800
- EventID => { List => 'Bag' }, # added 2021-10-13
800
+ # new Extension 1.6 property
801
+ EventId => { Name => 'EventID', List => 'Bag' },
801
802
  );
802
803
 
803
804
  #------------------------------------------------------------------------------
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exePath
30
30
  %static_vars);
31
31
 
32
- $VERSION = '12.33';
32
+ $VERSION = '12.34';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -909,7 +909,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
909
909
  GZIP => '\x1f\x8b\x08',
910
910
  HDR => '#\?(RADIANCE|RGBE)\x0a',
911
911
  HTML => '(\xef\xbb\xbf)?\s*(?i)<(!DOCTYPE\s+HTML|HTML|\?xml)', # (case insensitive)
912
- ICC => '.{12}(scnr|mntr|prtr|link|spac|abst|nmcl|nkpf)(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR){2}',
912
+ ICC => '.{12}(scnr|mntr|prtr|link|spac|abst|nmcl|nkpf|cenc|mid |mlnk|mvis)(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR|nc..|\0{4}){2}',
913
913
  IND => '\x06\x06\xed\xf5\xd8\x1d\x46\xe5\xbd\x31\xef\xe7\xfe\x74\xb7\x1d',
914
914
  # ISO => signature is at byte 32768
915
915
  ITC => '.{4}itch',
@@ -1208,6 +1208,18 @@ my %systemTagsNotes = (
1208
1208
  },
1209
1209
  PrintConv => \&ConvertFileSize,
1210
1210
  },
1211
+ ZoneIdentifier => {
1212
+ Groups => { 1 => 'System', 2 => 'Other' },
1213
+ Notes => q{
1214
+ Windows only. Used to indicate that a file has a Zone.Identifier alternate
1215
+ data stream, which is used by some Windows browsers to mark downloaded files
1216
+ as possibly unsafe to run. May be deleted to remove this stream. Requires
1217
+ Win32API::File
1218
+ },
1219
+ Writable => 1,
1220
+ WritePseudo => 1,
1221
+ Protected => 1,
1222
+ },
1211
1223
  FileType => {
1212
1224
  Groups => { 2 => 'Other' },
1213
1225
  Notes => q{
@@ -2320,6 +2332,7 @@ sub ClearOptions($)
2320
2332
  Password => undef, # password for password-protected PDF documents
2321
2333
  PrintConv => 1, # flag to enable print conversion
2322
2334
  QuickTimeHandler => 1, # flag to add mdir Handler to newly created Meta box
2335
+ QuickTimePad=> undef, # flag to preserve padding of QuickTime CR3 tags
2323
2336
  QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
2324
2337
  RequestAll => undef, # extract all tags that must be specifically requested
2325
2338
  RequestTags => undef, # extra tags to request (on top of those in the tag list)
@@ -2369,7 +2382,7 @@ sub ExtractInfo($;@)
2369
2382
  my $fast = $$options{FastScan} || 0;
2370
2383
  my $req = $$self{REQ_TAG_LOOKUP};
2371
2384
  my $reqAll = $$options{RequestAll} || 0;
2372
- my (%saveOptions, $reEntry, $rsize, $type, @startTime, $saveOrder, $isDir);
2385
+ my (%saveOptions, $reEntry, $rsize, $zid, $type, @startTime, $saveOrder, $isDir);
2373
2386
 
2374
2387
  # check for internal ReEntry option to allow recursive calls to ExtractInfo
2375
2388
  if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
@@ -2461,6 +2474,17 @@ sub ExtractInfo($;@)
2461
2474
  }
2462
2475
  # get size of resource fork on Mac OS
2463
2476
  $rsize = -s "$filename/..namedfork/rsrc" if $^O eq 'darwin' and not $$self{IN_RESOURCE};
2477
+ # check to see if Zone.Identifier file exists in Windows
2478
+ if ($^O eq 'MSWin32' and eval { require Win32API::File }) {
2479
+ my $wattr;
2480
+ my $zfile = "${filename}:Zone.Identifier";
2481
+ if ($self->EncodeFileName($zfile)) {
2482
+ $wattr = eval { Win32API::File::GetFileAttributesW($zfile) };
2483
+ } else {
2484
+ $wattr = eval { Win32API::File::GetFileAttributes($zfile) };
2485
+ }
2486
+ $zid = 1 unless $wattr == Win32API::File::INVALID_FILE_ATTRIBUTES();
2487
+ }
2464
2488
  }
2465
2489
  # open the file
2466
2490
  if ($self->Open(\*EXIFTOOL_FILE, $filename)) {
@@ -2503,6 +2527,7 @@ sub ExtractInfo($;@)
2503
2527
  my $fileSize = $stat[7];
2504
2528
  $self->FoundTag('FileSize', $stat[7]) if defined $stat[7];
2505
2529
  $self->FoundTag('ResourceForkSize', $rsize) if $rsize;
2530
+ $self->FoundTag('ZoneIdentifier', 'Exists') if $zid;
2506
2531
  $self->FoundTag('FileModifyDate', $stat[9]) if defined $stat[9];
2507
2532
  $self->FoundTag('FileAccessDate', $stat[8]) if defined $stat[8];
2508
2533
  my $cTag = $^O eq 'MSWin32' ? 'FileCreateDate' : 'FileInodeChangeDate';
@@ -860,6 +860,14 @@ commonly found in samples from other software, and it has been reported that
860
860
  Apple QuickTime Player and Photos.apps will ignore ItemList tags if this is
861
861
  missing. Default is 1.
862
862
 
863
+ =item QuickTimePad
864
+
865
+ Flag to preserve the padding of some QuickTime atoms when writing.
866
+ QuickTime-based Canon CR3 files pad the values of container atoms with null
867
+ bytes. This padding is removed by default when the file is rewritten, but
868
+ setting this option to 1 adds padding to preserve the original atom size if
869
+ the new atom would be smaller than the original. Default is undef.
870
+
863
871
  =item QuickTimeUTC
864
872
 
865
873
  Flag set to assume that QuickTime date/time values are stored as UTC,
@@ -1236,7 +1244,7 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
1236
1244
 
1237
1245
  ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
1238
1246
  Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
1239
- QuickTimeHandler, Verbose and WriteMode.
1247
+ QuickTimeHandler, QuickTimePad, Verbose and WriteMode.
1240
1248
 
1241
1249
  =head2 GetTagList
1242
1250
 
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.33
3
+ Version: 12.34
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('12.33.0')
4
+ VERSION = Gem::Version.new('12.34.0')
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exiftool_vendored
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.33.0
4
+ version: 12.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-10-18 00:00:00.000000000 Z
12
+ date: 2021-10-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool