exiftool_vendored 13.02.0 → 13.04.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 +4 -4
- data/bin/Changes +40 -3
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +76 -43
- data/bin/lib/Image/ExifTool/Apple.pm +2 -2
- data/bin/lib/Image/ExifTool/Canon.pm +7 -1
- data/bin/lib/Image/ExifTool/Exif.pm +15 -4
- data/bin/lib/Image/ExifTool/GIF.pm +143 -92
- data/bin/lib/Image/ExifTool/GPS.pm +33 -29
- data/bin/lib/Image/ExifTool/Geotag.pm +43 -9
- data/bin/lib/Image/ExifTool/GoPro.pm +118 -6
- data/bin/lib/Image/ExifTool/JPEG.pm +9 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +10 -2
- data/bin/lib/Image/ExifTool/OOXML.pm +7 -7
- data/bin/lib/Image/ExifTool/PDF.pm +29 -2
- data/bin/lib/Image/ExifTool/PNG.pm +14 -3
- data/bin/lib/Image/ExifTool/PPM.pm +11 -2
- data/bin/lib/Image/ExifTool/Photoshop.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +6 -1
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +7 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5598 -5583
- data/bin/lib/Image/ExifTool/TagNames.pod +64 -6
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +13 -4
- data/bin/lib/Image/ExifTool/Writer.pl +16 -11
- data/bin/lib/Image/ExifTool/XMP.pm +7 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +64 -0
- data/bin/lib/Image/ExifTool.pm +101 -72
- data/bin/lib/Image/ExifTool.pod +16 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 374e7e5a3d68eeca0ec6cb6a40919d056e0731958606daa8bed45a7c4c70daba
|
4
|
+
data.tar.gz: 1263e0b2b35852265b4d5352eae7f35d12cffe0277f916799a8498c75482a9be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b5d47b1383f939d76af17239fb4f1e1a486ae619b0d728a010bde7e8ed044de0bfc93d755f8c0a22dfa098ddf997d84f1d7a3f562f07153d1486eee68744929
|
7
|
+
data.tar.gz: b8ba0c1b6c02546df4e54c6d5c4fe072cbb98bc4b6c5b1d0f1ac323ded4ca43e06ff5bcaaaf879005d37533df86f53262cba0dd87d1a09684f360a50a6d4834c
|
data/bin/Changes
CHANGED
@@ -7,6 +7,42 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.00. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Nov. 26, 2024 - Version 13.04
|
11
|
+
|
12
|
+
- Added the ability to write GPSDOP and GPSMeasureMode from the -geotag option
|
13
|
+
if hdop or pdop information exists in the input track file
|
14
|
+
- Added a few new Canon RFLensTypes (thanks Norbert Wasser)
|
15
|
+
- Decode timed GPS from GoPro Hero 13 videos
|
16
|
+
- Improved writing of GPSDestLatitudeRef and GPSDestLongitudeRef tags to allow
|
17
|
+
signed numbers to be written in the same way as GPSLatitudeRef and
|
18
|
+
GPSLongitudeRef
|
19
|
+
- Warn if using an Image::ExifTool library that doesn't match the application
|
20
|
+
version
|
21
|
+
- Renamed an Unknown Photoshop tag
|
22
|
+
- Convert GoPro GPSSpeed and GPSSpeed3D from m/s to km/h
|
23
|
+
- Patched to tolerate XML header in DOCX xml files
|
24
|
+
- Fixed -htmldump output to show the same names for unknown EXIF tags as with
|
25
|
+
the -u option
|
26
|
+
|
27
|
+
Nov. 12, 2024 - Version 13.03
|
28
|
+
|
29
|
+
- Added ability to include or exclude tags from CSV and JSON imports
|
30
|
+
(-csv=CSVFILE and -json=JSONFILE) by adding -TAG or --TAG options
|
31
|
+
- Added read/delete support for SEAL metadata in JPG, TIFF, XMP, PNG, WEBP,
|
32
|
+
HEIC, PPM, MOV and MP4 files, and read support in PDF, MKV and WAV files
|
33
|
+
- Added support for user-defined application extensions in GIF images
|
34
|
+
- Added print conversion for QuickTime VideoFullRangeFlag
|
35
|
+
- Apply API LimitLongValues option to hex field in -j output
|
36
|
+
- Avoid extracting some large AES-encrypted data from PDF files for
|
37
|
+
performance reasons unless the -m option is used (current limits are 100 kB
|
38
|
+
for XMP and 10 kB for everything else)
|
39
|
+
- Fixed WindowsLongPath option to support wide characters (thanks Frank B)
|
40
|
+
- Fixed problem writing ICC_Profile to a GIF image which already had one
|
41
|
+
- Fixed problem writing Apple:FocusDistanceRange
|
42
|
+
- API Changes:
|
43
|
+
- Enchanced GlobalTimeShift option to allow the base tag to be specified,
|
44
|
+
otherwise use the first specified source date/time tag when copying tags
|
45
|
+
|
10
46
|
Nov. 5, 2024 - Version 13.02
|
11
47
|
|
12
48
|
- Enhanced -j -l output to add optional "fmt" and "hex" fields
|
@@ -20,11 +56,12 @@ Nov. 5, 2024 - Version 13.02
|
|
20
56
|
- Patched to avoid using Encode module in Windows because it can hang if run
|
21
57
|
from a working directory with a long path name
|
22
58
|
- Patched to use -csv output if -j also used
|
23
|
-
- Fixed
|
24
|
-
|
59
|
+
- Fixed a few problems with the new WindowsLongPath option
|
60
|
+
- Fixed problem setting FileCreateDate with Xcode 16 command line tools if the
|
61
|
+
date/time contains a time zone
|
25
62
|
- Fixed problem in -csv output when combined with -g
|
26
63
|
- API Changes:
|
27
|
-
- Added
|
64
|
+
- Added SaveBin option
|
28
65
|
|
29
66
|
Nov. 1, 2024 - Version 13.01
|
30
67
|
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
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.
|
113
|
-
cd Image-ExifTool-13.
|
112
|
+
gzip -dc Image-ExifTool-13.04.tar.gz | tar -xf -
|
113
|
+
cd Image-ExifTool-13.04
|
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
|
+
my $version = '13.04';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
my $exePath;
|
@@ -597,6 +597,10 @@ if (@Image::ExifTool::UserDefined::Arguments) {
|
|
597
597
|
unshift @ARGV, @Image::ExifTool::UserDefined::Arguments;
|
598
598
|
}
|
599
599
|
|
600
|
+
if ($version ne $Image::ExifTool::VERSION) {
|
601
|
+
Warn "Application version $version does not match Image::ExifTool library version $Image::ExifTool::VERSION\n";
|
602
|
+
}
|
603
|
+
|
600
604
|
# parse command-line options in 2 passes...
|
601
605
|
# pass 1: set all of our ExifTool options
|
602
606
|
# pass 2: print all of our help and informational output (-list, -ver, etc)
|
@@ -1777,7 +1781,7 @@ if ($isWriting) {
|
|
1777
1781
|
if (defined $diff) {
|
1778
1782
|
Error "Can't use -diff option when writing tags\n";
|
1779
1783
|
next;
|
1780
|
-
} elsif (@tags and not $outOpt) {
|
1784
|
+
} elsif (@tags and not $outOpt and not $csv) {
|
1781
1785
|
my ($tg, $s) = @tags > 1 ? ("$tags[0] ...", 's') : ($tags[0], '');
|
1782
1786
|
Warn "Ignored superfluous tag name$s or invalid option$s: -$tg\n";
|
1783
1787
|
}
|
@@ -2852,8 +2856,16 @@ TAG: foreach $tag (@foundTags) {
|
|
2852
2856
|
$$val{num} = $num if defined $num and not IsEqual($num, $$val{val});
|
2853
2857
|
}
|
2854
2858
|
my $ex = $$et{TAG_EXTRA}{$tag};
|
2855
|
-
$$val{'hex'} = join ' ', unpack '(H2)*', $$ex{BinVal} if defined $$ex{BinVal};
|
2856
2859
|
$$val{'fmt'} = $$ex{G6} if defined $$ex{G6};
|
2860
|
+
if (defined $$ex{BinVal}) {
|
2861
|
+
my $max = ($$et{OPTIONS}{LimitLongValues} - 5) / 3;
|
2862
|
+
if ($max >= 0 and length($$ex{BinVal}) > int($max)) {
|
2863
|
+
$max = int $max;
|
2864
|
+
$$val{'hex'} = join ' ', unpack("(H2)$max", $$ex{BinVal}), '[...]';
|
2865
|
+
} else {
|
2866
|
+
$$val{'hex'} = join ' ', unpack '(H2)*', $$ex{BinVal};
|
2867
|
+
}
|
2868
|
+
}
|
2857
2869
|
}
|
2858
2870
|
}
|
2859
2871
|
FormatJSON($fp, $val, $ind, $quote);
|
@@ -3148,9 +3160,15 @@ sub SetImageInfo($$$)
|
|
3148
3160
|
next unless defined $absPath and $csvInfo = $database{$absPath};
|
3149
3161
|
}
|
3150
3162
|
$found = 1;
|
3151
|
-
$verbose
|
3163
|
+
if ($verbose) {
|
3164
|
+
print $vout "Setting new values from $csv database\n";
|
3165
|
+
print $vout 'Including tags: ',join(' ',@tags),"\n" if @tags;
|
3166
|
+
print $vout 'Excluding tags: ',join(' ',@exclude),"\n" if @exclude;
|
3167
|
+
}
|
3152
3168
|
foreach $tag (OrderedKeys($csvInfo)) {
|
3153
3169
|
next if $tag =~ /\b(SourceFile|Directory|FileName)$/i; # don't write these
|
3170
|
+
next if @tags and not grep /^\Q$tag\E$/i, @tags;
|
3171
|
+
next if @exclude and grep /^\Q$tag\E$/i, @exclude;
|
3154
3172
|
my ($rtn, $wrn) = $et->SetNewValue($tag, $$csvInfo{$tag},
|
3155
3173
|
Protected => 1, AddValue => $csvAdd,
|
3156
3174
|
ProtectSaved => $csvSaveCount);
|
@@ -5143,7 +5161,7 @@ information. Use the B<-s> option to see the tag names instead.
|
|
5143
5161
|
=item B<-->I<TAG>
|
5144
5162
|
|
5145
5163
|
Exclude specified tag from extracted information. Same as the B<-x> option.
|
5146
|
-
Group names and wildcards are permitted as described above for B
|
5164
|
+
Group names and wildcards are permitted as described above for B<->I<TAG>.
|
5147
5165
|
Once excluded from the output, a tag may not be re-included by a subsequent
|
5148
5166
|
option. May also be used following a B<-tagsFromFile> option to exclude
|
5149
5167
|
tags from being copied (when redirecting to another tag, it is the source
|
@@ -5574,7 +5592,9 @@ deleted). Also, FileName and Directory columns are ignored if they exist
|
|
5574
5592
|
all other columns are imported. To force a tag to be deleted, use the B<-f>
|
5575
5593
|
option and set the value to "-" in the CSV file (or to the MissingTagValue
|
5576
5594
|
if this API option was used). Multiple databases may be imported in a
|
5577
|
-
single command.
|
5595
|
+
single command. Specific tags may be imported from the database by adding
|
5596
|
+
B<->I<TAG> options to the command, or excluded with B<-->I<TAG> options.
|
5597
|
+
If no tags are specified, then all except FileName and Directory are used.
|
5578
5598
|
|
5579
5599
|
When exporting a CSV file, the B<-g> or B<-G> option adds group names to the
|
5580
5600
|
tag headings. If the B<-a> option is used to allow duplicate tag names, the
|
@@ -5710,19 +5730,28 @@ preserved with the B<-struct> option (this also causes all list-type XMP
|
|
5710
5730
|
tags to be output as JSON arrays, otherwise single-item lists would be
|
5711
5731
|
output as simple strings). The B<-a> option is implied when B<-json> is
|
5712
5732
|
used, but entries with identical JSON names are suppressed in the output.
|
5713
|
-
(B<-G4> may be used to ensure that all tags have unique JSON names.)
|
5714
|
-
|
5715
|
-
|
5716
|
-
|
5717
|
-
|
5718
|
-
|
5719
|
-
|
5720
|
-
|
5721
|
-
|
5722
|
-
|
5723
|
-
|
5724
|
-
|
5725
|
-
|
5733
|
+
(B<-G4> may be used to ensure that all tags have unique JSON names.)
|
5734
|
+
|
5735
|
+
Adding the B<-D> or B<-H> option changes tag values to JSON objects with
|
5736
|
+
"val" and "id" fields. Adding B<-l> adds a "desc" field, and a "num" field
|
5737
|
+
if the numerical value is different from the converted "val", and "fmt" and
|
5738
|
+
"hex" fields for EXIF metadata if the API SaveFormat and SaveBin options are
|
5739
|
+
set respectively, and the length of the "hex" output is limited by the API
|
5740
|
+
LimitLongValues setting. The B<-b> option may be added to output binary
|
5741
|
+
data, encoded in base64 if necessary (indicated by ASCII "base64:" as the
|
5742
|
+
first 7 bytes of the value), and B<-t> may be added to include tag table
|
5743
|
+
information (see B<-t> for details). The JSON output is UTF-8 regardless of
|
5744
|
+
any B<-L> or B<-charset> option setting, but the UTF-8 validation is
|
5745
|
+
disabled if a character set other than UTF-8 is specified.
|
5746
|
+
|
5747
|
+
Note that ExifTool quotes JSON values only if they don't look like numbers
|
5748
|
+
(regardless of the original storage format or the relevant metadata
|
5749
|
+
specification). This may be a problem when reading the JSON via a strongly
|
5750
|
+
typed language. However, the API StructFormat option may be set to "JSONQ"
|
5751
|
+
to force quoting of numbers. As well, the B<-sep> option may be used to
|
5752
|
+
convert arrays into strings. For example:
|
5753
|
+
|
5754
|
+
exiftool -j -api structformat=jsonq -sep ", " ...
|
5726
5755
|
|
5727
5756
|
If I<JSONFILE> is specified, the file is imported and the tag definitions
|
5728
5757
|
from the file are used to set tag values on a per-file basis. The special
|
@@ -5735,7 +5764,9 @@ that options exporting JSON objects instead of simple values are not
|
|
5735
5764
|
compatible with the import file format (ie. export with B<-D>, B<-H>, B<-l>,
|
5736
5765
|
or B<-T> is not compatible, and use B<-G> instead of B<-g>). Additionally,
|
5737
5766
|
tag names in the input JSON file may be suffixed with a C<#> to disable
|
5738
|
-
print conversion.
|
5767
|
+
print conversion. Specific tags may be imported from the database by adding
|
5768
|
+
B<->I<TAG> options to the command, or excluded with B<-->I<TAG> options.
|
5769
|
+
If no tags are specified, then all except FileName and Directory are used.
|
5739
5770
|
|
5740
5771
|
Unlike CSV import, empty values are not ignored, and will cause an empty
|
5741
5772
|
value to be written if supported by the specific metadata type. Tags are
|
@@ -5876,7 +5907,7 @@ with this command:
|
|
5876
5907
|
|
5877
5908
|
produces output like this:
|
5878
5909
|
|
5879
|
-
-- Generated by ExifTool 13.
|
5910
|
+
-- Generated by ExifTool 13.04 --
|
5880
5911
|
File: a.jpg - 2003:10:31 15:44:19
|
5881
5912
|
(f/5.6, 1/60s, ISO 100)
|
5882
5913
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5892,8 +5923,9 @@ name, a value of 1 is returned if any tag exists in the specified group, or
|
|
5892
5923
|
0 otherwise (unless the C<All> group is also specified, in which case the
|
5893
5924
|
values of all matching tags are joined).
|
5894
5925
|
|
5895
|
-
|
5896
|
-
|
5926
|
+
The B<-p> output iterates through the family 3 group names, with each
|
5927
|
+
sub-document producing additional output. This feature is most useful when
|
5928
|
+
used in combination with the B<-ee> option to extract embedded documents.
|
5897
5929
|
|
5898
5930
|
If a specified tag does not exist, a minor warning is issued and the line
|
5899
5931
|
with the missing tag is not printed. However, the B<-f> option may be used
|
@@ -6305,7 +6337,8 @@ ExifTool will not scan to the end of a JPEG image to check for an AFCP or
|
|
6305
6337
|
PreviewImage trailer, or past the first comment in GIF images or the
|
6306
6338
|
audio/video data in WAV/AVI files to search for additional metadata. These
|
6307
6339
|
speed benefits are small when reading images directly from disk, but can be
|
6308
|
-
substantial if piping images through a network connection.
|
6340
|
+
substantial if piping images through a network connection. Also bypasses
|
6341
|
+
CRC validation when writing PNG images which can be very slow. For more
|
6309
6342
|
substantial speed benefits, B<-fast2> also causes exiftool to avoid
|
6310
6343
|
extracting any EXIF MakerNote information, and to stop processing at the
|
6311
6344
|
IDAT chunk of PNG images and the mdat atom of QuickTime-format files (but
|
@@ -6716,8 +6749,9 @@ names, even if they begin with a dash (C<->).
|
|
6716
6749
|
Compare metadata in I<FILE> with I<FILE2>. The I<FILE2> name may include
|
6717
6750
|
filename formatting codes (see the B<-w> option). All extracted tags from
|
6718
6751
|
the files are compared, but the extracted tags may be controlled by adding
|
6719
|
-
B
|
6720
|
-
the same-named files in two different directories, ignoring the
|
6752
|
+
B<->I<TAG> or B<-->I<TAG> options. For example, below is a command to
|
6753
|
+
compare all the same-named files in two different directories, ignoring the
|
6754
|
+
System tags:
|
6721
6755
|
|
6722
6756
|
exiftool DIR1 -diff DIR2/%f.%e --system:all
|
6723
6757
|
|
@@ -6741,23 +6775,22 @@ the following two commands are equivalent:
|
|
6741
6775
|
exiftool -geotag trk.log image.jpg
|
6742
6776
|
exiftool -geotag trk.log "-Geotime<DateTimeOriginal#" image.jpg
|
6743
6777
|
|
6744
|
-
|
6745
|
-
|
6746
|
-
|
6747
|
-
|
6748
|
-
|
6749
|
-
|
6750
|
-
|
6751
|
-
|
6752
|
-
|
6753
|
-
|
6754
|
-
|
6755
|
-
|
6756
|
-
|
6757
|
-
|
6758
|
-
|
6759
|
-
|
6760
|
-
order to be written.
|
6778
|
+
If the C<Geotime> value does not contain a time zone then the local system
|
6779
|
+
timezone is assumed. Writing C<Geotime> causes the following tags to be
|
6780
|
+
written (provided they can be calculated from the track log, and they are
|
6781
|
+
supported by the destination metadata format): GPSLatitude, GPSLatitudeRef,
|
6782
|
+
GPSLongitude, GPSLongitudeRef, GPSAltitude, GPSAltitudeRef, GPSDateStamp,
|
6783
|
+
GPSTimeStamp, GPSDateTime, GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef,
|
6784
|
+
GPSImgDirection, GPSImgDirectionRef, GPSPitch, GPSRoll, GPSCoordinates,
|
6785
|
+
AmbientTemperature and CameraElevationAngle. By default, in image files
|
6786
|
+
tags are created in EXIF, and updated in XMP only if they already exist. In
|
6787
|
+
QuickTime-format files GPSCoordinates is created in the preferred location
|
6788
|
+
(ItemList by default) as well as in XMP. However, C<EXIF:Geotime>,
|
6789
|
+
C<XMP:Geotime> or C<QuickTime:Geotime> may be specified to write to write
|
6790
|
+
only to one group. Also, C<ItemList:Geotime>, C<Keys:Geotime> or
|
6791
|
+
C<UserData:Geotime> may be used to write to a specific location in
|
6792
|
+
QuickTime-format files. Note that GPSPitch and GPSRoll are non-standard,
|
6793
|
+
and require user-defined tags in order to be written.
|
6761
6794
|
|
6762
6795
|
The C<Geosync> tag may be used to specify a time correction which is applied
|
6763
6796
|
to each C<Geotime> value for synchronization with GPS time. For example,
|
@@ -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.
|
19
|
+
$VERSION = '1.13';
|
20
20
|
|
21
21
|
sub ConvertPLIST($$);
|
22
22
|
|
@@ -99,7 +99,7 @@ sub ConvertPLIST($$);
|
|
99
99
|
my @a = split ' ', $val;
|
100
100
|
sprintf('%.2f - %.2f m', $a[0] <= $a[1] ? @a : reverse @a);
|
101
101
|
},
|
102
|
-
PrintConvInv => '$val =~ s/ -
|
102
|
+
PrintConvInv => '$val =~ s/ - / /; $val =~ s/ ?m$//; $val',
|
103
103
|
},
|
104
104
|
# 0x000d - int32s: 0,1,6,20,24,32,40 (SphereHealthAverageCurrent, ref 2)
|
105
105
|
# 0x000e - int32s: 0,1,4,12 (Orientation? 0=landscape? 4=portrait? ref 1) (SphereMotionDataStatus, ref 2)
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.85';
|
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)
|
@@ -631,6 +631,9 @@ $VERSION = '4.84';
|
|
631
631
|
'61182.54' => 'Canon RF 24-105mm F2.8 L IS USM Z', #42
|
632
632
|
'61182.55' => 'Canon RF-S 10-18mm F4.5-6.3 IS STM', #42
|
633
633
|
'61182.56' => 'Canon RF 35mm F1.4 L VCM', #42
|
634
|
+
'61182.57' => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
|
635
|
+
'61182.58' => 'Canon RF 50mm F1.4 L VCM', #42
|
636
|
+
'61182.59' => 'Canon RF 24mm F1.4 L VCM', #42
|
634
637
|
65535 => 'n/a',
|
635
638
|
);
|
636
639
|
|
@@ -7001,6 +7004,9 @@ my %ciMaxFocal = (
|
|
7001
7004
|
316 => 'Canon RF 35mm F1.4 L VCM', #42
|
7002
7005
|
317 => 'Canon RF-S 3.9mm F3.5 STM DUAL FISHEYE', #42
|
7003
7006
|
318 => 'Canon RF 28-70mm F2.8 IS STM', #42
|
7007
|
+
319 => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
|
7008
|
+
325 => 'Canon RF 50mm F1.4 L VCM', #42
|
7009
|
+
326 => 'Canon RF 24mm F1.4 L VCM', #42
|
7004
7010
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
7005
7011
|
},
|
7006
7012
|
},
|
@@ -57,7 +57,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
57
57
|
use Image::ExifTool qw(:DataAccess :Utils);
|
58
58
|
use Image::ExifTool::MakerNotes;
|
59
59
|
|
60
|
-
$VERSION = '4.
|
60
|
+
$VERSION = '4.55';
|
61
61
|
|
62
62
|
sub ProcessExif($$$);
|
63
63
|
sub WriteExif($$$);
|
@@ -4421,6 +4421,13 @@ my %opcodeInfo = (
|
|
4421
4421
|
Writable => 'int32u',
|
4422
4422
|
WriteGroup => 'IFD0',
|
4423
4423
|
},
|
4424
|
+
0xcea1 => {
|
4425
|
+
Name => 'SEAL', # (writable directory!)
|
4426
|
+
Writable => 'string',
|
4427
|
+
WriteGroup => 'IFD0',
|
4428
|
+
SubDirectory => { TagTable => 'Image::ExifTool::XMP::SEAL' },
|
4429
|
+
WriteCheck => 'return "Can only delete"', # (don't allow writing)
|
4430
|
+
},
|
4424
4431
|
0xea1c => { #13
|
4425
4432
|
Name => 'Padding',
|
4426
4433
|
Binary => 1,
|
@@ -6690,8 +6697,9 @@ sub ProcessExif($$$)
|
|
6690
6697
|
"Format: $fstr\nSize: $size bytes\n";
|
6691
6698
|
if ($size > 4) {
|
6692
6699
|
my $offPt = Get32u($dataPt,$entry+8);
|
6693
|
-
# (test this with ../pics/{CanonEOS-1D_XMarkIII.hif,PanasonicDC-G9.rw2})
|
6694
|
-
my $actPt = $valuePtr + $valueDataPos + $base - ($$et{EXIF_POS} || 0) +
|
6700
|
+
# (test this with ../pics/{CanonEOS-1D_XMarkIII.hif,PanasonicDC-G9.rw2,*.raf})
|
6701
|
+
my $actPt = $valuePtr + $valueDataPos + $base - ($$et{EXIF_POS} || 0) +
|
6702
|
+
($$et{BASE_FUDGE} || $$et{BASE} || 0);
|
6695
6703
|
$tip .= sprintf("Value offset: 0x%.4x\n", $offPt);
|
6696
6704
|
# highlight tag name (red for bad size)
|
6697
6705
|
my $style = ($bad or not defined $tval) ? 'V' : 'H';
|
@@ -6722,12 +6730,15 @@ sub ProcessExif($$$)
|
|
6722
6730
|
} elsif ($tagInfo and Image::ExifTool::IsInt($tval)) {
|
6723
6731
|
if ($$tagInfo{IsOffset} or $$tagInfo{SubIFD}) {
|
6724
6732
|
$tval = sprintf('0x%.4x', $tval);
|
6725
|
-
my $actPt = $val + $base - ($$et{EXIF_POS} || 0) + ($$et{BASE_FUDGE} || 0);
|
6733
|
+
my $actPt = $val + $base - ($$et{EXIF_POS} || 0) + ($$et{BASE_FUDGE} || $$et{BASE} || 0);
|
6726
6734
|
if ($actPt != $val) {
|
6727
6735
|
$tval .= sprintf("\nActual offset: 0x%.4x", $actPt);
|
6728
6736
|
my $sign = $actPt < $val ? '-' : '';
|
6729
6737
|
$tval .= sprintf("\nOffset base: ${sign}0x%.4x", abs($actPt - $val));
|
6730
6738
|
}
|
6739
|
+
if ($$et{EXIF_POS} and not $$et{BASE_FUDGE}) {
|
6740
|
+
$tip .= sprintf("File offset: 0x%.4x\n", $actPt + $$et{EXIF_POS})
|
6741
|
+
}
|
6731
6742
|
} elsif ($$tagInfo{PrintHex}) {
|
6732
6743
|
$tval = sprintf('0x%x', $tval);
|
6733
6744
|
}
|