exiftool_vendored 11.75.1 → 11.76.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +9 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +20 -14
- data/bin/lib/Image/ExifTool.pm +15 -4
- data/bin/lib/Image/ExifTool/Geotag.pm +7 -4
- data/bin/lib/Image/ExifTool/GoPro.pm +7 -7
- data/bin/lib/Image/ExifTool/PNG.pm +3 -3
- data/bin/lib/Image/ExifTool/Sony.pm +115 -66
- data/bin/lib/Image/ExifTool/TagLookup.pm +3 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +41 -29
- data/bin/lib/Image/ExifTool/Text.pm +58 -22
- data/bin/lib/Image/ExifTool/Writer.pl +4 -2
- data/bin/lib/Image/ExifTool/XMP.pm +2 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +12 -4
- 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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b04c571479edb1316d1d8d923fa142283732130
|
4
|
+
data.tar.gz: 6a4d5eab35d349d6200b0bc39f144e868cb080f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 307444f4d8506d8dbb03e577df08f8e1ebfe57abe1f8cd2d75dd1a70bc8585b5175d65020b85e0081e2e9091ec16caa1b37f8a1f2bcf5ee1dafa96881a7ff318
|
7
|
+
data.tar.gz: 98cfd97808f11aedb2bf961a24c001a97401ff348fea9e5c06b17d1acff3c1cf0fe4a5ed64b0732bd523805d9c912791ebb7e5c182c1300d55071249fe567239
|
data/bin/Changes
CHANGED
@@ -7,6 +7,15 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 11.70. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Nov. 12, 2019 - Version 11.76
|
11
|
+
|
12
|
+
- Added support for the Sony ILCE-9M2 (thanks Jos Roost)
|
13
|
+
- Added a couple of new XMP-GCamera tags
|
14
|
+
- Added MIMEType values for some formats that previously reported
|
15
|
+
"application/unknown"
|
16
|
+
- Enhanced -geotag feature to write pitch to CameraElevationAngle if available
|
17
|
+
- Improved determination of MIMEEncoding for TXT files
|
18
|
+
|
10
19
|
Nov. 4, 2019 - Version 11.75
|
11
20
|
|
12
21
|
- Added ability to read some basic characteristics of TXT files
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
|
|
104
104
|
terminal window to extract and run ExifTool:
|
105
105
|
|
106
106
|
cd ~/Desktop
|
107
|
-
gzip -dc Image-ExifTool-11.
|
108
|
-
cd Image-ExifTool-11.
|
107
|
+
gzip -dc Image-ExifTool-11.76.tar.gz | tar -xf -
|
108
|
+
cd Image-ExifTool-11.76
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
110
110
|
|
111
111
|
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 = '11.
|
13
|
+
my $version = '11.76';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -4191,18 +4191,18 @@ sub PrintTagList($@)
|
|
4191
4191
|
}
|
4192
4192
|
return;
|
4193
4193
|
}
|
4194
|
-
|
4195
|
-
my $len = 1;
|
4194
|
+
my ($len, $pad) = (0, $quiet ? '' : ' ');
|
4196
4195
|
foreach $tag (@_) {
|
4197
4196
|
my $taglen = length($tag);
|
4198
|
-
if ($len + $taglen >
|
4199
|
-
print "\n
|
4200
|
-
$len =
|
4197
|
+
if ($len + $taglen > 77) {
|
4198
|
+
print "\n";
|
4199
|
+
($len, $pad) = (0, $quiet ? '' : ' ');
|
4201
4200
|
}
|
4202
|
-
print
|
4201
|
+
print $pad, $tag;
|
4203
4202
|
$len += $taglen + 1;
|
4203
|
+
$pad = ' ';
|
4204
4204
|
}
|
4205
|
-
@_ or print '
|
4205
|
+
@_ or print $pad, '[empty list]';
|
4206
4206
|
print "\n";
|
4207
4207
|
}
|
4208
4208
|
|
@@ -4409,7 +4409,7 @@ L<Processing control|/Processing control>
|
|
4409
4409
|
-ee (-extractEmbedded) Extract information from embedded files
|
4410
4410
|
-ext[+] EXT (-extension) Process files with specified extension
|
4411
4411
|
-F[OFFSET] (-fixBase) Fix the base for maker notes offsets
|
4412
|
-
-fast[NUM] Increase speed
|
4412
|
+
-fast[NUM] Increase speed when extracting metadata
|
4413
4413
|
-fileOrder [-]TAG Set file processing order
|
4414
4414
|
-i DIR (-ignore) Ignore specified directory name
|
4415
4415
|
-if[NUM] EXPR Conditionally process files
|
@@ -4720,7 +4720,8 @@ Other than these differences, the B<-tagsFromFile> and B<-addTagsFromFile>
|
|
4720
4720
|
options are equivalent.
|
4721
4721
|
|
4722
4722
|
6) The B<-a> option (allow duplicate tags) is always in effect when copying
|
4723
|
-
tags from I<SRCFILE
|
4723
|
+
tags from I<SRCFILE>, but the highest priority tag is always copied last so
|
4724
|
+
it takes precedence.
|
4724
4725
|
|
4725
4726
|
7) Structured tags are copied by default when copying tags. See the
|
4726
4727
|
B<-struct> option for details.
|
@@ -4735,7 +4736,9 @@ destination tag (as if they were separate assignments). However, when
|
|
4735
4736
|
interpolated inside a string, list items and the values of shortcut tags are
|
4736
4737
|
concatenated (with a separator set by the B<-sep> option), and wildcards are
|
4737
4738
|
not allowed. Also, UserParam variables are available only when interpolated
|
4738
|
-
in a string.
|
4739
|
+
in a string. Another difference is that a minor warning is generated if a
|
4740
|
+
tag doesn't exist when interpolating its value in a string (with C<$>), but
|
4741
|
+
isn't when copying the tag directly.
|
4739
4742
|
|
4740
4743
|
=item B<-x> I<TAG> (B<-exclude>)
|
4741
4744
|
|
@@ -5173,7 +5176,7 @@ with this command:
|
|
5173
5176
|
|
5174
5177
|
produces output like this:
|
5175
5178
|
|
5176
|
-
-- Generated by ExifTool 11.
|
5179
|
+
-- Generated by ExifTool 11.76 --
|
5177
5180
|
File: a.jpg - 2003:10:31 15:44:19
|
5178
5181
|
(f/5.6, 1/60s, ISO 100)
|
5179
5182
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5571,8 +5574,8 @@ permanently if B<-F> is used when writing EXIF to an image. eg)
|
|
5571
5574
|
|
5572
5575
|
=item B<-fast>[I<NUM>]
|
5573
5576
|
|
5574
|
-
Increase speed of extracting information. With
|
5575
|
-
|
5577
|
+
Increase speed of extracting information. With B<-fast>, ExifTool will not
|
5578
|
+
scan to the end of a JPEG image to check for an AFCP or PreviewImage
|
5576
5579
|
trailer, or past the first comment in GIF images or the audio/video data in
|
5577
5580
|
WAV/AVI files to search for additional metadata. These speed benefits are
|
5578
5581
|
small when reading images directly from disk, but can be substantial if
|
@@ -5584,6 +5587,9 @@ obtain an educated guess at FileType. B<-fast4> doesn't even read the file
|
|
5584
5587
|
header, and determines FileType based only on the file extension. Has no
|
5585
5588
|
effect when writing.
|
5586
5589
|
|
5590
|
+
Note that a separate B<-fast> setting may be used for evaluation of a B<-if>
|
5591
|
+
condition. See the B<-if> option documentation for details.
|
5592
|
+
|
5587
5593
|
=item B<-fileOrder> [-]I<TAG>
|
5588
5594
|
|
5589
5595
|
Set file processing order according to the sorted value of the specified
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -25,9 +25,9 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
25
25
|
$psAPP13hdr $psAPP13old @loadAllTables %UserDefined $evalWarning
|
26
26
|
%noWriteFile %magicNumber @langs $defaultLang %langName %charsetName
|
27
27
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
28
|
-
%jpegMarker %specialTags %fileTypeLookup);
|
28
|
+
%jpegMarker %specialTags %fileTypeLookup $testLen);
|
29
29
|
|
30
|
-
$VERSION = '11.
|
30
|
+
$VERSION = '11.76';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
@@ -569,10 +569,12 @@ my %fileDescription = (
|
|
569
569
|
BZ2 => 'application/bzip2',
|
570
570
|
'Canon 1D RAW' => 'image/x-raw', # (uses .TIF file extension)
|
571
571
|
CHM => 'application/x-chm',
|
572
|
+
COS => 'application/octet-stream', #PH (NC)
|
572
573
|
CR2 => 'image/x-canon-cr2',
|
573
574
|
CR3 => 'image/x-canon-cr3',
|
574
575
|
CRM => 'video/x-canon-crm',
|
575
576
|
CRW => 'image/x-canon-crw',
|
577
|
+
DCP => 'application/octet-stream', #PH (NC)
|
576
578
|
DCR => 'image/x-kodak-dcr',
|
577
579
|
DCX => 'image/dcx',
|
578
580
|
DEX => 'application/octet-stream',
|
@@ -588,6 +590,7 @@ my %fileDescription = (
|
|
588
590
|
DOTM => 'application/vnd.ms-word.template.macroEnabledTemplate',
|
589
591
|
DOTX => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
|
590
592
|
DPX => 'image/x-dpx',
|
593
|
+
DR4 => 'application/octet-stream', #PH (NC)
|
591
594
|
DS2 => 'audio/x-ds2',
|
592
595
|
DSS => 'audio/x-dss',
|
593
596
|
DV => 'video/x-dv',
|
@@ -605,8 +608,10 @@ my %fileDescription = (
|
|
605
608
|
FLA => 'application/vnd.adobe.fla',
|
606
609
|
FLAC => 'audio/flac',
|
607
610
|
FLIF => 'image/flif',
|
611
|
+
FLIR => 'image/x-flir-fff', #PH (NC)
|
608
612
|
FLV => 'video/x-flv',
|
609
613
|
Font => 'application/x-font-type1', # covers PFA, PFB and PFM (not sure about PFM)
|
614
|
+
FPF => 'image/x-flir-fpf', #PH (NC)
|
610
615
|
FPX => 'image/vnd.fpx',
|
611
616
|
GIF => 'image/gif',
|
612
617
|
GPR => 'image/x-gopro-gpr',
|
@@ -629,6 +634,7 @@ my %fileDescription = (
|
|
629
634
|
JPM => 'image/jpm',
|
630
635
|
JPX => 'image/jpx',
|
631
636
|
JSON => 'application/json',
|
637
|
+
JXR => 'image/jxr',
|
632
638
|
K25 => 'image/x-kodak-k25',
|
633
639
|
KDC => 'image/x-kodak-kdc',
|
634
640
|
KEY => 'application/x-iwork-keynote-sffkey',
|
@@ -646,6 +652,7 @@ my %fileDescription = (
|
|
646
652
|
MKV => 'video/x-matroska',
|
647
653
|
MNG => 'video/mng',
|
648
654
|
MOBI => 'application/x-mobipocket-ebook',
|
655
|
+
MOI => 'application/octet-stream', #PH (NC)
|
649
656
|
MOS => 'image/x-raw',
|
650
657
|
MOV => 'video/quicktime',
|
651
658
|
MP3 => 'audio/mpeg',
|
@@ -682,6 +689,7 @@ my %fileDescription = (
|
|
682
689
|
PHP => 'application/x-httpd-php',
|
683
690
|
PICT => 'image/pict',
|
684
691
|
PLIST=> 'application/xml', # (binary PLIST format is 'application/x-plist', recognized at run time)
|
692
|
+
PMP => 'image/x-sony-pmp', #PH (NC)
|
685
693
|
PNG => 'image/png',
|
686
694
|
POT => 'application/vnd.ms-powerpoint',
|
687
695
|
POTM => 'application/vnd.ms-powerpoint.template.macroEnabled',
|
@@ -714,6 +722,7 @@ my %fileDescription = (
|
|
714
722
|
RW2 => 'image/x-panasonic-rw2',
|
715
723
|
RWL => 'image/x-leica-rwl',
|
716
724
|
RWZ => 'image/x-rawzor', #(duplicated in Rawzor.pm)
|
725
|
+
SEQ => 'image/x-flir-seq', #PH (NC)
|
717
726
|
SKETCH => 'application/sketch',
|
718
727
|
SR2 => 'image/x-sony-sr2',
|
719
728
|
SRF => 'image/x-sony-srf',
|
@@ -728,6 +737,7 @@ my %fileDescription = (
|
|
728
737
|
TTF => 'application/x-font-ttf',
|
729
738
|
TXT => 'text/plain',
|
730
739
|
VCard=> 'text/vcard',
|
740
|
+
VRD => 'application/octet-stream', #PH (NC)
|
731
741
|
VSD => 'application/x-visio',
|
732
742
|
WDP => 'image/vnd.ms-photo',
|
733
743
|
WEBM => 'video/webm',
|
@@ -814,8 +824,10 @@ my %moduleName = (
|
|
814
824
|
XCF => 'GIMP',
|
815
825
|
);
|
816
826
|
|
827
|
+
$testLen = 1024; # number of bytes to read when testing for magic number
|
828
|
+
|
817
829
|
# quick "magic number" file test used to avoid loading module unnecessarily:
|
818
|
-
# - regular expression evaluated on first
|
830
|
+
# - regular expression evaluated on first $testLen bytes of file
|
819
831
|
# - must match beginning at first byte in file
|
820
832
|
# - this test must not be more stringent than module logic
|
821
833
|
%magicNumber = (
|
@@ -2470,7 +2482,6 @@ sub ExtractInfo($;@)
|
|
2470
2482
|
my ($buff, $seekErr);
|
2471
2483
|
my %dirInfo = ( RAF => $raf, Base => $pos, TestBuff => \$buff );
|
2472
2484
|
# read start of file for testing
|
2473
|
-
my $testLen = 1024;
|
2474
2485
|
$raf->Read($buff, $testLen) or $buff = '';
|
2475
2486
|
$raf->Seek($pos, 0) or $seekErr = 1;
|
2476
2487
|
until ($seekErr) {
|
@@ -12,6 +12,7 @@
|
|
12
12
|
# 2015/05/30 - PH Read Bramor gEO log files
|
13
13
|
# 2016/07/13 - PH Added ability to geotag date/time only
|
14
14
|
# 2019/07/02 - PH Added ability to read IMU CSV files
|
15
|
+
# 2019/11/10 - PH Also write pitch to CameraElevationAngle
|
15
16
|
#
|
16
17
|
# References: 1) http://www.topografix.com/GPX/1/1/
|
17
18
|
# 2) http://www.gpsinformation.org/dale/nmea.htm#GSA
|
@@ -25,7 +26,7 @@ use strict;
|
|
25
26
|
use vars qw($VERSION);
|
26
27
|
use Image::ExifTool qw(:Public);
|
27
28
|
|
28
|
-
$VERSION = '1.
|
29
|
+
$VERSION = '1.61';
|
29
30
|
|
30
31
|
sub JITTER() { return 2 } # maximum time jitter
|
31
32
|
|
@@ -1106,6 +1107,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1106
1107
|
}
|
1107
1108
|
@r = $et->SetNewValue(GPSImgDirection => $$tFix{dir}, %opts);
|
1108
1109
|
@r = $et->SetNewValue(GPSImgDirectionRef => (defined $$tFix{dir} ? 'T' : undef), %opts);
|
1110
|
+
@r = $et->SetNewValue(CameraElevationAngle => $$tFix{pitch}, %opts);
|
1109
1111
|
# Note: GPSPitch and GPSRoll are non-standard, and must be user-defined
|
1110
1112
|
@r = $et->SetNewValue(GPSPitch => $$tFix{pitch}, %opts);
|
1111
1113
|
@r = $et->SetNewValue(GPSRoll => $$tFix{roll}, %opts);
|
@@ -1143,7 +1145,8 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1143
1145
|
foreach (qw(GPSLatitude GPSLatitudeRef GPSLongitude GPSLongitudeRef
|
1144
1146
|
GPSAltitude GPSAltitudeRef GPSDateStamp GPSTimeStamp GPSDateTime
|
1145
1147
|
GPSTrack GPSTrackRef GPSSpeed GPSSpeedRef GPSImgDirection
|
1146
|
-
GPSImgDirectionRef GPSPitch GPSRoll
|
1148
|
+
GPSImgDirectionRef GPSPitch GPSRoll CameraElevationAngle
|
1149
|
+
AmbientTemperature))
|
1147
1150
|
{
|
1148
1151
|
my @r = $et->SetNewValue($_, undef, %opts);
|
1149
1152
|
}
|
@@ -1337,8 +1340,8 @@ in the tag name documentation).
|
|
1337
1340
|
|
1338
1341
|
=head1 NOTES
|
1339
1342
|
|
1340
|
-
To take advantage of attitude information in the PTNTHPR NMEA sentence,
|
1341
|
-
user-defined
|
1343
|
+
To take advantage of attitude information in the PTNTHPR NMEA sentence, the
|
1344
|
+
user-defined tag GPSRoll, must be active.
|
1342
1345
|
|
1343
1346
|
=head1 AUTHOR
|
1344
1347
|
|
@@ -65,12 +65,12 @@ my %addUnits = (
|
|
65
65
|
PROCESS_PROC => \&ProcessGoPro,
|
66
66
|
GROUPS => { 2 => 'Camera' },
|
67
67
|
NOTES => q{
|
68
|
-
Tags extracted from the GPMF box of GoPro MP4 videos, the APP6 "GoPro"
|
69
|
-
of JPEG files, and from the "gpmd" timed metadata if the
|
70
|
-
is enabled. Many more tags exist, but are
|
71
|
-
with the L<Unknown|../ExifTool.html#Unknown> (-u) option. Please
|
72
|
-
these unknown tags. See
|
73
|
-
about this format.
|
68
|
+
Tags extracted from the GPMF box of GoPro MP4 videos, the APP6 "GoPro"
|
69
|
+
segment of JPEG files, and from the "gpmd" timed metadata if the
|
70
|
+
L<ExtractEmbedded|../ExifTool.html#ExtractEmbedded> (-ee) option is enabled. Many more tags exist, but are
|
71
|
+
currently unknown and extracted only with the L<Unknown|../ExifTool.html#Unknown> (-u) option. Please
|
72
|
+
let me know if you discover the meaning of any of these unknown tags. See
|
73
|
+
L<https://github.com/gopro/gpmf-parser> for details about this format.
|
74
74
|
},
|
75
75
|
ACCL => { #2 (gpmd)
|
76
76
|
Name => 'Accelerometer',
|
@@ -471,7 +471,7 @@ my %addUnits = (
|
|
471
471
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
472
472
|
NOTES => q{
|
473
473
|
Tags extracted from the MP4 "fdsc" timed metadata when the L<ExtractEmbedded|../ExifTool.html#ExtractEmbedded>
|
474
|
-
option is used.
|
474
|
+
(-ee) option is used.
|
475
475
|
},
|
476
476
|
0x08 => { Name => 'FirmwareVersion', Format => 'string[15]' },
|
477
477
|
0x17 => { Name => 'SerialNumber', Format => 'string[16]' },
|
@@ -115,9 +115,9 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
|
|
115
115
|
location of text-type chunks (tEXt, zTXt and iTXt). However, certain
|
116
116
|
utilities (including some Apple and Adobe utilities) won't read the XMP iTXt
|
117
117
|
chunk if it comes after the IDAT chunk, and at least one utility won't read
|
118
|
-
other text chunks
|
119
|
-
create new text chunks (including XMP) before IDAT, and
|
120
|
-
text chunks
|
118
|
+
other text chunks here. For this reason, when writing, ExifTool 11.63 and
|
119
|
+
later create new text chunks (including XMP) before IDAT, and move existing
|
120
|
+
text chunks to before IDAT.
|
121
121
|
},
|
122
122
|
bKGD => {
|
123
123
|
Name => 'BackgroundColor',
|
@@ -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.18';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -943,7 +943,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
943
943
|
# unknown offsets or values for DSC-HX60V/HX350/HX400V/QX10/QX30/QX100/RX10/RX100M2/RX100M3/WX220/WX350,
|
944
944
|
# ILCA-68/77M2, ILCE-5000/5100/6000/7/7M2/7R/7S/QX1, Stellar2, Lusso
|
945
945
|
# unknown offsets or values for DSC-HX80/HX90V/RX0/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500, ILCE-6300/6500/7RM2/7SM2, ILCA-99M2
|
946
|
-
# unknown offsets or values for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/RX100M7/HX99
|
946
|
+
# unknown offsets or values for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/RX100M7/HX99
|
947
947
|
{
|
948
948
|
Name => 'Tag2010a', # ad
|
949
949
|
Condition => '$$self{Model} =~ /^NEX-5N$/',
|
@@ -984,7 +984,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
984
984
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
985
985
|
},{
|
986
986
|
Name => 'Tag2010i', # ?
|
987
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
|
987
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
|
988
988
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
989
989
|
},{
|
990
990
|
Name => 'Tag_0x2010',
|
@@ -1503,14 +1503,14 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1503
1503
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1504
1504
|
{
|
1505
1505
|
Name => 'Tag9050a',
|
1506
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1506
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9|9M2)|ILCA-99M2)/',
|
1507
1507
|
SubDirectory => {
|
1508
1508
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1509
1509
|
ByteOrder => 'LittleEndian',
|
1510
1510
|
},
|
1511
1511
|
},{
|
1512
1512
|
Name => 'Tag9050b',
|
1513
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1513
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9|9M2)|ILCA-99M2)/',
|
1514
1514
|
SubDirectory => {
|
1515
1515
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
1516
1516
|
ByteOrder => 'LittleEndian',
|
@@ -1529,7 +1529,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1529
1529
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1530
1530
|
# 0x24 (e) for ILCA-99M2,ILCE-5100/6300/6500/7M2/7RM2/7S/7SM2/QX1, DSC-HX80/HX90V/QX30/RX0/RX100M3/RX100M4/RX100M5/RX10M2/RX10M3/RX1RM2/WX500
|
1531
1531
|
# 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1532
|
-
# 0x28 (e) for ILCE-7RM4, DSC-RX100M7
|
1532
|
+
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7
|
1533
1533
|
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28 respectively
|
1534
1534
|
{
|
1535
1535
|
Name => 'Tag9400a',
|
@@ -1603,9 +1603,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1603
1603
|
# 82 00 fc 0f 0x0ad9 (y) DSC-RX100M5A v1.00, DSC-RX100M6 v1.00
|
1604
1604
|
# 90 00 fe 0f 0x098f? (z) DSC-HX99 v1.00
|
1605
1605
|
# 92 10 ff 0f 0x0990 (za) ILCE-6100/6400/6600 v1.00
|
1606
|
-
# 94 00 ce 0b 0x0879 (zb) ILCE-9 v5.
|
1606
|
+
# 94 00 ce 0b 0x0879 (zb) ILCE-9 v5.00-v6.00, DSC-RX0M2
|
1607
1607
|
# 98 00 db 0c 0x088a (zc) ILCE-7RM4 v1.00
|
1608
|
-
# 9a 00 e3 0c 0x088a (zc) DSC-RX100M7 v1.00
|
1608
|
+
# 9a 00 e3 0c 0x088a (zc) DSC-RX100M7 v1.00, ILCE-9M2 v1.00
|
1609
1609
|
#
|
1610
1610
|
# 0x0004 - (RX100: 0 or 1. subsequent data valid only if 1 - PH)
|
1611
1611
|
# 0x0007 => {
|
@@ -1644,7 +1644,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1644
1644
|
# 0x1d 0x01 DSC-RX10M4
|
1645
1645
|
# 0x1e 0x01 ILCE-7M3/7RM3, DSC-RX100M5A/RX100M6
|
1646
1646
|
# 0x1f 0x01 DSC-HX99
|
1647
|
-
# 0x20 0x01 ILCE-6100/6400/6600/7RM4, ILCE-9 v5.
|
1647
|
+
# 0x20 0x01 ILCE-6100/6400/6600/7RM4/9M2, ILCE-9 v5.00-v6.00, DSC-RX0M2/RX100M7
|
1648
1648
|
# var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
|
1649
1649
|
# only valid when first byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x19, 0x1a, 0x1c (enciphered 0x8a, 0x70, 0xb6, 0x69, 0x88, 0x20, 0x30, 0xd7, 0xbb, 0x92, 0x28)
|
1650
1650
|
# Condition => '$$self{DoubleCipher} ? $$valPt =~ /^[\x7e\x46\x1d\x18\x3a\x95\x24\x26\xd6]\x01/ : $$valPt =~ /^[\x8a\x70\xb6\x69\x88\x20\x30\xd7\xbb\x92\x28]\x01/',
|
@@ -1668,7 +1668,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1668
1668
|
# 13 0 9 2 2 DSC-QX10/QX100/RX100M2
|
1669
1669
|
# 15 0 35 2 2 ILCA-68/77M2, ILCE-5000/5100/6000/7/7R/7S/7M2/QX1, DSC-HX60V/HX350/HX400V/QX30/RX10/RX100M3/WX220/WX350
|
1670
1670
|
# 16 0 85 2 2 DSC-HX80/HX90V/WX500
|
1671
|
-
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX99, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9, ILCA-99M2
|
1671
|
+
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX99, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, ILCA-99M2
|
1672
1672
|
# other values for Panorama images and several other models
|
1673
1673
|
0x9404 => [{
|
1674
1674
|
Name => 'Tag9404a',
|
@@ -1702,7 +1702,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1702
1702
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1703
1703
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
1704
1704
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
1705
|
-
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99
|
1705
|
+
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99
|
1706
1706
|
0x9405 => [{
|
1707
1707
|
Name => 'Tag9405a',
|
1708
1708
|
# first byte must be 0x1b or 0x40 or 0x7d
|
@@ -1720,7 +1720,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1720
1720
|
0x9406 => [{
|
1721
1721
|
Name => 'Tag9406',
|
1722
1722
|
# - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
|
1723
|
-
# or 0x03 (enc. 0x1b) for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9, and ILCA-99M2
|
1723
|
+
# or 0x03 (enc. 0x1b) for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, and ILCA-99M2
|
1724
1724
|
# third byte must be 0x02 or 0x03 (enciphered 0x08 or 0x1b) - ref JR
|
1725
1725
|
# (applies to most SLT/ILCA and NEX/ILCE models, but no DSC models)
|
1726
1726
|
Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s',
|
@@ -1901,6 +1901,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1901
1901
|
372 => 'DSC-RX0M2', #JR
|
1902
1902
|
374 => 'DSC-RX100M7', #IB
|
1903
1903
|
375 => 'ILCE-7RM4', #IB
|
1904
|
+
376 => 'ILCE-9M2', #JR
|
1904
1905
|
378 => 'ILCE-6600', #IB/JR
|
1905
1906
|
379 => 'ILCE-6100', #IB/JR
|
1906
1907
|
},
|
@@ -5812,7 +5813,7 @@ my %releaseMode2 = ( #JR
|
|
5812
5813
|
15 => 'Continuous - High Resolution Sweep Panorama', #JR (HX50V)
|
5813
5814
|
16 => 'Continuous - 3D Image', # (HX9V)
|
5814
5815
|
17 => 'Continuous - Burst 2', # (WX7 - PH) (#JR 9400-SequenceLength=10 shots)
|
5815
|
-
|
5816
|
+
18 => 'Normal - iAuto+', # seen for several ILCE-3500/6000/6500/7S iAuto+ single-shot images ...
|
5816
5817
|
19 => 'Continuous - Speed/Advance Priority', #PH/JR (RX100)
|
5817
5818
|
20 => 'Continuous - Multi Frame NR',
|
5818
5819
|
23 => 'Single-frame - Exposure Bracketing', # (seen for ILCE-7 series)
|
@@ -6287,9 +6288,9 @@ my %isoSetting2010 = (
|
|
6287
6288
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6288
6289
|
FORMAT => 'int8u',
|
6289
6290
|
NOTES => q{
|
6290
|
-
Valid for SLT-A58/A99, ILCE-3000/3500, NEX-3N/5R/5T/6/VG30E/VG900,
|
6291
|
-
DSC-RX1/RX1R. Also valid for DSC-HX300/HX50V/TX30/WX60/WX200/
|
6292
|
-
for panorama images.
|
6291
|
+
Valid for SLT-A58/A99, ILCE-3000/3500, NEX-3N/5R/5T/6/VG30E/VG900,
|
6292
|
+
DSC-RX100, DSC-RX1/RX1R. Also valid for DSC-HX300/HX50V/TX30/WX60/WX200/
|
6293
|
+
WX300, but not for panorama images.
|
6293
6294
|
},
|
6294
6295
|
WRITABLE => 1,
|
6295
6296
|
FIRST_ENTRY => 0,
|
@@ -6802,7 +6803,8 @@ my %isoSetting2010 = (
|
|
6802
6803
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6803
6804
|
FORMAT => 'int8u',
|
6804
6805
|
NOTES => q{
|
6805
|
-
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/
|
6806
|
+
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M6/
|
6807
|
+
RX100M5A/RX100M7/HX99.
|
6806
6808
|
},
|
6807
6809
|
WRITABLE => 1,
|
6808
6810
|
FIRST_ENTRY => 0,
|
@@ -7278,6 +7280,14 @@ my %isoSetting2010 = (
|
|
7278
7280
|
Name => 'DistortionCorrParamsPresent',
|
7279
7281
|
PrintConv => { 0 => 'No', 1 => 'Yes'},
|
7280
7282
|
},
|
7283
|
+
0x0114 => {
|
7284
|
+
Name => 'APS-CSizeCapture',
|
7285
|
+
Condition => '$$self{Model} =~ /^(SLT-A99|HV|ILCE-7)/',
|
7286
|
+
PrintConv => {
|
7287
|
+
0 => 'Off',
|
7288
|
+
1 => 'On',
|
7289
|
+
},
|
7290
|
+
},
|
7281
7291
|
# 0x0115 and 0x0116, or 0x0116 and 0x0117:
|
7282
7292
|
# give the same info as the first and last bytes of LensSpec,
|
7283
7293
|
# but also for older Sony and Minolta lenses where all LensSpec bytes are 0.
|
@@ -7374,8 +7384,8 @@ my %isoSetting2010 = (
|
|
7374
7384
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
7375
7385
|
FORMAT => 'int8u',
|
7376
7386
|
NOTES => q{
|
7377
|
-
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/
|
7378
|
-
ILCA-99M2.
|
7387
|
+
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/
|
7388
|
+
7SM2/9/9M2, ILCA-99M2.
|
7379
7389
|
},
|
7380
7390
|
WRITABLE => 1,
|
7381
7391
|
FIRST_ENTRY => 0,
|
@@ -7463,7 +7473,7 @@ my %isoSetting2010 = (
|
|
7463
7473
|
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
7464
7474
|
0x0050 => {
|
7465
7475
|
Name => 'ShutterCount2',
|
7466
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/)',
|
7476
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4|9M2))/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/)',
|
7467
7477
|
Format => 'int32u',
|
7468
7478
|
RawConv => '$val & 0x00ffffff',
|
7469
7479
|
},
|
@@ -7480,13 +7490,13 @@ my %isoSetting2010 = (
|
|
7480
7490
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
7481
7491
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
7482
7492
|
Name => 'ShutterCount2',
|
7483
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/) and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7493
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9M2))/) and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7484
7494
|
Format => 'int32u',
|
7485
7495
|
RawConv => '$val & 0x00ffffff',
|
7486
7496
|
},
|
7487
7497
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
7488
7498
|
Name => 'SonyTimeMinSec',
|
7489
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
7499
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9|9M2))/',
|
7490
7500
|
Format => 'undef[2]',
|
7491
7501
|
ValueConv => q{
|
7492
7502
|
my @v = unpack('C*', $val);
|
@@ -7495,7 +7505,7 @@ my %isoSetting2010 = (
|
|
7495
7505
|
},
|
7496
7506
|
0x006b => {
|
7497
7507
|
Name => 'ReleaseMode2',
|
7498
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/',
|
7508
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4|9M2))/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7499
7509
|
%releaseMode2,
|
7500
7510
|
},
|
7501
7511
|
0x006d => {
|
@@ -7505,7 +7515,7 @@ my %isoSetting2010 = (
|
|
7505
7515
|
},
|
7506
7516
|
0x0073 => {
|
7507
7517
|
Name => 'ReleaseMode2',
|
7508
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7518
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9M2))/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7509
7519
|
%releaseMode2,
|
7510
7520
|
},
|
7511
7521
|
0x0088 => {
|
@@ -7557,6 +7567,14 @@ my %isoSetting2010 = (
|
|
7557
7567
|
Name => 'DistortionCorrParamsPresent',
|
7558
7568
|
PrintConv => { 0 => 'No', 1 => 'Yes'},
|
7559
7569
|
},
|
7570
|
+
0x0114 => {
|
7571
|
+
Name => 'APS-CSizeCapture',
|
7572
|
+
Condition => '$$self{Model} =~ /^(ILCE-7|ILCE-9|ILCA-99)/',
|
7573
|
+
PrintConv => {
|
7574
|
+
0 => 'Off',
|
7575
|
+
1 => 'On',
|
7576
|
+
},
|
7577
|
+
},
|
7560
7578
|
# 0x0116 and 0x0117:
|
7561
7579
|
# give the same info as the first and last bytes of LensSpec,
|
7562
7580
|
# but also for older Sony and Minolta lenses where all LensSpec bytes are 0.
|
@@ -7576,7 +7594,7 @@ my %isoSetting2010 = (
|
|
7576
7594
|
#
|
7577
7595
|
0x019f => {
|
7578
7596
|
Name => 'ShutterCount3',
|
7579
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
7597
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9|9M2))\b/',
|
7580
7598
|
Format => 'int32u',
|
7581
7599
|
RawConv => '$val == 0 ? undef : $val',
|
7582
7600
|
},
|
@@ -7592,30 +7610,17 @@ my %isoSetting2010 = (
|
|
7592
7610
|
Format => 'int32u',
|
7593
7611
|
RawConv => '$val == 0 ? undef : $val',
|
7594
7612
|
},
|
7595
|
-
|
7596
|
-
|
7597
|
-
|
7598
|
-
|
7599
|
-
|
7600
|
-
|
7601
|
-
|
7602
|
-
|
7603
|
-
# Name=>'LensType',
|
7604
|
-
# Condition => '$$self{Model} =~ /^(ILCE-(7RM2|7SM2))/',
|
7605
|
-
# Format=>'int16u',
|
7606
|
-
# },{
|
7607
|
-
# Name=>'LensType2',
|
7608
|
-
# Condition => '$$self{Model} =~ /^(ILCE-(6300|6500)|ILCA-99M2)/',
|
7609
|
-
# Format=>'int16u',
|
7610
|
-
# }],
|
7611
|
-
# 0x0211 => {
|
7612
|
-
# Name=>'LensType',
|
7613
|
-
# Condition => '$$self{Model} =~ /^(ILCE-(6300|6500)|ILCA-99M2)/',
|
7614
|
-
# Format=>'int16u',
|
7615
|
-
# },
|
7613
|
+
0x01eb => {
|
7614
|
+
Name => 'APS-CSizeCapture',
|
7615
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4|9M2)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7616
|
+
PrintConv => {
|
7617
|
+
0 => 'Off',
|
7618
|
+
1 => 'On',
|
7619
|
+
},
|
7620
|
+
},
|
7616
7621
|
0x01ed => {
|
7617
7622
|
Name => 'LensSpecFeatures',
|
7618
|
-
Condition => '$$self{Model} =~ /^
|
7623
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4|9M2)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7619
7624
|
Priority => 0,
|
7620
7625
|
Format => 'undef[2]',
|
7621
7626
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7626,9 +7631,17 @@ my %isoSetting2010 = (
|
|
7626
7631
|
PrintConv => \&PrintLensSpec,
|
7627
7632
|
PrintConvInv => 'Image::ExifTool::Sony::PrintInvLensSpec($val, $self, 1)',
|
7628
7633
|
},
|
7634
|
+
0x01ee => {
|
7635
|
+
Name => 'APS-CSizeCapture',
|
7636
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M3|7RM3|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7637
|
+
PrintConv => {
|
7638
|
+
0 => 'Off',
|
7639
|
+
1 => 'On',
|
7640
|
+
},
|
7641
|
+
},
|
7629
7642
|
0x01f0 => {
|
7630
7643
|
Name => 'LensSpecFeatures',
|
7631
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|9))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7644
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7632
7645
|
Priority => 0,
|
7633
7646
|
Format => 'undef[2]',
|
7634
7647
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7639,7 +7652,36 @@ my %isoSetting2010 = (
|
|
7639
7652
|
PrintConv => \&PrintLensSpec,
|
7640
7653
|
PrintConvInv => 'Image::ExifTool::Sony::PrintInvLensSpec($val, $self, 1)',
|
7641
7654
|
},
|
7642
|
-
|
7655
|
+
# the following tags are commented out because they can cause problems for the
|
7656
|
+
# Composite LensID of non-electronic lenses (even if Priority is set to 0)
|
7657
|
+
# 0x020d => {
|
7658
|
+
# Name=>'LensType2',
|
7659
|
+
# Condition => '$$self{Model} =~ /^(ILCE-(7RM2|7SM2))/',
|
7660
|
+
# Format=>'int16u',
|
7661
|
+
# },
|
7662
|
+
# 0x020f => [{
|
7663
|
+
# Name=>'LensType',
|
7664
|
+
# Condition => '$$self{Model} =~ /^(ILCE-(7RM2|7SM2))/',
|
7665
|
+
# Format=>'int16u',
|
7666
|
+
# },{
|
7667
|
+
# Name=>'LensType2',
|
7668
|
+
# Condition => '$$self{Model} =~ /^(ILCE-(6300|6500)|ILCA-99M2)/',
|
7669
|
+
# Format=>'int16u',
|
7670
|
+
# }],
|
7671
|
+
# 0x0211 => {
|
7672
|
+
# Name=>'LensType',
|
7673
|
+
# Condition => '$$self{Model} =~ /^(ILCE-(6300|6500)|ILCA-99M2)/',
|
7674
|
+
# Format=>'int16u',
|
7675
|
+
# },
|
7676
|
+
0x021a => {
|
7677
|
+
Name => 'APS-CSizeCapture',
|
7678
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7RM2|7SM2))/',
|
7679
|
+
PrintConv => {
|
7680
|
+
0 => 'Off',
|
7681
|
+
1 => 'On',
|
7682
|
+
},
|
7683
|
+
},
|
7684
|
+
0x021c => [{
|
7643
7685
|
Name => 'LensSpecFeatures',
|
7644
7686
|
Condition => '$$self{Model} =~ /^(ILCE-(7RM2|7SM2))/',
|
7645
7687
|
Priority => 0,
|
@@ -7651,7 +7693,14 @@ my %isoSetting2010 = (
|
|
7651
7693
|
},
|
7652
7694
|
PrintConv => \&PrintLensSpec,
|
7653
7695
|
PrintConvInv => 'Image::ExifTool::Sony::PrintInvLensSpec($val, $self, 1)',
|
7654
|
-
},
|
7696
|
+
},{
|
7697
|
+
Name => 'APS-CSizeCapture',
|
7698
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2)/',
|
7699
|
+
PrintConv => {
|
7700
|
+
0 => 'Off',
|
7701
|
+
1 => 'On',
|
7702
|
+
},
|
7703
|
+
}],
|
7655
7704
|
0x021e => {
|
7656
7705
|
Name => 'LensSpecFeatures',
|
7657
7706
|
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500)|ILCA-99M2)/',
|
@@ -7835,15 +7884,15 @@ my %isoSetting2010 = (
|
|
7835
7884
|
WRITABLE => 1,
|
7836
7885
|
NOTES => q{
|
7837
7886
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
|
7838
|
-
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/
|
7839
|
-
|
7840
|
-
|
7887
|
+
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/
|
7888
|
+
WX350/WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2/5000/5100/6000/
|
7889
|
+
6100/6300/6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
7841
7890
|
},
|
7842
7891
|
FIRST_ENTRY => 0,
|
7843
7892
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7844
7893
|
0x0009 => { %releaseMode2 },
|
7845
7894
|
0x000a => [{
|
7846
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
|
7895
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9|9M2)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
|
7847
7896
|
Name => 'ShotNumberSincePowerUp',
|
7848
7897
|
Format => 'int8u',
|
7849
7898
|
},{
|
@@ -8231,8 +8280,8 @@ my %isoSetting2010 = (
|
|
8231
8280
|
NOTES => q{
|
8232
8281
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX10/RX10M2/
|
8233
8282
|
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/WX350,
|
8234
|
-
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6100/6300/
|
8235
|
-
6500/6600/QX1, ILCA-68/77M2/99M2.
|
8283
|
+
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/9M2/5000/5100/6000/6100/6300/
|
8284
|
+
6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
8236
8285
|
},
|
8237
8286
|
0x0004 => {
|
8238
8287
|
Name => 'SonyISO',
|
@@ -8385,7 +8434,7 @@ my %isoSetting2010 = (
|
|
8385
8434
|
},
|
8386
8435
|
0x0342 => {
|
8387
8436
|
Name => 'LensZoomPosition',
|
8388
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6100|6300|6400|6500|6600|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
|
8437
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6100|6300|6400|6500|6600|9|9M2)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
|
8389
8438
|
Format => 'int16u',
|
8390
8439
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8391
8440
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8397,7 +8446,7 @@ my %isoSetting2010 = (
|
|
8397
8446
|
},
|
8398
8447
|
0x034e => {
|
8399
8448
|
Name => 'LensZoomPosition',
|
8400
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/',
|
8449
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9M2))/',
|
8401
8450
|
Format => 'int16u',
|
8402
8451
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8403
8452
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8409,7 +8458,7 @@ my %isoSetting2010 = (
|
|
8409
8458
|
},
|
8410
8459
|
0x035c => {
|
8411
8460
|
Name => 'VignettingCorrParams',
|
8412
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7M3|7RM3|7RM4|9))/',
|
8461
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7M3|7RM3|7RM4|9|9M2))/',
|
8413
8462
|
Format => 'int16s[16]',
|
8414
8463
|
},
|
8415
8464
|
0x035a => {
|
@@ -8446,7 +8495,7 @@ my %isoSetting2010 = (
|
|
8446
8495
|
},
|
8447
8496
|
0x03b8 => {
|
8448
8497
|
Name => 'ChromaticAberrationCorrParams',
|
8449
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
8498
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9|9M2))/',
|
8450
8499
|
Format => 'int16s[32]',
|
8451
8500
|
},
|
8452
8501
|
);
|
@@ -8462,7 +8511,7 @@ my %isoSetting2010 = (
|
|
8462
8511
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8463
8512
|
# 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
|
8464
8513
|
# 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
|
8465
|
-
# 3 for ILCA-99M2, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8514
|
+
# 3 for ILCA-99M2, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2
|
8466
8515
|
# 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
|
8467
8516
|
# 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
|
8468
8517
|
0x0005 => {
|
@@ -8610,7 +8659,7 @@ my %isoSetting2010 = (
|
|
8610
8659
|
# ILCE-6000 v1.20-v3.20
|
8611
8660
|
# 1.60: ILCE-6300/6500, ILCE-7RM2 v3.05-v4.00
|
8612
8661
|
# 1.70: ILCE-7M3/7RM3, ILCE-9 v1.00-v4.10
|
8613
|
-
# 1.80: ILCE-6100/6400/6600/7RM4, ILCE-9 v5.
|
8662
|
+
# 1.80: ILCE-6100/6400/6600/7RM4/9M2, ILCE-9 v5.00-v6.00
|
8614
8663
|
},
|
8615
8664
|
0x000d => {
|
8616
8665
|
Name => 'LensE-mountVersion',
|
@@ -8681,7 +8730,7 @@ my %isoSetting2010 = (
|
|
8681
8730
|
# 1 1 3 0 for ILCA-68/77M2/99M2
|
8682
8731
|
# 0 0 0 0 for NEX and ILCE-3000/3500, also seen for SLT/ILCA with non-AF lens
|
8683
8732
|
# 1 0 0 0 for ILCE-5000/5100/6000/7/7M2/7R/7S/QX1
|
8684
|
-
# 6 0 0 0 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8733
|
+
# 6 0 0 0 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2
|
8685
8734
|
# 0 2 0 0 for NEX/ILCE with LA-EA2/EA4 Phase-AF adapter
|
8686
8735
|
# 2 0 0 0 seen for a few NEX-5N images
|
8687
8736
|
# 2 2 0 0 seen for a few NEX-5N/7 images with LA-EA2 adapter
|
@@ -8975,11 +9024,11 @@ my %isoSetting2010 = (
|
|
8975
9024
|
|
8976
9025
|
# 0x1a06 onwards - first seen for ILCE-7RM2: appears to be some kind of metering image
|
8977
9026
|
# but not valid anymore for ILCE-6400, ILCE-9 v5.0x
|
8978
|
-
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/' },
|
8979
|
-
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/' },
|
9027
|
+
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
9028
|
+
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
8980
9029
|
0x1a08 => { # (2640 bytes: 1 set of 44x30 int16u values)
|
8981
9030
|
Name => 'TiffMeteringImage',
|
8982
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
9031
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
8983
9032
|
Format => 'undef[2640]',
|
8984
9033
|
Notes => q{
|
8985
9034
|
13(?)-bit intensity data from 1320 (1200) metering segments, extracted as a
|
@@ -912,6 +912,7 @@ my %tagLookup = (
|
|
912
912
|
'approximatefnumber' => { 298 => 0x313, 305 => 0x3406 },
|
913
913
|
'approximatefocusdistance' => { 453 => 'ApproximateFocusDistance' },
|
914
914
|
'appversion' => { 466 => 'AppVersion' },
|
915
|
+
'aps-csizecapture' => { 419 => 0x114, 420 => [0x114,0x1eb,0x1ee,0x21a,0x21c] },
|
915
916
|
'aquahsl' => { 99 => 0x20914 },
|
916
917
|
'armidentifier' => { 128 => 0x78 },
|
917
918
|
'armversion' => { 128 => 0x7a },
|
@@ -2017,6 +2018,7 @@ my %tagLookup = (
|
|
2017
2018
|
'directoryindex' => { 7 => 0x137, 9 => 0x2dc, 11 => 0x17e, 13 => 0x238, 14 => 0x13f, 15 => 0x133, 16 => 0x1df, 17 => 0x1a7, 18 => 0x1f0, 19 => 0xcc, 20 => 0x1c7, 21 => 0x298, 22 => 0x1e7, 23 => 0x1e5, 24 => [0x27c,0x280], 25 => 0x2b6, 26 => 0x2bf, 28 => 0x1f7, 29 => 0x4ba },
|
2018
2019
|
'directoryindex2' => { 21 => 0x29c },
|
2019
2020
|
'directorynumber' => { 199 => 0x3, 366 => 0x12 },
|
2021
|
+
'disableautocreation' => { 439 => 'DisableAutoCreation' },
|
2020
2022
|
'disclaimer' => { 293 => 'Disclaimer' },
|
2021
2023
|
'discnumber' => { 482 => 'discNumber' },
|
2022
2024
|
'dishtype' => { 474 => 'dishType' },
|
@@ -2853,6 +2855,7 @@ my %tagLookup = (
|
|
2853
2855
|
'hdrinfoversion' => { 206 => 0x0 },
|
2854
2856
|
'hdrlevel' => { 206 => 0x5, 390 => 0x2e, 406 => 0x17 },
|
2855
2857
|
'hdrlevel2' => { 206 => 0x7 },
|
2858
|
+
'hdrpmakernote' => { 439 => 'hdrp_makernote' },
|
2856
2859
|
'hdrsetting' => { 390 => 0x2d, 406 => 0x16, 409 => 0x1148, 410 => 0x1148, 411 => 0x1124, 412 => 0x11a0, 413 => 0x117c, 414 => 0x1034, 415 => 0x22c, 416 => 0x22c, 417 => 0x21f },
|
2857
2860
|
'hdrshot' => { 303 => 0x76 },
|
2858
2861
|
'hdrsmoothing' => { 206 => 0x6 },
|
@@ -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 23172 tags, with 15146 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
|
@@ -2671,6 +2671,8 @@ These tags belong to the ExifTool XMP-GCamera family 1 group.
|
|
2671
2671
|
-------- --------
|
2672
2672
|
BurstID string
|
2673
2673
|
BurstPrimary string
|
2674
|
+
DisableAutoCreation string+
|
2675
|
+
HDRPMakerNote string
|
2674
2676
|
PortraitNote string
|
2675
2677
|
PortraitRequest string
|
2676
2678
|
PortraitVersion string
|
@@ -3257,10 +3259,10 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
|
|
3257
3259
|
|
3258
3260
|
=head3 XMP ImageRegion Struct
|
3259
3261
|
|
3260
|
-
|
3261
|
-
|
3262
|
-
|
3263
|
-
fields.
|
3262
|
+
This structure is new in the IPTC Extension version 1.5 specification. As
|
3263
|
+
well as the fields defined below, this structure may contain any top-level
|
3264
|
+
XMP tags, but since they aren't pre-defined the only way to add these tags
|
3265
|
+
is to write ImageRegion as a structure with these tags as new fields.
|
3264
3266
|
|
3265
3267
|
Field Name Writable
|
3266
3268
|
---------- --------
|
@@ -4389,7 +4391,7 @@ These tags belong to the ExifTool XMP-xmpMM family 1 group.
|
|
4389
4391
|
ManifestReferenceVersionID string_+
|
4390
4392
|
OriginalDocumentID string
|
4391
4393
|
Pantry PantryItem Struct+
|
4392
|
-
PantryInstanceID string_
|
4394
|
+
PantryInstanceID string_
|
4393
4395
|
PreservedFileName string
|
4394
4396
|
RenditionClass string
|
4395
4397
|
RenditionOf ResourceRef Struct
|
@@ -17228,9 +17230,9 @@ not valid for panorama images.
|
|
17228
17230
|
|
17229
17231
|
=head3 Sony Tag2010e Tags
|
17230
17232
|
|
17231
|
-
Valid for SLT-A58/A99, ILCE-3000/3500, NEX-3N/5R/5T/6/VG30E/VG900,
|
17232
|
-
DSC-RX1/RX1R. Also valid for DSC-HX300/HX50V/TX30/WX60/WX200/
|
17233
|
-
for panorama images.
|
17233
|
+
Valid for SLT-A58/A99, ILCE-3000/3500, NEX-3N/5R/5T/6/VG30E/VG900,
|
17234
|
+
DSC-RX100, DSC-RX1/RX1R. Also valid for DSC-HX300/HX50V/TX30/WX60/WX200/
|
17235
|
+
WX300, but not for panorama images.
|
17234
17236
|
|
17235
17237
|
Index1 Tag Name Writable
|
17236
17238
|
------ -------- --------
|
@@ -17380,7 +17382,8 @@ ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.
|
|
17380
17382
|
|
17381
17383
|
=head3 Sony Tag2010i Tags
|
17382
17384
|
|
17383
|
-
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/
|
17385
|
+
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M6/
|
17386
|
+
RX100M5A/RX100M7/HX99.
|
17384
17387
|
|
17385
17388
|
Index1 Tag Name Writable
|
17386
17389
|
------ -------- --------
|
@@ -17533,6 +17536,7 @@ substitution cipher, but the deciphered values are listed below.
|
|
17533
17536
|
263 LensType2 int16u
|
17534
17537
|
265 LensType int16u
|
17535
17538
|
267 DistortionCorrParamsPresent int8u
|
17539
|
+
276 APS-CSizeCapture int8u
|
17536
17540
|
277 LensSpecFeatures undef[2]
|
17537
17541
|
278 LensSpecFeatures undef[2]
|
17538
17542
|
416 ShutterCount3 int32u
|
@@ -17541,8 +17545,8 @@ substitution cipher, but the deciphered values are listed below.
|
|
17541
17545
|
|
17542
17546
|
=head3 Sony Tag9050b Tags
|
17543
17547
|
|
17544
|
-
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/
|
17545
|
-
ILCA-99M2.
|
17548
|
+
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/
|
17549
|
+
7SM2/9/9M2, ILCA-99M2.
|
17546
17550
|
|
17547
17551
|
Index1 Tag Name Writable
|
17548
17552
|
------ -------- --------
|
@@ -17567,13 +17571,18 @@ ILCA-99M2.
|
|
17567
17571
|
263 LensType2 int16u
|
17568
17572
|
265 LensType int16u
|
17569
17573
|
267 DistortionCorrParamsPresent int8u
|
17574
|
+
276 APS-CSizeCapture int8u
|
17570
17575
|
278 LensSpecFeatures undef[2]
|
17571
17576
|
415 ShutterCount3 int32u
|
17572
17577
|
459 ShutterCount3 int32u
|
17573
17578
|
461 ShutterCount3 int32u
|
17579
|
+
491 APS-CSizeCapture int8u
|
17574
17580
|
493 LensSpecFeatures undef[2]
|
17581
|
+
494 APS-CSizeCapture int8u
|
17575
17582
|
496 LensSpecFeatures undef[2]
|
17583
|
+
538 APS-CSizeCapture int8u
|
17576
17584
|
540 LensSpecFeatures undef[2]
|
17585
|
+
APS-CSizeCapture int8u
|
17577
17586
|
542 LensSpecFeatures undef[2]
|
17578
17587
|
|
17579
17588
|
=head3 Sony Tag9400a Tags
|
@@ -17614,9 +17623,9 @@ DSC-HX50V, DSC-QX10/QX100.
|
|
17614
17623
|
=head3 Sony Tag9400c Tags
|
17615
17624
|
|
17616
17625
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
|
17617
|
-
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/
|
17618
|
-
|
17619
|
-
|
17626
|
+
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/
|
17627
|
+
WX350/WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2/5000/5100/6000/
|
17628
|
+
6100/6300/6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
17620
17629
|
|
17621
17630
|
Index1 Tag Name Writable
|
17622
17631
|
------ -------- --------
|
@@ -17715,8 +17724,8 @@ Valid for SLT, NEX, ILCE-3000/3500 and several DSC models.
|
|
17715
17724
|
|
17716
17725
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX10/RX10M2/
|
17717
17726
|
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/WX350,
|
17718
|
-
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6100/6300/
|
17719
|
-
6500/6600/QX1, ILCA-68/77M2/99M2.
|
17727
|
+
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/9M2/5000/5100/6000/6100/6300/
|
17728
|
+
6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
17720
17729
|
|
17721
17730
|
Index1 Tag Name Writable
|
17722
17731
|
------ -------- --------
|
@@ -19349,12 +19358,12 @@ L<http://www.scalado.com/>.)
|
|
19349
19358
|
|
19350
19359
|
=head3 GoPro GPMF Tags
|
19351
19360
|
|
19352
|
-
Tags extracted from the GPMF box of GoPro MP4 videos, the APP6 "GoPro"
|
19353
|
-
of JPEG files, and from the "gpmd" timed metadata if the
|
19354
|
-
is enabled. Many more tags exist, but are
|
19355
|
-
with the Unknown (-u) option. Please
|
19356
|
-
these unknown tags. See
|
19357
|
-
about this format.
|
19361
|
+
Tags extracted from the GPMF box of GoPro MP4 videos, the APP6 "GoPro"
|
19362
|
+
segment of JPEG files, and from the "gpmd" timed metadata if the
|
19363
|
+
ExtractEmbedded (-ee) option is enabled. Many more tags exist, but are
|
19364
|
+
currently unknown and extracted only with the Unknown (-u) option. Please
|
19365
|
+
let me know if you discover the meaning of any of these unknown tags. See
|
19366
|
+
L<https://github.com/gopro/gpmf-parser> for details about this format.
|
19358
19367
|
|
19359
19368
|
Tag ID Tag Name Writable
|
19360
19369
|
------ -------- --------
|
@@ -19474,7 +19483,7 @@ Battery status information found in GoPro Karma videos.
|
|
19474
19483
|
=head3 GoPro fdsc Tags
|
19475
19484
|
|
19476
19485
|
Tags extracted from the MP4 "fdsc" timed metadata when the ExtractEmbedded
|
19477
|
-
option is used.
|
19486
|
+
(-ee) option is used.
|
19478
19487
|
|
19479
19488
|
Index1 Tag Name Writable
|
19480
19489
|
------ -------- --------
|
@@ -22653,9 +22662,9 @@ Also according to the PNG specification, there is no restriction on the
|
|
22653
22662
|
location of text-type chunks (tEXt, zTXt and iTXt). However, certain
|
22654
22663
|
utilities (including some Apple and Adobe utilities) won't read the XMP iTXt
|
22655
22664
|
chunk if it comes after the IDAT chunk, and at least one utility won't read
|
22656
|
-
other text chunks
|
22657
|
-
create new text chunks (including XMP) before IDAT, and
|
22658
|
-
text chunks
|
22665
|
+
other text chunks here. For this reason, when writing, ExifTool 11.63 and
|
22666
|
+
later create new text chunks (including XMP) before IDAT, and move existing
|
22667
|
+
text chunks to before IDAT.
|
22659
22668
|
|
22660
22669
|
Tag ID Tag Name Writable
|
22661
22670
|
------ -------- --------
|
@@ -33230,8 +33239,11 @@ name. See L<http://tools.ietf.org/html/rfc5545> for the official iCalendar
|
|
33230
33239
|
|
33231
33240
|
Although basic text files contain no metadata, the following tags are
|
33232
33241
|
determined from a simple analysis of the text data. LineCount and WordCount
|
33233
|
-
are generated only for 8-bit
|
33234
|
-
used
|
33242
|
+
are generated only for 8-bit encodings, but the FastScan (-fast) option may
|
33243
|
+
be used to limit processing to the first 64 kB, in which case these two tags
|
33244
|
+
are not produced. To avoid long processing delays, ExifTool will issue a
|
33245
|
+
minor warning and process only the first 64 kB of any file larger than 20 MB
|
33246
|
+
unless the IgnoreMinorErrors (-m) option is used.
|
33235
33247
|
|
33236
33248
|
Tag Name Writable
|
33237
33249
|
-------- --------
|
@@ -15,7 +15,7 @@ use vars qw($VERSION);
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
16
16
|
use Image::ExifTool::XMP;
|
17
17
|
|
18
|
-
$VERSION = '1.
|
18
|
+
$VERSION = '1.01';
|
19
19
|
|
20
20
|
# Text tags
|
21
21
|
%Image::ExifTool::Text::Main = (
|
@@ -24,8 +24,11 @@ $VERSION = '1.00';
|
|
24
24
|
NOTES => q{
|
25
25
|
Although basic text files contain no metadata, the following tags are
|
26
26
|
determined from a simple analysis of the text data. LineCount and WordCount
|
27
|
-
are generated only for 8-bit
|
28
|
-
used
|
27
|
+
are generated only for 8-bit encodings, but the L<FastScan|../ExifTool.html#FastScan> (-fast) option may
|
28
|
+
be used to limit processing to the first 64 kB, in which case these two tags
|
29
|
+
are not produced. To avoid long processing delays, ExifTool will issue a
|
30
|
+
minor warning and process only the first 64 kB of any file larger than 20 MB
|
31
|
+
unless the L<IgnoreMinorErrors|../ExifTool.html#IgnoreMinorErrors> (-m) option is used.
|
29
32
|
},
|
30
33
|
MIMEEncoding => { Groups => { 2 => 'Other' } },
|
31
34
|
Newlines => {
|
@@ -49,13 +52,22 @@ sub ProcessTXT($$)
|
|
49
52
|
{
|
50
53
|
my ($et, $dirInfo) = @_;
|
51
54
|
my $dataPt = $$dirInfo{TestBuff};
|
55
|
+
my $raf = $$dirInfo{RAF};
|
52
56
|
my $fast = $et->Options('FastScan') || 0;
|
53
|
-
my ($buff, $enc, $isBOM);
|
57
|
+
my ($buff, $enc, $isBOM, $isUTF8);
|
54
58
|
my $nl = '';
|
55
59
|
|
56
60
|
return 0 unless length $$dataPt; # can't call it a text file if it has no text
|
57
61
|
|
58
|
-
|
62
|
+
# read more from the file if necessary
|
63
|
+
if ($fast < 3 and length($$dataPt) == $Image::ExifTool::testLen) {
|
64
|
+
$raf->Read($buff, 65536) or return 0;
|
65
|
+
$dataPt = \$buff;
|
66
|
+
}
|
67
|
+
#
|
68
|
+
# make our best guess at the character encoding (EBCDIC is not supported)
|
69
|
+
#
|
70
|
+
if ($$dataPt =~ /([\0-\x06\x0e-\x1a\x1c-\x1f\x7f])/) {
|
59
71
|
# file contains weird control characters, could be multi-byte Unicode
|
60
72
|
if ($$dataPt =~ /^(\xff\xfe\0\0|\0\0\xfe\xff)/) {
|
61
73
|
if ($1 eq "\xff\xfe\0\0") {
|
@@ -79,9 +91,10 @@ sub ProcessTXT($$)
|
|
79
91
|
$nl =~ tr/\0//d; # remove nulls from newline sequence
|
80
92
|
$isBOM = 1; # (we don't recognize UTF-16/UTF-32 without one)
|
81
93
|
} else {
|
82
|
-
|
94
|
+
$isUTF8 = Image::ExifTool::XMP::IsUTF8($dataPt, 1);
|
95
|
+
if ($isUTF8 == 0) {
|
83
96
|
$enc = 'us-ascii';
|
84
|
-
} elsif (
|
97
|
+
} elsif ($isUTF8 > 0) {
|
85
98
|
$enc = 'utf-8';
|
86
99
|
$isBOM = ($$dataPt =~ /^\xef\xbb\xbf/ ? 1 : 0);
|
87
100
|
} elsif ($$dataPt !~ /[\x80-\x9f]/) {
|
@@ -93,28 +106,51 @@ sub ProcessTXT($$)
|
|
93
106
|
}
|
94
107
|
|
95
108
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Text::Main');
|
109
|
+
|
96
110
|
$et->SetFileType();
|
97
111
|
$et->HandleTag($tagTablePtr, MIMEEncoding => $enc);
|
98
|
-
|
112
|
+
|
113
|
+
return 1 if $fast == 3 or not $raf->Seek(0,0);
|
114
|
+
|
99
115
|
$et->HandleTag($tagTablePtr, ByteOrderMark => $isBOM) if defined $isBOM;
|
100
116
|
$et->HandleTag($tagTablePtr, Newlines => $nl);
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
117
|
+
|
118
|
+
return 1 if $fast or not defined $isUTF8;
|
119
|
+
return 1 if $$et{VALUE}{FileSize} and $$et{VALUE}{FileSize} > 20000000 and
|
120
|
+
$et->Warn('Not counting lines/words in text file larger than 20 MB', 2);
|
121
|
+
#
|
122
|
+
# count lines/words and check encoding of the rest of the file
|
123
|
+
#
|
124
|
+
my ($lines, $words) = (0, 0);
|
125
|
+
my $oldNL = $/;
|
126
|
+
$/ = $nl if $nl;
|
127
|
+
while ($raf->ReadLine($buff)) {
|
128
|
+
++$lines;
|
129
|
+
++$words while $buff =~ /\S+/g;
|
130
|
+
if (not $nl and $buff =~ /(\r\n|\r|\n)$/) {
|
131
|
+
# (the first line must have been longer than 1024 characters)
|
132
|
+
$$et{VALUE}{Newlines} = $nl = $1;
|
133
|
+
}
|
134
|
+
next if $raf->Tell() < 65536;
|
135
|
+
# continue to check encoding after the first 64 kB
|
136
|
+
if ($isUTF8 >= 0) { # (if ascii or utf8)
|
137
|
+
$isUTF8 = Image::ExifTool::XMP::IsUTF8(\$buff);
|
138
|
+
if ($isUTF8 > 0) {
|
139
|
+
$enc = 'utf-8';
|
140
|
+
} elsif ($isUTF8 < 0) {
|
141
|
+
$enc = $buff =~ /[\x80-\x9f]/ ? 'unknown-8bit' : 'iso-8859-1';
|
110
142
|
}
|
111
|
-
|
112
|
-
|
143
|
+
} elsif ($enc eq 'iso-8859-1' and $buff =~ /[\x80-\x9f]/) {
|
144
|
+
$enc = 'unknown-8bit';
|
113
145
|
}
|
114
|
-
$/ = $oldNL;
|
115
|
-
$et->HandleTag($tagTablePtr, LineCount => $lines);
|
116
|
-
$et->HandleTag($tagTablePtr, WordCount => $words);
|
117
146
|
}
|
147
|
+
if ($$et{VALUE}{MIMEEncoding} ne $enc) {
|
148
|
+
$$et{VALUE}{MIMEEncoding} = $enc;
|
149
|
+
$et->VPrint(0," MIMEEncoding [override] = $enc\n");
|
150
|
+
}
|
151
|
+
$/ = $oldNL;
|
152
|
+
$et->HandleTag($tagTablePtr, LineCount => $lines);
|
153
|
+
$et->HandleTag($tagTablePtr, WordCount => $words);
|
118
154
|
return 1;
|
119
155
|
}
|
120
156
|
|
@@ -2927,14 +2927,16 @@ Conv: for (;;) {
|
|
2927
2927
|
}
|
2928
2928
|
|
2929
2929
|
#------------------------------------------------------------------------------
|
2930
|
-
#
|
2930
|
+
# Convert tag names to values or variables in a string
|
2931
|
+
# (eg. '${EXIF:ISO}x $$' --> '100x $' without hash ref, or "$info{'EXIF:ISO'}x $" with)
|
2931
2932
|
# Inputs: 0) ExifTool object ref, 1) reference to list of found tags
|
2932
2933
|
# 2) string with embedded tag names, 3) Options:
|
2933
2934
|
# undef - set missing tags to ''
|
2934
2935
|
# 'Error' - issue minor error on missing tag (and return undef)
|
2935
2936
|
# 'Warn' - issue minor warning on missing tag (and return undef)
|
2936
2937
|
# 'Silent' - just return undef on missing tag (no errors/warnings)
|
2937
|
-
# Hash ref -
|
2938
|
+
# Hash ref - defined to interpolate as variables in string instead of values
|
2939
|
+
# --> receives tag/value pairs for interpolation of the variables
|
2938
2940
|
# 4) document group name if extracting from a specific document
|
2939
2941
|
# 5) hash ref to cache tag keys for subsequent calls in document loop
|
2940
2942
|
# Returns: string with embedded tag values (or '$info{TAGNAME}' entries with Hash ref option)
|
@@ -49,7 +49,7 @@ use Image::ExifTool::Exif;
|
|
49
49
|
use Image::ExifTool::GPS;
|
50
50
|
require Exporter;
|
51
51
|
|
52
|
-
$VERSION = '3.
|
52
|
+
$VERSION = '3.29';
|
53
53
|
@ISA = qw(Exporter);
|
54
54
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
55
55
|
|
@@ -951,7 +951,7 @@ my %sPantryItem = (
|
|
951
951
|
This structure must have an InstanceID field, but may also contain any other
|
952
952
|
XMP properties.
|
953
953
|
},
|
954
|
-
InstanceID => { Namespace => 'xmpMM' },
|
954
|
+
InstanceID => { Namespace => 'xmpMM', List => 0 },
|
955
955
|
);
|
956
956
|
|
957
957
|
# XMP Media Management namespace properties (xmpMM, xapMM)
|
@@ -458,10 +458,10 @@ my %sImageRegion = ( # new in 1.5
|
|
458
458
|
STRUCT_NAME => 'ImageRegion',
|
459
459
|
NAMESPACE => undef, # undefined to allow variable-namespace extensions
|
460
460
|
NOTES => q{
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
fields.
|
461
|
+
This structure is new in the IPTC Extension version 1.5 specification. As
|
462
|
+
well as the fields defined below, this structure may contain any top-level
|
463
|
+
XMP tags, but since they aren't pre-defined the only way to add these tags
|
464
|
+
is to write ImageRegion as a structure with these tags as new fields.
|
465
465
|
},
|
466
466
|
RegionBoundary => { Namespace => 'Iptc4xmpExt', FlatName => 'Boundary', Struct => \%sRegionBoundary },
|
467
467
|
rId => { Namespace => 'Iptc4xmpExt', FlatName => 'ID' },
|
@@ -1770,6 +1770,14 @@ my %sSubVersion = (
|
|
1770
1770
|
PortraitVersion => { },
|
1771
1771
|
SpecialTypeID => { List => 'Bag' },
|
1772
1772
|
PortraitNote => { },
|
1773
|
+
DisableAutoCreation => { List => 'Bag' },
|
1774
|
+
hdrp_makernote => {
|
1775
|
+
Name => 'HDRPMakerNote',
|
1776
|
+
# decoded data starts with the following bytes, but nothing yet is known about its contents:
|
1777
|
+
# 48 44 52 50 02 ef 64 35 6d 5e 70 1e 2c ea e3 4c [HDRP..d5m^p.,..L]
|
1778
|
+
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1779
|
+
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1780
|
+
},
|
1773
1781
|
);
|
1774
1782
|
|
1775
1783
|
# Google creations namespace (ref PH)
|
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: 11.
|
4
|
+
version: 11.76.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: 2019-11-
|
12
|
+
date: 2019-11-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|