exiftool_vendored 12.25.0 → 12.35.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +174 -7
- data/bin/MANIFEST +11 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +44 -43
- data/bin/arg_files/xmp2exif.args +2 -1
- data/bin/config_files/convert_regions.config +25 -14
- data/bin/config_files/example.config +1 -1
- data/bin/exiftool +118 -92
- data/bin/fmt_files/gpx.fmt +1 -1
- data/bin/fmt_files/gpx_wpt.fmt +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +16 -3
- data/bin/lib/Image/ExifTool/CBOR.pm +331 -0
- data/bin/lib/Image/ExifTool/Canon.pm +52 -20
- data/bin/lib/Image/ExifTool/Charset.pm +2 -0
- data/bin/lib/Image/ExifTool/DPX.pm +13 -2
- data/bin/lib/Image/ExifTool/Exif.pm +107 -8
- data/bin/lib/Image/ExifTool/FLIR.pm +33 -8
- data/bin/lib/Image/ExifTool/FlashPix.pm +35 -10
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +13 -2
- data/bin/lib/Image/ExifTool/GoPro.pm +16 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +96 -4
- data/bin/lib/Image/ExifTool/ID3.pm +15 -3
- data/bin/lib/Image/ExifTool/JPEG.pm +68 -2
- data/bin/lib/Image/ExifTool/JSON.pm +7 -3
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +164 -36
- data/bin/lib/Image/ExifTool/LIF.pm +153 -0
- data/bin/lib/Image/ExifTool/Lang/nl.pm +60 -59
- data/bin/lib/Image/ExifTool/M2TS.pm +103 -7
- data/bin/lib/Image/ExifTool/MIE.pm +2 -1
- data/bin/lib/Image/ExifTool/MRC.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +50 -6
- data/bin/lib/Image/ExifTool/NikonSettings.pm +10 -2
- data/bin/lib/Image/ExifTool/Olympus.pm +9 -2
- data/bin/lib/Image/ExifTool/Other.pm +93 -0
- data/bin/lib/Image/ExifTool/PDF.pm +11 -12
- data/bin/lib/Image/ExifTool/PNG.pm +7 -6
- data/bin/lib/Image/ExifTool/Panasonic.pm +14 -2
- data/bin/lib/Image/ExifTool/Pentax.pm +28 -5
- data/bin/lib/Image/ExifTool/Photoshop.pm +6 -0
- data/bin/lib/Image/ExifTool/QuickTime.pm +123 -25
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +203 -121
- data/bin/lib/Image/ExifTool/README +9 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +7 -2
- data/bin/lib/Image/ExifTool/Samsung.pm +47 -10
- data/bin/lib/Image/ExifTool/Sony.pm +113 -42
- data/bin/lib/Image/ExifTool/TagLookup.pm +4599 -4451
- data/bin/lib/Image/ExifTool/TagNames.pod +276 -41
- data/bin/lib/Image/ExifTool/Torrent.pm +18 -11
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -0
- data/bin/lib/Image/ExifTool/WritePNG.pl +2 -0
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -4
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +47 -2
- data/bin/lib/Image/ExifTool/XMP.pm +32 -12
- data/bin/lib/Image/ExifTool/XMP2.pl +5 -2
- data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +121 -2
- data/bin/lib/Image/ExifTool.pm +153 -52
- data/bin/lib/Image/ExifTool.pod +70 -60
- data/bin/perl-Image-ExifTool.spec +43 -42
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -3
@@ -30,7 +30,7 @@ use strict;
|
|
30
30
|
use vars qw($VERSION);
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
|
33
|
-
$VERSION = '1.
|
33
|
+
$VERSION = '1.59';
|
34
34
|
|
35
35
|
sub ConvertTimecode($);
|
36
36
|
sub ProcessSGLT($$$);
|
@@ -527,6 +527,10 @@ my %code2charset = (
|
|
527
527
|
Name => 'Text',
|
528
528
|
Notes => 'streamed text, extracted when the ExtractEmbedded option is used',
|
529
529
|
},
|
530
|
+
'id3 ' => {
|
531
|
+
Name => 'ID3',
|
532
|
+
SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' },
|
533
|
+
},
|
530
534
|
#
|
531
535
|
# WebP-specific tags
|
532
536
|
#
|
@@ -818,6 +822,7 @@ my %code2charset = (
|
|
818
822
|
ILGT => 'Lightness',
|
819
823
|
IMED => 'Medium',
|
820
824
|
INAM => 'Title',
|
825
|
+
ITRK => 'TrackNumber',
|
821
826
|
IPLT => 'NumColors',
|
822
827
|
IPRD => 'Product',
|
823
828
|
ISBJ => 'Subject',
|
@@ -1080,7 +1085,7 @@ my %code2charset = (
|
|
1080
1085
|
Name => 'TextFormat',
|
1081
1086
|
Condition => '$$self{RIFFStreamType} eq "txts"',
|
1082
1087
|
Hidden => 1,
|
1083
|
-
RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text"); undef',
|
1088
|
+
RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text",3); undef',
|
1084
1089
|
},
|
1085
1090
|
],
|
1086
1091
|
);
|
@@ -22,12 +22,13 @@ use vars qw($VERSION %samsungLensTypes);
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
23
23
|
use Image::ExifTool::Exif;
|
24
24
|
|
25
|
-
$VERSION = '1.
|
25
|
+
$VERSION = '1.50';
|
26
26
|
|
27
27
|
sub WriteSTMN($$$);
|
28
28
|
sub ProcessINFO($$$);
|
29
29
|
sub ProcessSamsungMeta($$$);
|
30
30
|
sub ProcessSamsungIFD($$$);
|
31
|
+
sub ProcessSamsung($$$);
|
31
32
|
|
32
33
|
# Samsung LensType lookup
|
33
34
|
%samsungLensTypes = (
|
@@ -940,14 +941,31 @@ my %formatMinMax = (
|
|
940
941
|
%Image::ExifTool::Samsung::Trailer = (
|
941
942
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Other' },
|
942
943
|
VARS => { NO_ID => 1, HEX_ID => 0 },
|
944
|
+
PROCESS_PROC => \&ProcessSamsung,
|
943
945
|
PRIORITY => 0, # (first one takes priority so DepthMapWidth/Height match first DepthMapData)
|
944
946
|
NOTES => q{
|
945
947
|
Tags extracted from the trailer of JPEG images written when using certain
|
946
948
|
features (such as "Sound & Shot" or "Shot & More") from Samsung models such
|
947
|
-
as the Galaxy S4 and Tab S
|
948
|
-
|
949
|
-
|
950
|
-
'0x0001' => {
|
949
|
+
as the Galaxy S4 and Tab S, and from the 'sefd' atom in HEIC images from the
|
950
|
+
Samsung S10+.
|
951
|
+
},
|
952
|
+
'0x0001-name' => {
|
953
|
+
Name => 'EmbeddedImageName', # ("DualShot_1","DualShot_2")
|
954
|
+
RawConv => '$$self{EmbeddedImageName} = $val',
|
955
|
+
},
|
956
|
+
'0x0001' => [
|
957
|
+
{
|
958
|
+
Name => 'EmbeddedImage',
|
959
|
+
Condition => '$$self{EmbeddedImageName} eq "DualShot_1"',
|
960
|
+
Groups => { 2 => 'Preview' },
|
961
|
+
Binary => 1,
|
962
|
+
},
|
963
|
+
{
|
964
|
+
Name => 'EmbeddedImage2',
|
965
|
+
Groups => { 2 => 'Preview' },
|
966
|
+
Binary => 1,
|
967
|
+
},
|
968
|
+
],
|
951
969
|
'0x0100-name' => 'EmbeddedAudioFileName', # ("SoundShot_000")
|
952
970
|
'0x0100' => { Name => 'EmbeddedAudioFile', Groups => { 2 => 'Audio' }, Binary => 1 },
|
953
971
|
'0x0201-name' => 'SurroundShotVideoName', # ("Interactive_Panorama_000")
|
@@ -977,10 +995,24 @@ my %formatMinMax = (
|
|
977
995
|
'0x0a30-name' => 'EmbeddedVideoType', # ("MotionPhoto_Data")
|
978
996
|
'0x0a30' => { Name => 'EmbeddedVideoFile', Groups => { 2 => 'Video' }, Binary => 1 }, #forum7161
|
979
997
|
# 0x0aa1-name - seen 'MCC_Data'
|
980
|
-
# 0x0aa1 - seen '
|
998
|
+
# 0x0aa1 - seen '204','222','234','302','429'
|
999
|
+
'0x0aa1' => 'MCCData', # (unknown meaning)
|
981
1000
|
# 0x0ab0-name - seen 'DualShot_Meta_Info'
|
982
|
-
'0x0ab1-name' =>
|
983
|
-
|
1001
|
+
'0x0ab1-name' => {
|
1002
|
+
Name => 'DepthMapName',
|
1003
|
+
# seen 'DualShot_DepthMap_1' (SM-N950U), DualShot_DepthMap_5 (SM-G998W)
|
1004
|
+
RawConv => '$$self{DepthMapName} = $val',
|
1005
|
+
},
|
1006
|
+
'0x0ab1' => [
|
1007
|
+
{
|
1008
|
+
Name => 'DepthMapData',
|
1009
|
+
Condition => '$$self{DepthMapName} eq "DualShot_DepthMap_1"',
|
1010
|
+
Binary => 1,
|
1011
|
+
},{
|
1012
|
+
Name => 'DepthMapData2',
|
1013
|
+
Binary => 1,
|
1014
|
+
},
|
1015
|
+
],
|
984
1016
|
# 0x0ab3-name - seen 'DualShot_Extra_Info' (SM-N950U)
|
985
1017
|
'0x0ab3' => { # (SM-N950U)
|
986
1018
|
Name => 'DualShotExtra',
|
@@ -1015,7 +1047,8 @@ my %formatMinMax = (
|
|
1015
1047
|
Hook => q{
|
1016
1048
|
if ($size >= 96) {
|
1017
1049
|
my $tmp = substr($$dataPt, $pos, 64);
|
1018
|
-
|
1050
|
+
# (have seen 0x01,0x03 and 0x07)
|
1051
|
+
if ($tmp =~ /[\x01-\x09]\0\xff\xff/g and not pos($tmp) % 4) {
|
1019
1052
|
$$self{DepthMapTagPos} = pos($tmp);
|
1020
1053
|
$varSize += $$self{DepthMapTagPos} - 32;
|
1021
1054
|
}
|
@@ -1274,6 +1307,10 @@ sub ProcessSamsung($$$)
|
|
1274
1307
|
my $unknown = $et->Options('Unknown');
|
1275
1308
|
my ($buff, $buf2, $index, $offsetPos, $audioNOff, $audioSize);
|
1276
1309
|
|
1310
|
+
unless ($raf) {
|
1311
|
+
$raf = new File::RandomAccess($$dirInfo{DataPt});
|
1312
|
+
$et->VerboseDir('SamsungTrailer');
|
1313
|
+
}
|
1277
1314
|
return 0 unless $raf->Seek(-6-$offset, 2) and $raf->Read($buff, 6) == 6 and
|
1278
1315
|
($buff eq 'QDIOBS' or $buff eq "\0\0SEFT");
|
1279
1316
|
my $endPos = $raf->Tell();
|
@@ -1328,7 +1365,7 @@ SamBlock:
|
|
1328
1365
|
# save trailer position and length
|
1329
1366
|
my $dataPos = $$dirInfo{DataPos} = $dirPos - $firstBlock;
|
1330
1367
|
my $dirLen = $$dirInfo{DirLen} = $endPos - $dataPos;
|
1331
|
-
if (($verbose or $$et{HTML_DUMP}) and not $outfile) {
|
1368
|
+
if (($verbose or $$et{HTML_DUMP}) and not $outfile and $$dirInfo{RAF}) {
|
1332
1369
|
$et->DumpTrailer($dirInfo);
|
1333
1370
|
return 1 if $$et{HTML_DUMP};
|
1334
1371
|
}
|
@@ -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.48';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -154,6 +154,7 @@ sub PrintInvLensSpec($;$$);
|
|
154
154
|
32866 => 'Sony FE 24mm F2.8 G', #IB
|
155
155
|
32867 => 'Sony FE 40mm F2.5 G', #IB
|
156
156
|
32868 => 'Sony FE 50mm F2.5 G', #IB
|
157
|
+
32874 => 'Sony FE 70-200mm F2.8 GM OSS II', #IB
|
157
158
|
|
158
159
|
# (comment this out so LensID will report the LensModel, which is more useful)
|
159
160
|
# 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
|
@@ -194,6 +195,12 @@ sub PrintInvLensSpec($;$$);
|
|
194
195
|
49463 => 'Tamron 28-200mm F2.8-5.6 Di III RXD', #JR (Model A071)
|
195
196
|
49464 => 'Tamron 70-300mm F4.5-6.3 Di III RXD', #JR (Model A047)
|
196
197
|
49465 => 'Tamron 17-70mm F2.8 Di III-A VC RXD', #JR (Model B070)
|
198
|
+
49466 => 'Tamron 150-500mm F5-6.7 Di III VC VXD', #JR (Model A057)
|
199
|
+
49467 => 'Tamron 11-20mm F2.8 Di III-A RXD', #JR (Model B060)
|
200
|
+
49468 => 'Tamron 18-300mm F3.5-6.3 Di III-A VC VXD', #JR (Model B061)
|
201
|
+
49469 => 'Tamron 35-150mm F2-F2.8 Di III VXD', #JR (Model A058)
|
202
|
+
49470 => 'Tamron 28-75mm F2.8 Di III VXD G2', #JR (Model A063)
|
203
|
+
|
197
204
|
49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
|
198
205
|
49473.1 => 'Viltrox 23mm F1.4 E', #JR
|
199
206
|
49473.2 => 'Viltrox 56mm F1.4 E', #JR
|
@@ -232,7 +239,12 @@ sub PrintInvLensSpec($;$$);
|
|
232
239
|
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
|
233
240
|
50525 => 'Sigma 24mm F3.5 DG DN | C', #JR (021)
|
234
241
|
50526 => 'Sigma 28-70mm F2.8 DG DN | C', #JR (021)
|
235
|
-
|
242
|
+
50527 => 'Sigma 150-600mm F5-6.3 DG DN OS | S', #JR (021)
|
243
|
+
50528 => 'Sigma 35mm F1.4 DG DN | A', #IB/JR (021)
|
244
|
+
50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
|
245
|
+
50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
|
246
|
+
50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
|
247
|
+
|
236
248
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
237
249
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
238
250
|
50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
|
@@ -245,6 +257,7 @@ sub PrintInvLensSpec($;$$);
|
|
245
257
|
51001 => 'Voigtlander NOKTON 21mm F1.4 Aspherical', #JR
|
246
258
|
51002 => 'Voigtlander APO-LANTHAR 50mm F2 Aspherical', #JR
|
247
259
|
51003 => 'Voigtlander NOKTON 35mm F1.2 Aspherical SE', #JR
|
260
|
+
51006 => 'Voigtlander APO-LANTHAR 35mm F2 Aspherical', #JR
|
248
261
|
|
249
262
|
# lenses listed in the Sigma MC-11 list, but not yet seen:
|
250
263
|
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
|
@@ -260,6 +273,7 @@ sub PrintInvLensSpec($;$$);
|
|
260
273
|
51510 => 'Samyang AF 18mm F2.8 or Samyang AF 35mm F1.8', #JR
|
261
274
|
51510.1 => 'Samyang AF 35mm F1.8', #JR
|
262
275
|
51512 => 'Samyang AF 75mm F1.8', #IB/JR
|
276
|
+
51514 => 'Samyang AF 24mm F1.8', #IB
|
263
277
|
);
|
264
278
|
|
265
279
|
# ExposureProgram values (ref PH, mainly decoded from A200)
|
@@ -1022,7 +1036,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1022
1036
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
1023
1037
|
},{
|
1024
1038
|
Name => 'Tag2010i', # ?
|
1025
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
1039
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1|E10))\b/',
|
1026
1040
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
1027
1041
|
},{
|
1028
1042
|
Name => 'Tag_0x2010',
|
@@ -1493,7 +1507,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1493
1507
|
my ($a,$b,$c,$d) = split ' ', $val;
|
1494
1508
|
my @a = $a =~ /../g;
|
1495
1509
|
return undef unless @a == 4;
|
1496
|
-
return Set32u((hex($d)<<22) | ($a[0]<<17) | ($a[1]<<12) | ($a[2]<<6) | $a[3]) . chr($b) . chr($c);
|
1510
|
+
return Set32u((hex($d)<<22) | ($a[0]<<17) | ($a[1]<<12) | ($a[2]<<6) | $a[3]) . chr($b & 0xff) . chr($c & 0xff);
|
1497
1511
|
},
|
1498
1512
|
PrintConv => {
|
1499
1513
|
'00000000 0 0 0x0' => 'n/a',
|
@@ -1569,6 +1583,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1569
1583
|
65535 => 'n/a',
|
1570
1584
|
},
|
1571
1585
|
},
|
1586
|
+
# 0x203a - 0x2041: first seen October 2021 for ILCE-7M4
|
1572
1587
|
0x3000 => {
|
1573
1588
|
Name => 'ShotInfo',
|
1574
1589
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
|
@@ -1597,21 +1612,21 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1597
1612
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1598
1613
|
{
|
1599
1614
|
Name => 'Tag9050a',
|
1600
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7RM2|
|
1615
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
|
1601
1616
|
SubDirectory => {
|
1602
1617
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1603
1618
|
ByteOrder => 'LittleEndian',
|
1604
1619
|
},
|
1605
1620
|
},{
|
1606
1621
|
Name => 'Tag9050b',
|
1607
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|
|
1622
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2|ZV-E10)/',
|
1608
1623
|
SubDirectory => {
|
1609
1624
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
1610
1625
|
ByteOrder => 'LittleEndian',
|
1611
1626
|
},
|
1612
1627
|
},{
|
1613
1628
|
Name => 'Tag9050c',
|
1614
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)/',
|
1629
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)/',
|
1615
1630
|
SubDirectory => {
|
1616
1631
|
TagTable => 'Image::ExifTool::Sony::Tag9050c',
|
1617
1632
|
ByteOrder => 'LittleEndian',
|
@@ -1630,7 +1645,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1630
1645
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1631
1646
|
# 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
|
1632
1647
|
# 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1633
|
-
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1
|
1648
|
+
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/E10
|
1634
1649
|
# 0x31 (e) for ILCE-1/7SM3, ILME-FX3
|
1635
1650
|
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106 respectively
|
1636
1651
|
{
|
@@ -1646,7 +1661,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1646
1661
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
|
1647
1662
|
},{
|
1648
1663
|
Name => 'Tag9400c',
|
1649
|
-
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
1664
|
+
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
1650
1665
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
|
1651
1666
|
},{
|
1652
1667
|
Name => 'Sony_0x9400',
|
@@ -1805,7 +1820,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1805
1820
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1806
1821
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
1807
1822
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
1808
|
-
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99, ZV-1
|
1823
|
+
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99, ZV-1/E10
|
1809
1824
|
# July 2020: ILCE-7SM3 doesn't write this tag anymore, but writes 0x9416
|
1810
1825
|
0x9405 => [{
|
1811
1826
|
Name => 'Tag9405a',
|
@@ -1859,7 +1874,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1859
1874
|
},
|
1860
1875
|
0x940c => [{
|
1861
1876
|
Name => 'Tag940c',
|
1862
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar)\b/',
|
1877
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10)\b/',
|
1863
1878
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag940c' },
|
1864
1879
|
},{
|
1865
1880
|
Name => 'Sony_0x940c',
|
@@ -2015,9 +2030,13 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
2015
2030
|
379 => 'ILCE-6100', #IB/JR
|
2016
2031
|
380 => 'ZV-1', #JR
|
2017
2032
|
381 => 'ILCE-7C', #JR
|
2033
|
+
382 => 'ZV-E10', #JR
|
2018
2034
|
383 => 'ILCE-7SM3',
|
2019
2035
|
384 => 'ILCE-1', #PH
|
2020
2036
|
385 => 'ILME-FX3', #JR
|
2037
|
+
386 => 'ILCE-7RM3A', #JR
|
2038
|
+
387 => 'ILCE-7RM4A', #forum12542
|
2039
|
+
388 => 'ILCE-7M4', #IB/JR
|
2021
2040
|
},
|
2022
2041
|
},
|
2023
2042
|
0xb020 => { #2
|
@@ -6176,7 +6195,7 @@ my %isoSetting2010 = (
|
|
6176
6195
|
43 => 160000,
|
6177
6196
|
44 => 204800,
|
6178
6197
|
45 => 256000,
|
6179
|
-
46 => 320000,
|
6198
|
+
46 => 320000,
|
6180
6199
|
47 => 409600,
|
6181
6200
|
);
|
6182
6201
|
|
@@ -7604,13 +7623,13 @@ my %isoSetting2010 = (
|
|
7604
7623
|
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
7605
7624
|
0x0050 => {
|
7606
7625
|
Name => 'ShutterCount2',
|
7607
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|
|
7626
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2)|ZV-E10)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/)',
|
7608
7627
|
Format => 'int32u',
|
7609
7628
|
RawConv => '$val & 0x00ffffff',
|
7610
7629
|
},
|
7611
7630
|
0x0052 => {
|
7612
7631
|
Name => 'ShutterCount2',
|
7613
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(7M3|
|
7632
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(7M3|7RM3A?))/)',
|
7614
7633
|
Format => 'int32u',
|
7615
7634
|
RawConv => '$val & 0x00ffffff',
|
7616
7635
|
},
|
@@ -7621,13 +7640,13 @@ my %isoSetting2010 = (
|
|
7621
7640
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
7622
7641
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
7623
7642
|
Name => 'ShutterCount2',
|
7624
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|
|
7643
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/) and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7625
7644
|
Format => 'int32u',
|
7626
7645
|
RawConv => '$val & 0x00ffffff',
|
7627
7646
|
},
|
7628
7647
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
7629
7648
|
Name => 'SonyTimeMinSec',
|
7630
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|
|
7649
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
7631
7650
|
Format => 'undef[2]',
|
7632
7651
|
ValueConv => q{
|
7633
7652
|
my @v = unpack('C*', $val);
|
@@ -7636,17 +7655,17 @@ my %isoSetting2010 = (
|
|
7636
7655
|
},
|
7637
7656
|
0x006b => {
|
7638
7657
|
Name => 'ReleaseMode2',
|
7639
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|
|
7658
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2)|ZV-E10)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7640
7659
|
%releaseMode2,
|
7641
7660
|
},
|
7642
7661
|
0x006d => {
|
7643
7662
|
Name => 'ReleaseMode2',
|
7644
|
-
Condition => '$$self{Model} =~ /^(ILCE-(7M3|
|
7663
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M3|7RM3A?))/',
|
7645
7664
|
%releaseMode2,
|
7646
7665
|
},
|
7647
7666
|
0x0073 => {
|
7648
7667
|
Name => 'ReleaseMode2',
|
7649
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
7668
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7650
7669
|
%releaseMode2,
|
7651
7670
|
},
|
7652
7671
|
0x0088 => {
|
@@ -7725,7 +7744,7 @@ my %isoSetting2010 = (
|
|
7725
7744
|
#
|
7726
7745
|
0x019f => {
|
7727
7746
|
Name => 'ShutterCount3',
|
7728
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
7747
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)\b/',
|
7729
7748
|
Format => 'int32u',
|
7730
7749
|
RawConv => '$val == 0 ? undef : $val',
|
7731
7750
|
},
|
@@ -7743,7 +7762,7 @@ my %isoSetting2010 = (
|
|
7743
7762
|
},
|
7744
7763
|
0x01eb => {
|
7745
7764
|
Name => 'APS-CSizeCapture',
|
7746
|
-
Condition => '$$self{Model} =~ /^ILCE-(
|
7765
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7747
7766
|
PrintConv => {
|
7748
7767
|
0 => 'Off',
|
7749
7768
|
1 => 'On',
|
@@ -7751,7 +7770,7 @@ my %isoSetting2010 = (
|
|
7751
7770
|
},
|
7752
7771
|
0x01ed => {
|
7753
7772
|
Name => 'LensSpecFeatures',
|
7754
|
-
Condition => '$$self{Model} =~ /^ILCE-(
|
7773
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
7755
7774
|
Priority => 0,
|
7756
7775
|
Format => 'undef[2]',
|
7757
7776
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7764,7 +7783,7 @@ my %isoSetting2010 = (
|
|
7764
7783
|
},
|
7765
7784
|
0x01ee => {
|
7766
7785
|
Name => 'APS-CSizeCapture',
|
7767
|
-
Condition => '$$self{Model} =~ /^(ILCE-(7M3|
|
7786
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M3|7RM3A?|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7768
7787
|
PrintConv => {
|
7769
7788
|
0 => 'Off',
|
7770
7789
|
1 => 'On',
|
@@ -7772,7 +7791,7 @@ my %isoSetting2010 = (
|
|
7772
7791
|
},
|
7773
7792
|
0x01f0 => {
|
7774
7793
|
Name => 'LensSpecFeatures',
|
7775
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|
|
7794
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3A?|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
7776
7795
|
Priority => 0,
|
7777
7796
|
Format => 'undef[2]',
|
7778
7797
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7940,7 +7959,7 @@ my %isoSetting2010 = (
|
|
7940
7959
|
},
|
7941
7960
|
0x0088 => {
|
7942
7961
|
Name => 'InternalSerialNumber', #(NC)
|
7943
|
-
Condition => '$$self{Model} =~ /^(ILCE-7SM3|ILME-FX3)/',
|
7962
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M4|7SM3)|ILME-FX3)/',
|
7944
7963
|
Format => 'int8u[6]',
|
7945
7964
|
PrintConv => 'unpack "H*", pack "C*", split " ", $val',
|
7946
7965
|
},
|
@@ -8178,7 +8197,7 @@ my %isoSetting2010 = (
|
|
8178
8197
|
},
|
8179
8198
|
0x002a => [{
|
8180
8199
|
Name => 'Quality2',
|
8181
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
8200
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
8182
8201
|
PrintConv => {
|
8183
8202
|
0 => 'JPEG',
|
8184
8203
|
1 => 'RAW',
|
@@ -8187,7 +8206,7 @@ my %isoSetting2010 = (
|
|
8187
8206
|
},
|
8188
8207
|
},{
|
8189
8208
|
Name => 'Quality2',
|
8190
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
8209
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
8191
8210
|
PrintConv => {
|
8192
8211
|
1 => 'JPEG',
|
8193
8212
|
2 => 'RAW',
|
@@ -8198,13 +8217,13 @@ my %isoSetting2010 = (
|
|
8198
8217
|
}],
|
8199
8218
|
0x0047 => {
|
8200
8219
|
Name => 'SonyImageHeight',
|
8201
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
8220
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
8202
8221
|
Format => 'int16u',
|
8203
8222
|
PrintConv => '$val > 0 ? 8*$val : "n.a."',
|
8204
8223
|
},
|
8205
8224
|
0x0053 => {
|
8206
8225
|
Name => 'ModelReleaseYear',
|
8207
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
8226
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
8208
8227
|
Format => 'int8u',
|
8209
8228
|
PrintConv => 'sprintf("20%.2d", $val)',
|
8210
8229
|
},
|
@@ -8219,10 +8238,11 @@ my %isoSetting2010 = (
|
|
8219
8238
|
FIRST_ENTRY => 0,
|
8220
8239
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8221
8240
|
DATAMEMBER => [ 0 ],
|
8222
|
-
IS_SUBDIR => [ 0x0498, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
8241
|
+
IS_SUBDIR => [ 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
8223
8242
|
0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
|
8224
8243
|
|
8225
8244
|
0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8245
|
+
0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8226
8246
|
0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8227
8247
|
0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
8228
8248
|
0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
@@ -8361,8 +8381,8 @@ my %isoSetting2010 = (
|
|
8361
8381
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8362
8382
|
DATAMEMBER => [ 0x04 ],
|
8363
8383
|
0x04 => {
|
8364
|
-
# seen values 0,2,3,18,32,49,50,83,148
|
8365
|
-
# CameraTemperature is valid for all values except 0
|
8384
|
+
# seen values 0,2,3,18,19,32,49,50,83,130,132,148,213,229,255
|
8385
|
+
# CameraTemperature is valid for all values above except ==0 and >=130
|
8366
8386
|
Name => 'TempTest2',
|
8367
8387
|
DataMember => 'TempTest2',
|
8368
8388
|
Hidden => 1,
|
@@ -8683,7 +8703,7 @@ my %isoSetting2010 = (
|
|
8683
8703
|
},
|
8684
8704
|
0x0342 => {
|
8685
8705
|
Name => 'LensZoomPosition',
|
8686
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|
|
8706
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3A?|7RM4A?|7SM2|6100|6300|6400|6500|6600|7C|9|9M2)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500)|ZV-)/',
|
8687
8707
|
Format => 'int16u',
|
8688
8708
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8689
8709
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8695,7 +8715,7 @@ my %isoSetting2010 = (
|
|
8695
8715
|
},
|
8696
8716
|
0x034e => {
|
8697
8717
|
Name => 'LensZoomPosition',
|
8698
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|
|
8718
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/',
|
8699
8719
|
Format => 'int16u',
|
8700
8720
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8701
8721
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8707,7 +8727,7 @@ my %isoSetting2010 = (
|
|
8707
8727
|
},
|
8708
8728
|
0x035c => {
|
8709
8729
|
Name => 'VignettingCorrParams',
|
8710
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|
|
8730
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
8711
8731
|
Format => 'int16s[16]',
|
8712
8732
|
},
|
8713
8733
|
0x035a => {
|
@@ -8744,7 +8764,7 @@ my %isoSetting2010 = (
|
|
8744
8764
|
},
|
8745
8765
|
0x03b8 => {
|
8746
8766
|
Name => 'ChromaticAberrationCorrParams',
|
8747
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
8767
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
8748
8768
|
Format => 'int16s[32]',
|
8749
8769
|
},
|
8750
8770
|
);
|
@@ -9275,11 +9295,11 @@ my %isoSetting2010 = (
|
|
9275
9295
|
|
9276
9296
|
# 0x1a06 onwards - first seen for ILCE-7RM2: appears to be some kind of metering image
|
9277
9297
|
# but not valid anymore for ILCE-6400, ILCE-9 v5.0x
|
9278
|
-
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
9279
|
-
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
9298
|
+
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
9299
|
+
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
9280
9300
|
0x1a08 => { # (2640 bytes: 1 set of 44x30 int16u values)
|
9281
9301
|
Name => 'TiffMeteringImage',
|
9282
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
9302
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
9283
9303
|
Format => 'undef[2640]',
|
9284
9304
|
Notes => q{
|
9285
9305
|
13(?)-bit intensity data from 1320 (1200) metering segments, extracted as a
|
@@ -9491,7 +9511,7 @@ my %isoSetting2010 = (
|
|
9491
9511
|
WRITE_PROC => \&WriteEnciphered,
|
9492
9512
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
9493
9513
|
FORMAT => 'int8u',
|
9494
|
-
NOTES => 'Valid for the ILCE-1/7SM3, ILME-FX3.',
|
9514
|
+
NOTES => 'Valid for the ILCE-1/7M4/7SM3, ILME-FX3.',
|
9495
9515
|
FIRST_ENTRY => 0,
|
9496
9516
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
9497
9517
|
0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
|
@@ -9618,10 +9638,22 @@ my %isoSetting2010 = (
|
|
9618
9638
|
},
|
9619
9639
|
0x088f => {
|
9620
9640
|
Name => 'VignettingCorrParams',
|
9641
|
+
Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
|
9642
|
+
Format => 'int16s[16]',
|
9643
|
+
},
|
9644
|
+
0x0891 => {
|
9645
|
+
Name => 'VignettingCorrParams',
|
9646
|
+
Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
|
9621
9647
|
Format => 'int16s[16]',
|
9622
9648
|
},
|
9623
9649
|
0x0914 => {
|
9624
9650
|
Name => 'ChromaticAberrationCorrParams',
|
9651
|
+
Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
|
9652
|
+
Format => 'int16s[32]',
|
9653
|
+
},
|
9654
|
+
0x0916 => {
|
9655
|
+
Name => 'ChromaticAberrationCorrParams',
|
9656
|
+
Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
|
9625
9657
|
Format => 'int16s[32]',
|
9626
9658
|
},
|
9627
9659
|
);
|
@@ -10125,10 +10157,16 @@ my %isoSetting2010 = (
|
|
10125
10157
|
PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
|
10126
10158
|
},
|
10127
10159
|
0x8001 => { Name => 'Sony_rtmd_0x8001', Format => 'int16u', %hidUnk },
|
10160
|
+
0x8004 => { Name => 'Sony_rtmd_0x8004', Format => 'int16u', %hidUnk },
|
10161
|
+
0x8005 => { Name => 'Sony_rtmd_0x8005', Format => 'int16u', %hidUnk },
|
10162
|
+
0x800a => { Name => 'Sony_rtmd_0x800a', Format => 'int16u', %hidUnk },
|
10163
|
+
0x800b => { Name => 'Sony_rtmd_0x800b', Format => 'int16u', %hidUnk },
|
10128
10164
|
# 0x8100 - 16 bytes starting with 0x060e2b340401
|
10129
10165
|
0x8100 => { Name => 'Sony_rtmd_0x8100', Format => 'int8u', %hidUnk },
|
10130
10166
|
0x8101 => { Name => 'Sony_rtmd_0x8101', Format => 'int8u', %hidUnk }, # seen: 0,1
|
10131
|
-
|
10167
|
+
0x8104 => { Name => 'Sony_rtmd_0x8104', Format => 'int16u', %hidUnk }, # seen: 35616
|
10168
|
+
0x8105 => { Name => 'Sony_rtmd_0x8105', Format => 'int16u', %hidUnk }, # seen: 20092
|
10169
|
+
0x8106 => { Name => 'Sony_rtmd_0x8106', Format => 'int32u', %hidUnk }, # seen: "25 1","24000 1001" frame rate?
|
10132
10170
|
0x8109 => { #forum12218
|
10133
10171
|
Name => 'ExposureTime',
|
10134
10172
|
Format => 'rational64u',
|
@@ -10224,7 +10262,7 @@ my %isoSetting2010 = (
|
|
10224
10262
|
},
|
10225
10263
|
0xe000 => { Name => 'Sony_rtmd_0xe000', Format => 'int8u', %hidUnk }, # (16 bytes)
|
10226
10264
|
0xe300 => { Name => 'Sony_rtmd_0xe300', Format => 'int8u', %hidUnk }, # seen: 0,1
|
10227
|
-
0xe301 => { Name => 'Sony_rtmd_0xe301', Format => 'int32u', %hidUnk }, # seen: 100,1600
|
10265
|
+
0xe301 => { Name => 'Sony_rtmd_0xe301', Format => 'int32u', %hidUnk }, # seen: 100,1600,12800
|
10228
10266
|
0xe302 => { Name => 'Sony_rtmd_0xe302', Format => 'int8u', %hidUnk }, # seen: 1
|
10229
10267
|
0xe303 => { #forum12218
|
10230
10268
|
Name => 'WhiteBalance',
|
@@ -10245,6 +10283,19 @@ my %isoSetting2010 = (
|
|
10245
10283
|
ValueConv => 'my @a=unpack("x1H4H2H2H2H2H2",$val); "$a[0]:$a[1]:$a[2] $a[3]:$a[4]:$a[5]"',
|
10246
10284
|
PrintConv => '$self->ConvertDateTime($val)',
|
10247
10285
|
},
|
10286
|
+
0xe435 => { Name => 'Sony_rtmd_0xe435', Format => 'int32u', %hidUnk }, # seen: 2000
|
10287
|
+
0xe437 => { Name => 'Sony_rtmd_0xe437', Format => 'int32s', %hidUnk }, # seen: -3800 to -3400
|
10288
|
+
0xe43b => {
|
10289
|
+
Name => 'PitchRollYaw',
|
10290
|
+
Format => 'int16s',
|
10291
|
+
RawConv => 'substr($val, 8)',
|
10292
|
+
},
|
10293
|
+
0xe445 => { Name => 'Sony_rtmd_0xe445', Format => 'int32u', %hidUnk }, # seen: 2000
|
10294
|
+
0xe44b => {
|
10295
|
+
Name => 'Accelerometer', # (NC)
|
10296
|
+
Format => 'int16s',
|
10297
|
+
RawConv => 'substr($val, 8)',
|
10298
|
+
},
|
10248
10299
|
# f010 - 2048 bytes
|
10249
10300
|
# f020 - 543 bytes
|
10250
10301
|
);
|
@@ -10292,6 +10343,26 @@ my %isoSetting2010 = (
|
|
10292
10343
|
ValueConv => '"$val[0] $val[1]Z"',
|
10293
10344
|
PrintConv => '$self->ConvertDateTime($val)',
|
10294
10345
|
},
|
10346
|
+
GPSLatitude => {
|
10347
|
+
SubDoc => 1, # generate for all sub-documents
|
10348
|
+
Groups => { 2 => 'Location' },
|
10349
|
+
Require => {
|
10350
|
+
0 => 'Sony:GPSLatitude',
|
10351
|
+
1 => 'Sony:GPSLatitudeRef',
|
10352
|
+
},
|
10353
|
+
ValueConv => '$val[1] =~ /^S/i ? -$val[0] : $val[0]',
|
10354
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
10355
|
+
},
|
10356
|
+
GPSLongitude => {
|
10357
|
+
SubDoc => 1, # generate for all sub-documents
|
10358
|
+
Groups => { 2 => 'Location' },
|
10359
|
+
Require => {
|
10360
|
+
0 => 'Sony:GPSLongitude',
|
10361
|
+
1 => 'Sony:GPSLongitudeRef',
|
10362
|
+
},
|
10363
|
+
ValueConv => '$val[1] =~ /^W/i ? -$val[0] : $val[0]',
|
10364
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
10365
|
+
},
|
10295
10366
|
);
|
10296
10367
|
|
10297
10368
|
# add our composite tags
|