exiftool_vendored 13.33.0 → 13.34.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 +22 -4
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +36 -36
- data/bin/lib/Image/ExifTool/Canon.pm +10 -1
- data/bin/lib/Image/ExifTool/Exif.pm +5 -4
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
- data/bin/lib/Image/ExifTool/Minolta.pm +3 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +41 -26
- data/bin/lib/Image/ExifTool/Pentax.pm +70 -9
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/Sony.pm +40 -16
- data/bin/lib/Image/ExifTool/TagLookup.pm +8 -2
- data/bin/lib/Image/ExifTool/TagNames.pod +18 -4
- data/bin/lib/Image/ExifTool/Writer.pl +4 -4
- data/bin/lib/Image/ExifTool.pm +2 -1
- data/bin/lib/Image/ExifTool.pod +5 -0
- 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: ee6400c2f7784efecc62e0876ee90696b3f523abbf6438ee5d3c60e56574ca11
|
4
|
+
data.tar.gz: 33c0b5f6228fc949cead6b4d357117227b7f5fe74a98cef2377cbfca6c8e9753
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50d16f2dfe3be3a2c117f72f244da5b762fb7f876fec921e32f7347f002f50de235da85949121cde69175b9b0a6aa11094e80d7e3a720207c422c750f748a0f1
|
7
|
+
data.tar.gz: 5cc1844f04cf8a423af7e7e79403b9e817389cf7b357a482a64fa8c693d9b230018c090dcd722a9b9161e2df35184a421c5db984a2805033fc3e0b3e082b964b
|
data/bin/Changes
CHANGED
@@ -7,6 +7,22 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.30. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Aug. 18, 2025 - Version 13.34
|
11
|
+
|
12
|
+
- Decode a number of new Pentax tags (thanks Karsten Gieselmann)
|
13
|
+
- Decode a new Canon tag (thanks Peter Wem, github #344)
|
14
|
+
- Updated Sony decoding for the ILME-FX2 and DSC-RX1RM3 (thanks Jos Roost)
|
15
|
+
- Minor fixes to decoding of new Olympus tags (thanks Karsten Gieselmann)
|
16
|
+
- Reverted change of 13.20 which changed the behaviour when writing
|
17
|
+
incorrectly-formatted date/time values
|
18
|
+
- Patched to avoid "uninitialized value $module" when using some custom config
|
19
|
+
files
|
20
|
+
- Fixed issue reading maker notes from some Sony ILCE models
|
21
|
+
- API Changes:
|
22
|
+
- Added UndefTags option to allow -m
|
23
|
+
and/or -f to be used without modifying the value of undef tags in -if
|
24
|
+
expressions (which was the behaviour prior to version 12.60)
|
25
|
+
|
10
26
|
July 25, 2025 - Version 13.33
|
11
27
|
|
12
28
|
- Added read support for TNEF files (eg. "winmail.dat")
|
@@ -14,13 +30,15 @@ July 25, 2025 - Version 13.33
|
|
14
30
|
- Decode Canon FocusBracketing tag (github #340)
|
15
31
|
- Decode more tags for newer Nikon Z models (thanks Warren Hatch)
|
16
32
|
- Decode a few more Olympus tags (thanks Karsten Gieselmann)
|
33
|
+
- Decode face detection tags for the Pentax K-3III (thanks Karsten Gieselmann)
|
17
34
|
- Decode a few more FujiFilm tags (github #343)
|
18
35
|
- Handle Olympus RawDev2IFD tag 0x8000 (named it RawDevSubIFD)
|
19
36
|
- Improved recognition of some Sony lenses (github #342)
|
20
|
-
- Enhanced the -p option to cycle through sub-
|
21
|
-
- Improved extraction of GoPro timed GPS to use sub-
|
22
|
-
the individual fixes, allowing -p to extract all fixes at
|
23
|
-
resolution (
|
37
|
+
- Enhanced the -p option to cycle through sub-documents
|
38
|
+
- Improved extraction of GoPro timed GPS to use sub-document numbers to
|
39
|
+
separate the individual fixes, allowing -p to extract all fixes at
|
40
|
+
sub-second resolution (although for earlier models these may not contain
|
41
|
+
timestamps)
|
24
42
|
- Extract EXIF information from Sigma fp MOV videos
|
25
43
|
- Patched to avoid "multi-segment EXIF with external pointers" error when
|
26
44
|
writing Olympus OM-1 JPG files converted by some utilities
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -110,8 +110,8 @@ your home directory, then you would type the following commands in a
|
|
110
110
|
terminal window to extract and run ExifTool:
|
111
111
|
|
112
112
|
cd ~/Desktop
|
113
|
-
gzip -dc Image-ExifTool-13.
|
114
|
-
cd Image-ExifTool-13.
|
113
|
+
gzip -dc Image-ExifTool-13.34.tar.gz | tar -xf -
|
114
|
+
cd Image-ExifTool-13.34
|
115
115
|
./exiftool t/images/ExifTool.jpg
|
116
116
|
|
117
117
|
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.34';
|
15
15
|
|
16
16
|
$^W = 1; # enable global warnings
|
17
17
|
|
@@ -5831,12 +5831,12 @@ escaped. The inverse conversion is applied when writing tags.
|
|
5831
5831
|
=item B<-f> (B<-forcePrint>)
|
5832
5832
|
|
5833
5833
|
Force printing of tags even if they don't exist. This option applies to
|
5834
|
-
tags specified on the command line, or with the B<-p>, B<-if>
|
5835
|
-
|
5836
|
-
is set to a dash (C<->) by
|
5837
|
-
|
5838
|
-
|
5839
|
-
B<-csv>=I<CSVFILE> feature.
|
5834
|
+
tags specified on the command line, or with the B<-p>, B<-if> (unless the
|
5835
|
+
API UndefTags option is set), B<-fileNUM> or B<-tagsFromFile> options. When
|
5836
|
+
B<-f> is used, the value of any missing tag is set to a dash (C<->) by
|
5837
|
+
default, but this may be configured via the API MissingTagValue option.
|
5838
|
+
B<-f> is also used to add a 'flags' attribute to the B<-listx> output, or to
|
5839
|
+
allow tags to be deleted when writing with the B<-csv>=I<CSVFILE> feature.
|
5840
5840
|
|
5841
5841
|
=item B<-g>[I<NUM>][:I<NUM>...] (B<-groupHeadings>)
|
5842
5842
|
|
@@ -6001,7 +6001,7 @@ translation, follow these steps (you must have Perl installed for this):
|
|
6001
6001
|
6. Edit the generated language module lib/Image/ExifTool/Lang/ru.pm, and
|
6002
6002
|
search and replace all 'MISSING' strings in the file with your translations.
|
6003
6003
|
|
6004
|
-
7. Email the module ('ru.pm' in this example) to exiftool
|
6004
|
+
7. Email the module ('ru.pm' in this example) to exiftool@gmail.com
|
6005
6005
|
|
6006
6006
|
8. Thank you!!
|
6007
6007
|
|
@@ -6011,7 +6011,7 @@ For list-type tags, this causes only the item with the specified index to be
|
|
6011
6011
|
extracted. I<INDEX> is 0 for the first item in the list. Negative indices
|
6012
6012
|
may also be used to reference items from the end of the list. Has no effect
|
6013
6013
|
on single-valued tags. Also applies to tag values when copying from a tag,
|
6014
|
-
and in B<-if>
|
6014
|
+
and in B<-if>, B<-p> and B<-fileNUM> arguments.
|
6015
6015
|
|
6016
6016
|
=item B<-n> (B<--printConv>)
|
6017
6017
|
|
@@ -6076,7 +6076,7 @@ with this command:
|
|
6076
6076
|
|
6077
6077
|
produces output like this:
|
6078
6078
|
|
6079
|
-
-- Generated by ExifTool 13.
|
6079
|
+
-- Generated by ExifTool 13.34 --
|
6080
6080
|
File: a.jpg - 2003:10:31 15:44:19
|
6081
6081
|
(f/5.6, 1/60s, ISO 100)
|
6082
6082
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6624,11 +6624,8 @@ Notes:
|
|
6624
6624
|
|
6625
6625
|
1) The B<-n> and B<-b> options also apply to tags used in I<EXPR>.
|
6626
6626
|
|
6627
|
-
2)
|
6628
|
-
|
6629
|
-
also specified on the command line. The alternative is to use the
|
6630
|
-
C<$GROUP:all> syntax. (eg. Use C<$exif:all> instead of C<$exif> in I<EXPR>
|
6631
|
-
to test for the existence of EXIF tags.)
|
6627
|
+
2) The API RequestTags option is automatically set for all tags used in the
|
6628
|
+
B<-if> condition.
|
6632
6629
|
|
6633
6630
|
3) Tags in the string are interpolated in a similar way to B<-p> before the
|
6634
6631
|
expression is evaluated. In this interpolation, C<$/> is converted to a
|
@@ -6650,8 +6647,8 @@ C<$Copy1:TAG>, C<$Copy2:TAG>, etc).
|
|
6650
6647
|
command when B<-execute> was used, and may be used like any other tag in the
|
6651
6648
|
condition (ie. "$OK").
|
6652
6649
|
|
6653
|
-
7) The
|
6654
|
-
B<-
|
6650
|
+
7) The values of undefined tags in the expression are affected by the B<-f>
|
6651
|
+
and B<-m> options unless the API UndefTags option is also set.
|
6655
6652
|
|
6656
6653
|
8) The condition fails if a Perl error occurs. This could happen for
|
6657
6654
|
instance if an undefined value (eg. a missing tag) is used improperly.
|
@@ -6666,8 +6663,9 @@ so ExifTool leaves it up to you to make the final decision. Minor errors
|
|
6666
6663
|
and warnings are indicated by "[minor]" at the start of the message.
|
6667
6664
|
Warnings which affect processing when ignored are indicated by "[Minor]"
|
6668
6665
|
(with a capital "M"). Note that this causes missing values in
|
6669
|
-
B<-tagsFromFile>, B<-p> and B<-
|
6670
|
-
rather than an undefined value
|
6666
|
+
B<-tagsFromFile>, B<-p>, B<-if> and B<-fileNUM> strings to be set to an
|
6667
|
+
empty string rather than an undefined value (but this may be avoided for
|
6668
|
+
B<-if> using the API UndefTags option).
|
6671
6669
|
|
6672
6670
|
=item B<-o> I<OUTFILE> or I<FMT> (B<-out>)
|
6673
6671
|
|
@@ -7279,11 +7277,11 @@ Set user parameter. I<PARAM> is an arbitrary user parameter name. This is
|
|
7279
7277
|
an interface to the API UserParam option (see the
|
7280
7278
|
L<Image::ExifTool Options|Image::ExifTool/Options> documentation), and
|
7281
7279
|
provides a method to access user-defined parameters in arguments to the
|
7282
|
-
B<-if> and B<-
|
7283
|
-
tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
|
7284
|
-
parameter to be extracted as a normal tag in the UserParam group.
|
7285
|
-
to the B<-api> option, the parameter value is set to 1 if I<=VAL>
|
7286
|
-
omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
7280
|
+
B<-if>, B<-p> and B<-fileNUM> options as if they were any other tag.
|
7281
|
+
Appending a hash tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
|
7282
|
+
causes the parameter to be extracted as a normal tag in the UserParam group.
|
7283
|
+
Similar to the B<-api> option, the parameter value is set to 1 if I<=VAL>
|
7284
|
+
is omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
7287
7285
|
I<VAL> is omitted with C<^=>.
|
7288
7286
|
|
7289
7287
|
exiftool -p '$test from $filename' -userparam test=Hello FILE
|
@@ -7293,18 +7291,20 @@ I<VAL> is omitted with C<^=>.
|
|
7293
7291
|
=head3 Advanced formatting feature
|
7294
7292
|
|
7295
7293
|
An advanced formatting feature allows modification of the value of any tag
|
7296
|
-
interpolated within a B<-if> or B<-
|
7297
|
-
redirection string. Tag names within these strings are
|
7298
|
-
symbol, and an arbitrary Perl expression may be applied
|
7299
|
-
placing braces around the tag name and inserting the
|
7300
|
-
name, separated by a semicolon (ie. C<${TAG;EXPR}>).
|
7301
|
-
the value of the tag through the default input
|
7302
|
-
access to the full ExifTool API through the
|
7303
|
-
(C<$self>) and the tag key (C<$tag>). It may
|
7304
|
-
including translation (C<tr///>) and
|
7305
|
-
note that braces within the
|
7306
|
-
|
7307
|
-
|
7294
|
+
interpolated within a B<-if>, B<-p> or B<-fileNUM> argument, or a
|
7295
|
+
B<-tagsFromFile> redirection string. Tag names within these strings are
|
7296
|
+
prefixed by a C<$> symbol, and an arbitrary Perl expression may be applied
|
7297
|
+
to the tag value by placing braces around the tag name and inserting the
|
7298
|
+
expression after the name, separated by a semicolon (ie. C<${TAG;EXPR}>).
|
7299
|
+
The expression acts on the value of the tag through the default input
|
7300
|
+
variable (C<$_>), and has access to the full ExifTool API through the
|
7301
|
+
current ExifTool object (C<$self>) and the tag key (C<$tag>). It may
|
7302
|
+
contain any valid Perl code, including translation (C<tr///>) and
|
7303
|
+
substitution (C<s///>) operations, but note that braces within the
|
7304
|
+
expression must be balanced. If the expression does not modify C<$_> the
|
7305
|
+
original tag value is returned. The example below prints the camera Make
|
7306
|
+
with spaces translated to underlines, and multiple consecutive underlines
|
7307
|
+
replaced by a single underline:
|
7308
7308
|
|
7309
7309
|
exiftool -p '${make;tr/ /_/;s/__+/_/g}' image.jpg
|
7310
7310
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.95';
|
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)
|
@@ -2151,6 +2151,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2151
2151
|
TagTable => 'Image::ExifTool::Canon::RawBurstInfo',
|
2152
2152
|
}
|
2153
2153
|
},
|
2154
|
+
# 0x4049 - related to croping (forum13491) - "8 0 0 0" = no crop, "8 1 0 1" = crop enabled
|
2154
2155
|
0x4059 => { #forum16111
|
2155
2156
|
Name => 'LevelInfo',
|
2156
2157
|
SubDirectory => {
|
@@ -9331,6 +9332,14 @@ my %filterConv = (
|
|
9331
9332
|
3 => 'Vehicles',
|
9332
9333
|
},
|
9333
9334
|
},
|
9335
|
+
21 => { #github344 (R6)
|
9336
|
+
Name => 'SubjectSwitching',
|
9337
|
+
PrintConv => {
|
9338
|
+
0 => 'Initial Priority',
|
9339
|
+
1 => 'On Subject',
|
9340
|
+
2 => 'Switch Subject',
|
9341
|
+
},
|
9342
|
+
},
|
9334
9343
|
24 => { #forum16068
|
9335
9344
|
Name => 'EyeDetection',
|
9336
9345
|
PrintConv => \%offOn,
|
@@ -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.60';
|
61
61
|
|
62
62
|
sub ProcessExif($$$);
|
63
63
|
sub WriteExif($$$);
|
@@ -6362,9 +6362,10 @@ sub ProcessExif($$$)
|
|
6362
6362
|
$et->Warn("Bad format ($format) for $dir entry $index", $inMakerNotes);
|
6363
6363
|
++$warnCount;
|
6364
6364
|
}
|
6365
|
-
# assume corrupted IFD if this is our first entry (except Sony ILCE
|
6366
|
-
|
6367
|
-
|
6365
|
+
# assume corrupted IFD if this is our first entry (except Sony ILCE which have an empty first entry)
|
6366
|
+
next if $index or $$et{Model} =~ /^ILCE/;
|
6367
|
+
# $et->Warn(sprintf('Format code 0x%x encountered -- Possibly corrupted IFD'));
|
6368
|
+
return 0;
|
6368
6369
|
}
|
6369
6370
|
}
|
6370
6371
|
my $formatStr = $formatName[$format]; # get name of this format
|
@@ -1816,6 +1816,7 @@ sub WriteRAF($$)
|
|
1816
1816
|
# make sure padding is only zero bytes (can be >100k for HS10)
|
1817
1817
|
# (have seen non-null padding in X-Pro1)
|
1818
1818
|
if ($buff =~ /[^\0]/) {
|
1819
|
+
HexDump(\$buff);
|
1819
1820
|
return 1 if $et->Error('Non-null bytes found in padding', 2);
|
1820
1821
|
}
|
1821
1822
|
}
|
@@ -49,7 +49,7 @@ use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
|
|
49
49
|
use Image::ExifTool qw(:DataAccess :Utils);
|
50
50
|
use Image::ExifTool::Exif;
|
51
51
|
|
52
|
-
$VERSION = '2.
|
52
|
+
$VERSION = '2.89';
|
53
53
|
|
54
54
|
# Full list of product codes for Sony-compatible Minolta lenses
|
55
55
|
# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
|
@@ -603,6 +603,8 @@ $VERSION = '2.88';
|
|
603
603
|
19 => 'Vivid 2', #JR (7SM3)
|
604
604
|
20 => 'IN', #JR (7SM3)
|
605
605
|
21 => 'SH', #JR (7SM3)
|
606
|
+
22 => 'FL2', #JR (ILME-FX2)
|
607
|
+
23 => 'FL3', #JR (ILME-FX2)
|
606
608
|
100 => 'Neutral', #JD
|
607
609
|
101 => 'Clear', #JD
|
608
610
|
102 => 'Deep', #JD
|
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
65
65
|
use Image::ExifTool::GPS;
|
66
66
|
use Image::ExifTool::XMP;
|
67
67
|
|
68
|
-
$VERSION = '4.
|
68
|
+
$VERSION = '4.50';
|
69
69
|
|
70
70
|
sub LensIDConv($$$);
|
71
71
|
sub ProcessNikonAVI($$$);
|
@@ -723,6 +723,7 @@ sub GetAFPointGrid($$;$);
|
|
723
723
|
'9F 48 48 48 24 24 A1 06' => 'Yongnuo YN40mm F2.8N', #30
|
724
724
|
'9F 54 68 68 18 18 A2 06' => 'Yongnuo YN100mm F2N', #30
|
725
725
|
'9F 4C 44 44 18 18 A1 06' => 'Yongnuo YN35mm F2', #30
|
726
|
+
'9F 4D 50 50 14 14 A0 06' => 'Yongnuo YN50mm F1.8N', #30
|
726
727
|
#
|
727
728
|
'02 40 44 5C 2C 34 02 00' => 'Exakta AF 35-70mm 1:3.5-4.5 MC',
|
728
729
|
#
|
@@ -41,7 +41,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
41
41
|
use Image::ExifTool::Exif;
|
42
42
|
use Image::ExifTool::APP12;
|
43
43
|
|
44
|
-
$VERSION = '2.
|
44
|
+
$VERSION = '2.89';
|
45
45
|
|
46
46
|
sub PrintLensInfo($$$);
|
47
47
|
|
@@ -1944,14 +1944,14 @@ my %indexInfo = (
|
|
1944
1944
|
0x201 => 'Airplanes; Passenger/Transport Plane Found',
|
1945
1945
|
0x202 => 'Airplanes; Small Plane/Fighter Jet Found',
|
1946
1946
|
0x203 => 'Airplanes; Helicopter Found',
|
1947
|
-
0x300 => 'Trains
|
1948
|
-
0x301 => 'Trains
|
1949
|
-
0x400 => 'Birds
|
1950
|
-
0x401 => 'Birds Object Found',
|
1951
|
-
0x500 => 'Dogs & Cats
|
1952
|
-
0x501 => 'Dogs & Cats
|
1953
|
-
0x600 => 'Human
|
1954
|
-
0x601 => 'Human
|
1947
|
+
0x300 => 'Trains; Object Not Found',
|
1948
|
+
0x301 => 'Trains; Object Found',
|
1949
|
+
0x400 => 'Birds; Object Not Found',
|
1950
|
+
0x401 => 'Birds; Object Found',
|
1951
|
+
0x500 => 'Dogs & Cats; Object Not Found',
|
1952
|
+
0x501 => 'Dogs & Cats; Object Found',
|
1953
|
+
0x600 => 'Human; Object Not Found',
|
1954
|
+
0x601 => 'Human; Object Found',
|
1955
1955
|
},
|
1956
1956
|
},
|
1957
1957
|
0x030a => {
|
@@ -2514,7 +2514,7 @@ my %indexInfo = (
|
|
2514
2514
|
2, 3, 5 or numbers: 1. Mode, 2. Shot number, 3. Mode bits, 5. Shutter mode,
|
2515
2515
|
6. Shooting mode (E-M1 II and later models)
|
2516
2516
|
},
|
2517
|
-
PrintConv => q
|
2517
|
+
PrintConv => q{
|
2518
2518
|
my ($a,$b,$c,$d,$e,$f) = split ' ',$val;
|
2519
2519
|
if ($b) {
|
2520
2520
|
$b = ', Shot ' . $b;
|
@@ -2618,10 +2618,10 @@ my %indexInfo = (
|
|
2618
2618
|
RawConv => '$$self{ImageStabilization} = $val',
|
2619
2619
|
PrintConv => {
|
2620
2620
|
0 => 'Off',
|
2621
|
-
1 => 'On, S-IS1 (All Direction Shake
|
2622
|
-
2 => 'On, S-IS2 (Vertical Shake
|
2623
|
-
3 => 'On, S-IS3 (Horizontal Shake
|
2624
|
-
4 => 'On, S-IS Auto
|
2621
|
+
1 => 'On, S-IS1 (All Direction Shake IS)', #25
|
2622
|
+
2 => 'On, S-IS2 (Vertical Shake IS)', #25
|
2623
|
+
3 => 'On, S-IS3 (Horizontal Shake IS)', #25
|
2624
|
+
4 => 'On, S-IS Auto', #25
|
2625
2625
|
},
|
2626
2626
|
},
|
2627
2627
|
0x804 => { #PH (E-M1 with firmware update)
|
@@ -2793,15 +2793,16 @@ my %indexInfo = (
|
|
2793
2793
|
FIRST_ENTRY => 0,
|
2794
2794
|
FORMAT => 'int16u',
|
2795
2795
|
WRITABLE => 1,
|
2796
|
-
|
2797
|
-
|
2796
|
+
NOTES => 'Position and size of selected AF Area and focus areas for OM cameras.',
|
2797
|
+
0 => { Name => 'AFFrameSize', Format => 'int16u[2]' , Notes => 'width/height of the focus/select frame' },
|
2798
|
+
2 => { Name => 'AFFocusArea', Format => 'int16u[4]' , Notes => 'X Y width height. The center is identical to AFPointSelected' },
|
2798
2799
|
6 => {
|
2799
2800
|
Name => 'AFSelectedArea',
|
2800
2801
|
Format => 'int16u[4]',
|
2801
2802
|
Notes => q{
|
2802
|
-
X Y width height. Subject Detection OFF: User selected AF target
|
2803
|
-
Subject Detection ON: Area related to
|
2804
|
-
}
|
2803
|
+
X Y width height. Subject and Face Detection OFF: User selected AF target
|
2804
|
+
area. Subject or Face Detection ON: Area related to detection process.
|
2805
|
+
},
|
2805
2806
|
},
|
2806
2807
|
);
|
2807
2808
|
|
@@ -2810,21 +2811,35 @@ my %indexInfo = (
|
|
2810
2811
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2811
2812
|
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
2812
2813
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
2813
|
-
NOTES => 'Subject Detection for OM cameras.',
|
2814
2814
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
2815
2815
|
FIRST_ENTRY => 0,
|
2816
2816
|
FORMAT => 'int16u',
|
2817
2817
|
WRITABLE => 1,
|
2818
|
-
|
2818
|
+
NOTES => q{
|
2819
|
+
Subject Detection data for OM cameras. These tags contain the areas of a
|
2820
|
+
subject and its elements detected by Subject Detection, or the main face and
|
2821
|
+
eyes detected by Face Detection. These elements can be either L1 details
|
2822
|
+
(level 1, such as head, chassis, airplane nose, etc.) or L2 details (level
|
2823
|
+
2, such as eye, driver, airplane cockpit, etc.).
|
2824
|
+
},
|
2825
|
+
0 => { Name => 'SubjectDetectFrameSize', Format => 'int16u[2]', Notes => 'width/height of the subject detect frame' },
|
2819
2826
|
2 => { Name => 'SubjectDetectArea', Format => 'int16u[4]', Notes => 'X Y width height' },
|
2820
|
-
6 => { Name => 'SubjectDetectDetail', Format => 'int16u[4]' },
|
2827
|
+
6 => { Name => 'SubjectDetectDetail', Format => 'int16u[4]', Notes => 'X Y width height' },
|
2821
2828
|
10 => {
|
2822
2829
|
Name => 'SubjectDetectStatus',
|
2830
|
+
Notes => q{
|
2831
|
+
Indicates the presence of data related to subject and face detection, not
|
2832
|
+
necessarily corresponding to the detection result
|
2833
|
+
},
|
2823
2834
|
PrintConv => {
|
2824
|
-
|
2825
|
-
257 => '
|
2826
|
-
|
2827
|
-
|
2835
|
+
0 => 'No Data',
|
2836
|
+
257 => 'Subject and L1 Detail Detected', # (head, airplane nose, ...)
|
2837
|
+
258 => 'Subject and L2 Detail Detected', # (eye, airplane cockpit, ...)
|
2838
|
+
260 => 'Subject Detected, No Details',
|
2839
|
+
515 => 'Face and Eye Detected',
|
2840
|
+
516 => 'Face Detected',
|
2841
|
+
771 => 'Subject Detail or Eye Detected',
|
2842
|
+
772 => 'No Subject or Face Detected',
|
2828
2843
|
},
|
2829
2844
|
},
|
2830
2845
|
);
|
@@ -59,7 +59,7 @@ use Image::ExifTool::Exif;
|
|
59
59
|
use Image::ExifTool::GPS;
|
60
60
|
use Image::ExifTool::HP;
|
61
61
|
|
62
|
-
$VERSION = '3.
|
62
|
+
$VERSION = '3.55';
|
63
63
|
|
64
64
|
sub CryptShutterCount($$);
|
65
65
|
sub PrintFilter($$$);
|
@@ -1977,6 +1977,8 @@ my %binaryDataAttrs = (
|
|
1977
1977
|
'18 3' => 'Auto Program (MTF)', #PH (NC)
|
1978
1978
|
'18 22' => 'Auto Program (Shallow DOF)', #PH (NC)
|
1979
1979
|
'20 22' => 'Blur Control', #PH (Q)
|
1980
|
+
'24 0' => 'Aperture Priority (Adv.Hyp)', #KG
|
1981
|
+
'25 0' => 'Manual Exposure (Adv.Hyp)', #KG
|
1980
1982
|
'26 0' => 'Shutter and Aperture Priority (TAv)', #PH (K-3III)
|
1981
1983
|
'249 0' => 'Movie (TAv)', #31
|
1982
1984
|
'250 0' => 'Movie (TAv, Auto Aperture)', #31
|
@@ -1998,10 +2000,13 @@ my %binaryDataAttrs = (
|
|
1998
2000
|
Count => 4,
|
1999
2001
|
PrintConv => [{
|
2000
2002
|
0 => 'Single-frame', # (also Interval Shooting for K-01 - PH)
|
2001
|
-
1 => 'Continuous',
|
2002
|
-
|
2003
|
+
1 => 'Continuous', #KG *ist D, *ist Ds, *ist DS2, K110D, K10D, K100D, K100D Super, K20D, Ricoh GR III / GR IIIx
|
2004
|
+
#KG Hi: K200D, K-x, K-7, K-r, K-5, K-01, K-5 II, K-5 IIs, K-30, K-500, K-50, K-S1, K-S2, K-70
|
2005
|
+
#KG High: K-3, K-3 II, K-1, K-1 II, KP, K-3 III, K-3 III Mono
|
2006
|
+
2 => 'Continuous (Lo)', #KG all models listed under 'Hi'
|
2003
2007
|
3 => 'Burst', #PH (K20D)
|
2004
|
-
4 => 'Continuous (Medium)', #
|
2008
|
+
4 => 'Continuous (Medium)', #KG all models listed under 'High'
|
2009
|
+
5 => 'Continuous (Low)', #KG all models listed under 'High'
|
2005
2010
|
255 => 'Video', #PH (K-x)
|
2006
2011
|
},{
|
2007
2012
|
0 => 'No Timer',
|
@@ -3009,7 +3014,7 @@ my %binaryDataAttrs = (
|
|
3009
3014
|
}],
|
3010
3015
|
0x022b => [{
|
3011
3016
|
Name => 'LevelInfoK3III',
|
3012
|
-
Condition => '$$self{Model}
|
3017
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
3013
3018
|
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LevelInfoK3III' },
|
3014
3019
|
},{ #PH (K-5)
|
3015
3020
|
Name => 'LevelInfo',
|
@@ -5066,7 +5071,7 @@ my %binaryDataAttrs = (
|
|
5066
5071
|
},
|
5067
5072
|
0x14 => {
|
5068
5073
|
Name => 'AFPointValues',
|
5069
|
-
Condition => '$$self{Model}
|
5074
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/', #KG
|
5070
5075
|
Format => 'int16uRev[69]',
|
5071
5076
|
Unknown => 1,
|
5072
5077
|
Notes => 'some unknown values related to each AFPoint',
|
@@ -5079,7 +5084,7 @@ my %binaryDataAttrs = (
|
|
5079
5084
|
},
|
5080
5085
|
0x12a => {
|
5081
5086
|
Name => 'AFPointsSelected', # (should probably be "AFPointSelected", but the bitmask allows multiple points)
|
5082
|
-
Condition => '$$self{Model}
|
5087
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5083
5088
|
Notes => q{
|
5084
5089
|
K-3III only. 41 selectable AF points from a total of 101 available in a 13x9
|
5085
5090
|
grid. Columns are labelled A-M and rows are 1-9. The center point is G5. The
|
@@ -5097,7 +5102,7 @@ my %binaryDataAttrs = (
|
|
5097
5102
|
0x18f => { # byte has a value of 1 if corresponding AF point is ... in focus maybe?
|
5098
5103
|
# usually the same points as AFPointsSelected above, but not always
|
5099
5104
|
Name => 'AFPointsUnknown',
|
5100
|
-
Condition => '$$self{Model}
|
5105
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/', #KG
|
5101
5106
|
Unknown => 1,
|
5102
5107
|
Format => 'int8u[101]',
|
5103
5108
|
PrintConv => \&AFPointNamesK3III,
|
@@ -5105,7 +5110,7 @@ my %binaryDataAttrs = (
|
|
5105
5110
|
0x1fa => {
|
5106
5111
|
Name => 'LiveView',
|
5107
5112
|
Notes => 'decoded only for the K-3 III',
|
5108
|
-
Condition => '$$self{Model}
|
5113
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/', #KG
|
5109
5114
|
PrintConv => { 0 => 'Off', 1 => 'On' },
|
5110
5115
|
},
|
5111
5116
|
0x1fd => {
|
@@ -5114,6 +5119,54 @@ my %binaryDataAttrs = (
|
|
5114
5119
|
Condition => '$$self{Model} eq "PENTAX K-3 II"',
|
5115
5120
|
PrintConv => { 0 => 'Off', 1 => 'Short', 2 => 'Medium', 3 => 'Long' },
|
5116
5121
|
},
|
5122
|
+
0x021f => { #KG
|
5123
|
+
Name => 'FirstFrameActionInAFC',
|
5124
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5125
|
+
PrintConv => {
|
5126
|
+
'0' => 'Auto',
|
5127
|
+
'1' => 'Release Priority',
|
5128
|
+
'2' => 'Focus Priority',
|
5129
|
+
# there is at least another value '3' but I couldn't figure out the
|
5130
|
+
# meaning. However, this occurs for a few AF-S captures, so it has
|
5131
|
+
# no real practical meaning.
|
5132
|
+
},
|
5133
|
+
},
|
5134
|
+
0x0220 => { #KG
|
5135
|
+
Name => 'ActionInAFCCont',
|
5136
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5137
|
+
PrintConv => {
|
5138
|
+
'0' => 'Auto',
|
5139
|
+
'1' => 'Focus Priority',
|
5140
|
+
'2' => 'FPS Priority',
|
5141
|
+
},
|
5142
|
+
},
|
5143
|
+
545 => { #KG
|
5144
|
+
Name => 'AFCHold',
|
5145
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5146
|
+
Mask => 0x03,
|
5147
|
+
PrintConv => { 0 => 'Low', 1 => 'Medium', 2 => 'High', 3 => 'Off' },
|
5148
|
+
},
|
5149
|
+
545.1 => { #KG
|
5150
|
+
Name => 'AFCSensitivity',
|
5151
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5152
|
+
Mask => 0x0c,
|
5153
|
+
PrintConv => '5 - $val',
|
5154
|
+
PrintConvInv => '5 - $val',
|
5155
|
+
},
|
5156
|
+
545.2 => { #KG
|
5157
|
+
Name => 'AFCPointTracking',
|
5158
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5159
|
+
Mask => 0x70,
|
5160
|
+
PrintConv => { 0 => 'Type 1', 1 => 'Type 2', 2 => 'Type 3' },
|
5161
|
+
},
|
5162
|
+
0x0960 => { #KG
|
5163
|
+
Name => 'SubjectRecognition',
|
5164
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5165
|
+
PrintConv => {
|
5166
|
+
0 => 'Off',
|
5167
|
+
1 => 'On',
|
5168
|
+
},
|
5169
|
+
},
|
5117
5170
|
);
|
5118
5171
|
|
5119
5172
|
# AF information for K-01 and later (ref Karsten Gieselmann private communication)
|
@@ -6023,6 +6076,14 @@ my %binaryDataAttrs = (
|
|
6023
6076
|
K-500. It is currently not known where the corresponding temperature
|
6024
6077
|
sensors are located in the camera.
|
6025
6078
|
},
|
6079
|
+
0x0a => { #KG
|
6080
|
+
Name => 'ShotNumber',
|
6081
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
6082
|
+
# The exact same method to detect this tag with a similar set of files
|
6083
|
+
# does not reveal anything for K-1. Is this only available for K-3-III ?
|
6084
|
+
# Internal representation starts at 0 for the 1st shot
|
6085
|
+
ValueConv => '$val+1',
|
6086
|
+
},
|
6026
6087
|
# (it would be nice to know where these temperature sensors are located,
|
6027
6088
|
# but since according to the manual the Slow Shutter Speed NR Auto mode
|
6028
6089
|
# is based on "internal temperature", my guess is that there must be
|
@@ -802,7 +802,8 @@ numerical, and generated automatically otherwise.
|
|
802
802
|
Shift : [Writable tags only] Specifies type of shift to apply if this
|
803
803
|
value may be shifted. Set to 'Time' for shifting date/time
|
804
804
|
tags, or '0' to prevent tag from being shifted or
|
805
|
-
conditionally deleted.
|
805
|
+
conditionally deleted. May not be used for Writable Composite
|
806
|
+
tags.
|
806
807
|
|
807
808
|
Writable : Indicates this tag can be written (or not written if Writable
|
808
809
|
is set to zero), and for EXIF and QuickTime tables gives
|
@@ -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.
|
37
|
+
$VERSION = '3.75';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -76,6 +76,9 @@ sub PrintInvLensSpec($;$$);
|
|
76
76
|
6 => 'Sony LA-EA4 Adapter',
|
77
77
|
7 => 'Sony LA-EA5 Adapter', #JR
|
78
78
|
13 => 'Samyang AF 35-150mm F2-2.8',
|
79
|
+
17 => 'Samyang RS 21mm F3.5', #JR
|
80
|
+
18 => 'Samyang RS 28mm F3.5', #JR
|
81
|
+
19 => 'Samyang RS 32mm F2.8', #JR
|
79
82
|
20 => 'Samyang AF 35mm F1.4 P FE', #JR
|
80
83
|
21 => 'Samyang AF 14-24mm F2.8', #JR
|
81
84
|
# 27 => Venus Optics Laowa 12mm f2.8 Zero-D or 105mm f2 (T3.2) Smooth Trans Focus (ref IB)
|
@@ -251,9 +254,11 @@ sub PrintInvLensSpec($;$$);
|
|
251
254
|
49474.8 => 'Viltrox 50mm F1.8 FE', #JR
|
252
255
|
49474.9 => 'Viltrox 75mm F1.2 E', #JR
|
253
256
|
'49474.10' => 'Viltrox 20mm F2.8 FE', #JR
|
257
|
+
'49474.11' => 'Viltrox AF 135/1.8 LAB FE', #JR
|
254
258
|
49475 => 'Tamron 50-300mm F4.5-6.3 Di III VC VXD', #JR (Model A069)
|
255
259
|
49476 => 'Tamron 28-300mm F4-7.1 Di III VC VXD', #JR (Model A074)
|
256
260
|
49477 => 'Tamron 90mm F2.8 Di III Macro VXD', #JR (Model F072)
|
261
|
+
49478 => 'Tamron 16-30mm F2.8 Di III VXD G2', #JR (Model A064)
|
257
262
|
|
258
263
|
49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
|
259
264
|
49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
|
@@ -315,6 +320,8 @@ sub PrintInvLensSpec($;$$);
|
|
315
320
|
50550 => 'Sigma 28-105mm F2.8 DG DN | A', #JR (024)
|
316
321
|
50551 => 'Sigma 28-45mm F1.8 DG DN | A', #JR (024)
|
317
322
|
50553 => 'Sigma 300-600mm F4 DG OS | S', #JR (025)
|
323
|
+
50554 => 'Sigma 16-300mm F3.5-6.7 DC OS | C', #JR (025)
|
324
|
+
50556 => 'Sigma 17-40mm F1.8 DC | C', #JR (025)
|
318
325
|
|
319
326
|
# lenses listed in the Sigma MC-11 list, but not yet seen:
|
320
327
|
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
|
@@ -1198,7 +1205,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1198
1205
|
# FocusMode for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
|
1199
1206
|
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
|
1200
1207
|
Name => 'FocusMode',
|
1201
|
-
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2)/)',
|
1208
|
+
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2|RX1RM3)/)',
|
1202
1209
|
Writable => 'int8u',
|
1203
1210
|
Priority => 0,
|
1204
1211
|
PrintConv => {
|
@@ -1230,7 +1237,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1230
1237
|
},
|
1231
1238
|
},{
|
1232
1239
|
Name => 'AFAreaModeSetting',
|
1233
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2))/',
|
1240
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2|RX1RM3))/',
|
1234
1241
|
Notes => 'NEX, ILCE and some DSC models',
|
1235
1242
|
RawConv => '$$self{AFAreaILCE} = $val',
|
1236
1243
|
DataMember => 'AFAreaILCE',
|
@@ -1267,7 +1274,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1267
1274
|
# observed values in range (0 0) to (640 480), with center (320 240) often seen
|
1268
1275
|
# for NEX-5R/6, positions appear to be in an 11x9 grid
|
1269
1276
|
Name => 'FlexibleSpotPosition',
|
1270
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2))/',
|
1277
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2|RX1RM3))/',
|
1271
1278
|
Writable => 'int16u',
|
1272
1279
|
Count => 2,
|
1273
1280
|
Notes => q{
|
@@ -1427,7 +1434,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1427
1434
|
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
|
1428
1435
|
0x2021 => { #JR
|
1429
1436
|
Name => 'AFTracking',
|
1430
|
-
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2)/)',
|
1437
|
+
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2|RX1RM3)/)',
|
1431
1438
|
Writable => 'int8u',
|
1432
1439
|
PrintConv => {
|
1433
1440
|
0 => 'Off',
|
@@ -1723,7 +1730,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1723
1730
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1724
1731
|
{
|
1725
1732
|
Name => 'Tag9050a',
|
1726
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|6700|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7RM5|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
|
1733
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|6700|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7RM5|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-(FX2|FX3)|ZV-)/',
|
1727
1734
|
SubDirectory => {
|
1728
1735
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1729
1736
|
ByteOrder => 'LittleEndian',
|
@@ -1744,7 +1751,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1744
1751
|
},
|
1745
1752
|
},{
|
1746
1753
|
Name => 'Tag9050d',
|
1747
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ZV-(E1|E10M2))\b/ or ($$self{Model} =~ /^(ILCE-1M2)/ and $$valPt =~ /^\x00/)',
|
1754
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ILME-FX2|ZV-(E1|E10M2))\b/ or ($$self{Model} =~ /^(ILCE-1M2)/ and $$valPt =~ /^\x00/)',
|
1748
1755
|
SubDirectory => {
|
1749
1756
|
TagTable => 'Image::ExifTool::Sony::Tag9050d',
|
1750
1757
|
ByteOrder => 'LittleEndian',
|
@@ -2185,6 +2192,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
2185
2192
|
398 => 'ILX-LR1', #JR
|
2186
2193
|
399 => 'ZV-E10M2', #JR
|
2187
2194
|
400 => 'ILCE-1M2', #PH
|
2195
|
+
401 => 'DSC-RX1RM3', #JR
|
2196
|
+
406 => 'ILME-FX2', #JR
|
2188
2197
|
},
|
2189
2198
|
},
|
2190
2199
|
0xb020 => { #2
|
@@ -6327,6 +6336,8 @@ my %pictureProfile2010 = (
|
|
6327
6336
|
38 => 'VV2',
|
6328
6337
|
39 => 'IN',
|
6329
6338
|
40 => 'SH',
|
6339
|
+
48 => 'FL2', #JR
|
6340
|
+
49 => 'FL3', #JR
|
6330
6341
|
},
|
6331
6342
|
);
|
6332
6343
|
my %isoSetting2010 = (
|
@@ -8236,7 +8247,7 @@ my %isoSetting2010 = (
|
|
8236
8247
|
0x000a => {
|
8237
8248
|
Name => 'ShutterCount',
|
8238
8249
|
# number of mechanical shutter actuations, does not increase during electronic shutter / Silent Shooting
|
8239
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR))/',
|
8250
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR)|ILME-FX2)/',
|
8240
8251
|
Format => 'int32u',
|
8241
8252
|
Notes => 'total number of mechanical shutter actuations',
|
8242
8253
|
RawConv => '$val & 0x00ffffff',
|
@@ -8497,7 +8508,7 @@ my %isoSetting2010 = (
|
|
8497
8508
|
},
|
8498
8509
|
0x002a => [{
|
8499
8510
|
Name => 'Quality2',
|
8500
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|1M2|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-(E1|E10M2))\b/',
|
8511
|
+
Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|1M2|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX2|FX3|FX30)|ZV-(E1|E10M2))\b/',
|
8501
8512
|
PrintConv => {
|
8502
8513
|
0 => 'JPEG',
|
8503
8514
|
1 => 'RAW',
|
@@ -8522,7 +8533,7 @@ my %isoSetting2010 = (
|
|
8522
8533
|
# },
|
8523
8534
|
0x0053 => {
|
8524
8535
|
Name => 'ModelReleaseYear',
|
8525
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-(E1|E10M2))\b/',
|
8536
|
+
Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX2|FX3|FX30)|ZV-(E1|E10M2))\b/',
|
8526
8537
|
Format => 'int8u',
|
8527
8538
|
PrintConv => 'sprintf("20%.2d", $val)',
|
8528
8539
|
},
|
@@ -8565,7 +8576,7 @@ my %isoSetting2010 = (
|
|
8565
8576
|
0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
|
8566
8577
|
|
8567
8578
|
0x03e2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 181', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8568
|
-
0x03f4 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(185|186)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8579
|
+
0x03f4 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(185|186|187)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8569
8580
|
0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 178', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8570
8581
|
0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8571
8582
|
0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167 and $$self{Software} !~ /^ILCE-7M4 (v2|v3)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
@@ -9893,10 +9904,19 @@ my %isoSetting2010 = (
|
|
9893
9904
|
WRITE_PROC => \&WriteEnciphered,
|
9894
9905
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
9895
9906
|
FORMAT => 'int8u',
|
9896
|
-
|
9907
|
+
DATAMEMBER => [ 0x00, 0x37 ],
|
9908
|
+
NOTES => q{
|
9909
|
+
Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX2/FX3/FX30,
|
9910
|
+
ZV-E1/E10M2.
|
9911
|
+
},
|
9897
9912
|
FIRST_ENTRY => 0,
|
9898
9913
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
9899
|
-
0x0000 => {
|
9914
|
+
0x0000 => {
|
9915
|
+
Name => 'Tag9416_0000',
|
9916
|
+
Hidden => 1, # (hide from documentation)
|
9917
|
+
PrintConv => 'sprintf("%3d",$val)',
|
9918
|
+
RawConv => '$$self{TagVersion} = $val; undef', # (used only to set TagVersion)
|
9919
|
+
},
|
9900
9920
|
0x0004 => {
|
9901
9921
|
Name => 'SonyISO',
|
9902
9922
|
Format => 'int16u',
|
@@ -9945,7 +9965,9 @@ my %isoSetting2010 = (
|
|
9945
9965
|
PrintConv => \%sonyExposureProgram3,
|
9946
9966
|
},
|
9947
9967
|
0x0037 => {
|
9948
|
-
Name => 'CreativeStyle',
|
9968
|
+
Name => 'CreativeStyle',
|
9969
|
+
Notes => 'offsets after this are shifted by 1 for the ILME-FX2',
|
9970
|
+
Hook => '$varSize += 1 if $$self{Model} =~ /^(ILME-FX2)/',
|
9949
9971
|
PrintConv => {
|
9950
9972
|
0 => 'Standard',
|
9951
9973
|
1 => 'Vivid',
|
@@ -9964,6 +9986,8 @@ my %isoSetting2010 = (
|
|
9964
9986
|
16 => 'VV2',
|
9965
9987
|
17 => 'IN',
|
9966
9988
|
18 => 'SH',
|
9989
|
+
19 => 'FL2',
|
9990
|
+
20 => 'FL3',
|
9967
9991
|
255 => 'Off',
|
9968
9992
|
},
|
9969
9993
|
},
|
@@ -10056,7 +10080,7 @@ my %isoSetting2010 = (
|
|
10056
10080
|
},
|
10057
10081
|
0x089d => { # Note: 32 values for these newer models, and 32 non-zero values present for new lenses like SEL2470GM2 and SEL2070G
|
10058
10082
|
Name => 'VignettingCorrParams',
|
10059
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-(E1|E10M2))\b/',
|
10083
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7RM5)|ILME-(FX2|FX30)|ZV-(E1|E10M2))\b/',
|
10060
10084
|
Format => 'int16s[32]',
|
10061
10085
|
},
|
10062
10086
|
0x08b5 => {
|
@@ -10095,7 +10119,7 @@ my %isoSetting2010 = (
|
|
10095
10119
|
},
|
10096
10120
|
0x0945 => {
|
10097
10121
|
Name => 'ChromaticAberrationCorrParams',
|
10098
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-(E1|E10M2))\b/',
|
10122
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7RM5)|ILME-(FX2|FX30)|ZV-(E1|E10M2))\b/',
|
10099
10123
|
Format => 'int16s[32]',
|
10100
10124
|
},
|
10101
10125
|
);
|
@@ -643,6 +643,7 @@ my %tagLookup = (
|
|
643
643
|
'acdseeregionnameassigntype' => { 505 => [\'Regions','RegionsRegionListNameAssignType'] },
|
644
644
|
'acdseeregiontype' => { 505 => [\'Regions','RegionsRegionListType'] },
|
645
645
|
'actionadvised' => { 138 => 0x2a },
|
646
|
+
'actioninafccont' => { 371 => 0x220 },
|
646
647
|
'activearea' => { 125 => 0xc68d },
|
647
648
|
'actived-lighting' => { 246 => 0x22, 304 => 0x24 },
|
648
649
|
'actived-lightingmode' => { 304 => 0x25 },
|
@@ -746,9 +747,12 @@ my %tagLookup = (
|
|
746
747
|
'afassistbeam' => { 2 => 0x8, 90 => 0x50e, 91 => 0x4, 92 => 0x5, 93 => 0x4, 94 => 0x4, 95 => 0x5 },
|
747
748
|
'afassistlamp' => { 360 => 0x31 },
|
748
749
|
'afbuttonpressed' => { 455 => [0x83,0x283] },
|
750
|
+
'afchold' => { 371 => 0x221 },
|
749
751
|
'afconfidence' => { 1 => 0x3d },
|
750
752
|
'afconfigtool' => { 2 => 0x1 },
|
751
753
|
'afcoordinatesavailable' => { 203 => 0x7, 204 => 0x7 },
|
754
|
+
'afcpointtracking' => { 371 => '545.2' },
|
755
|
+
'afcsensitivity' => { 371 => '545.1' },
|
752
756
|
'afdefocus' => { 371 => 0x6 },
|
753
757
|
'afdetectionmethod' => { 200 => 0x4, 201 => 0x4, 203 => 0x4, 204 => 0x4 },
|
754
758
|
'afduringliveview' => { 90 => 0x511 },
|
@@ -3132,6 +3136,7 @@ my %tagLookup = (
|
|
3132
3136
|
'firmwarerevision2' => { 431 => 0xc },
|
3133
3137
|
'firmwareversion' => { 7 => 0x10b, 11 => 0x136, 14 => 0xff, 15 => 0x107, 145 => [0x415,0xce5], 161 => 0x57, 163 => 'FirmwareVersion', 358 => 0x320, 360 => 0x2, 362 => 0x3109, 399 => 0x230, 425 => ['CNFV','FIRM','info'], 428 => 0x18, 429 => 0x2a, 433 => 0x2 },
|
3134
3138
|
'firmwareversions' => { 408 => 0x301 },
|
3139
|
+
'firstframeactioninafc' => { 371 => 0x21f },
|
3135
3140
|
'firstphotodate' => { 518 => 'FirstPhotoDate' },
|
3136
3141
|
'firstpublicationdate' => { 346 => 'FirstPublicationDate' },
|
3137
3142
|
'fixtureidentifier' => { 138 => 0x16, 526 => 'FixtureIdentifier' },
|
@@ -6647,7 +6652,7 @@ my %tagLookup = (
|
|
6647
6652
|
'shotlocation' => { 562 => 'shotLocation' },
|
6648
6653
|
'shotlogdata' => { 512 => 'shot_log_data' },
|
6649
6654
|
'shotname' => { 425 => 'shot', 562 => 'shotName' },
|
6650
|
-
'shotnumber' => { 562 => 'shotNumber' },
|
6655
|
+
'shotnumber' => { 404 => 0xa, 562 => 'shotNumber' },
|
6651
6656
|
'shotnumbersincepowerup' => { 471 => 0x44e, 490 => 0x1a, 491 => 0x16, 492 => 0xa },
|
6652
6657
|
'shotnumbersincepowerup2' => { 455 => 0x200 },
|
6653
6658
|
'shotsize' => { 562 => 'shotSize' },
|
@@ -6871,7 +6876,9 @@ my %tagLookup = (
|
|
6871
6876
|
'subjectlocation' => { 125 => 0xa214, 538 => 'SubjectLocation' },
|
6872
6877
|
'subjectmotion' => { 316 => '78.2', 317 => '78.2', 327 => '78.2', 330 => 0x103, 331 => 0x103, 332 => 0x119 },
|
6873
6878
|
'subjectprogram' => { 188 => 0x22 },
|
6879
|
+
'subjectrecognition' => { 371 => 0x960 },
|
6874
6880
|
'subjectreference' => { 138 => 0xc },
|
6881
|
+
'subjectswitching' => { 2 => 0x15 },
|
6875
6882
|
'subjecttodetect' => { 2 => 0x14 },
|
6876
6883
|
'sublabels1' => { 544 => [\'TagStructure','TagStructureSubLabels'] },
|
6877
6884
|
'sublabels2' => { 544 => [\'TagStructure','TagStructureSubLabelsSubLabels'] },
|
@@ -12767,7 +12774,6 @@ my %tagExists = (
|
|
12767
12774
|
'tag940a' => 1,
|
12768
12775
|
'tag940c' => 1,
|
12769
12776
|
'tag940e' => 1,
|
12770
|
-
'tag9416_0000' => 1,
|
12771
12777
|
'taggedpdf' => 1,
|
12772
12778
|
'taggingtime' => 1,
|
12773
12779
|
'tailnumber' => 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
|
15
|
+
They contain a total of 28636 tags, with 17834 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
|
@@ -10339,6 +10339,7 @@ Information about creative filter settings.
|
|
10339
10339
|
18 AFStatusViewfinder int32s
|
10340
10340
|
19 InitialAFPointInServo int32s
|
10341
10341
|
20 SubjectToDetect int32s
|
10342
|
+
21 SubjectSwitching int32s
|
10342
10343
|
24 EyeDetection int32s
|
10343
10344
|
|
10344
10345
|
=head3 Canon RawBurstInfo Tags
|
@@ -19406,6 +19407,8 @@ any information found here will be extracted, even if the tag is not listed.
|
|
19406
19407
|
|
19407
19408
|
=head3 Olympus AFTargetInfo Tags
|
19408
19409
|
|
19410
|
+
Position and size of selected AF Area and focus areas for OM cameras.
|
19411
|
+
|
19409
19412
|
Index2 Tag Name Writable
|
19410
19413
|
------ -------- --------
|
19411
19414
|
0 AFFrameSize int16u[2]
|
@@ -19414,7 +19417,11 @@ any information found here will be extracted, even if the tag is not listed.
|
|
19414
19417
|
|
19415
19418
|
=head3 Olympus SubjectDetectInfo Tags
|
19416
19419
|
|
19417
|
-
Subject Detection for OM cameras.
|
19420
|
+
Subject Detection data for OM cameras. These tags contain the areas of a
|
19421
|
+
subject and its elements detected by Subject Detection, or the main face and
|
19422
|
+
eyes detected by Face Detection. These elements can be either L1 details
|
19423
|
+
(level 1, such as head, chassis, airplane nose, etc.) or L2 details (level
|
19424
|
+
2, such as eye, driver, airplane cockpit, etc.).
|
19418
19425
|
|
19419
19426
|
Index2 Tag Name Writable
|
19420
19427
|
------ -------- --------
|
@@ -20724,6 +20731,12 @@ Flash information tags for the K10D, K20D and K200D.
|
|
20724
20731
|
399 AFPointsUnknown? int8u[101]~
|
20725
20732
|
506 LiveView int8u
|
20726
20733
|
509 AFHold int8u
|
20734
|
+
543 FirstFrameActionInAFC int8u
|
20735
|
+
544 ActionInAFCCont int8u
|
20736
|
+
545 AFCHold int8u & 0x03
|
20737
|
+
545.1 AFCSensitivity int8u & 0x0c
|
20738
|
+
545.2 AFCPointTracking int8u & 0x70
|
20739
|
+
2400 SubjectRecognition int8u
|
20727
20740
|
|
20728
20741
|
=head3 Pentax KelvinWB Tags
|
20729
20742
|
|
@@ -20965,6 +20978,7 @@ sensors are located in the camera.
|
|
20965
20978
|
|
20966
20979
|
Index1 Tag Name Writable
|
20967
20980
|
------ -------- --------
|
20981
|
+
10 ShotNumber no
|
20968
20982
|
12 SensorTemperature int16s
|
20969
20983
|
14 SensorTemperature2 int16s
|
20970
20984
|
20 CameraTemperature4 int16s
|
@@ -23614,11 +23628,11 @@ E-mount models.
|
|
23614
23628
|
|
23615
23629
|
=head3 Sony Tag9416 Tags
|
23616
23630
|
|
23617
|
-
Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30,
|
23631
|
+
Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX2/FX3/FX30,
|
23632
|
+
ZV-E1/E10M2.
|
23618
23633
|
|
23619
23634
|
Index1 Tag Name Writable
|
23620
23635
|
------ -------- --------
|
23621
|
-
0 Tag9416_0000 no
|
23622
23636
|
4 SonyISO no
|
23623
23637
|
6 StopsAboveBaseISO no
|
23624
23638
|
10 SonyExposureTime2 no
|
@@ -695,12 +695,11 @@ TAG: foreach $tagInfo (@matchingTags) {
|
|
695
695
|
my $src = GetTagTable($$table{SRC_TABLE});
|
696
696
|
$writeProc = $$src{WRITE_PROC} unless $writeProc;
|
697
697
|
}
|
698
|
-
{
|
698
|
+
if ($writeProc) {
|
699
699
|
# make sure module is loaded if the writeProc is a string
|
700
700
|
unless (ref $writeProc) {
|
701
701
|
my $module = $writeProc;
|
702
|
-
$module =~ s/::\w
|
703
|
-
eval "require $module";
|
702
|
+
$module =~ s/::\w+$// and eval "require $module";
|
704
703
|
}
|
705
704
|
no strict 'refs';
|
706
705
|
next unless $writeProc and &$writeProc();
|
@@ -3405,7 +3404,7 @@ sub InsertTagValues($$;$$$$)
|
|
3405
3404
|
undef $advFmtSelf;
|
3406
3405
|
$didExpr = 1; # set flag indicating an expression was evaluated
|
3407
3406
|
}
|
3408
|
-
unless (defined $val) {
|
3407
|
+
unless (defined $val or (ref $opt and $$self{OPTIONS}{UndefTags})) {
|
3409
3408
|
$val = $$self{OPTIONS}{MissingTagValue};
|
3410
3409
|
unless (defined $val) {
|
3411
3410
|
my $g3 = ($docGrp and $var !~ /\b(main|doc\d+):/i) ? $docGrp . ':' : '';
|
@@ -5053,6 +5052,7 @@ TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
|
5053
5052
|
last;
|
5054
5053
|
}
|
5055
5054
|
if (not $lib) {
|
5055
|
+
last unless $$self{OPTIONS}{StrictDate};
|
5056
5056
|
warn $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n";
|
5057
5057
|
return undef;
|
5058
5058
|
} elsif ($lib eq 'POSIX::strptime') {
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
30
30
|
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
31
31
|
|
32
|
-
$VERSION = '13.
|
32
|
+
$VERSION = '13.34';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -1181,6 +1181,7 @@ my @availableOptions = (
|
|
1181
1181
|
[ 'SystemTags', undef, 'extract additional File System tags' ],
|
1182
1182
|
[ 'TextOut', \*STDOUT, 'file for Verbose/HtmlDump output' ],
|
1183
1183
|
[ 'TimeZone', undef, 'local time zone' ],
|
1184
|
+
[ 'UndefTags', undef, 'leave undef tags in -if conditions when -m or -f are used' ],
|
1184
1185
|
[ 'Unknown', 0, 'flag to get values of unknown tags (0-2)' ],
|
1185
1186
|
[ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
|
1186
1187
|
[ 'Validate', undef, 'perform additional validation' ],
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -1199,6 +1199,11 @@ For Unix-based systems, the value may also be a time zone ID like
|
|
1199
1199
|
"America/New_York". Requires Time::Piece on Windows, or POSIX::tzset on
|
1200
1200
|
other systems. Default is undef.
|
1201
1201
|
|
1202
|
+
=item UndefTags
|
1203
|
+
|
1204
|
+
Flag to maintain undefined tag values in the application B<-if> expression
|
1205
|
+
when the B<-f> or B<-m> option is also used. Default is undef.
|
1206
|
+
|
1202
1207
|
=item Unknown
|
1203
1208
|
|
1204
1209
|
Flag to get the values of unknown tags. If set to 1, unknown tags are
|
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: 13.
|
4
|
+
version: 13.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: 2025-
|
12
|
+
date: 2025-09-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|