exiftool_vendored 11.75.1 → 11.76.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.
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
|