exiftool-vendored.pl 13.41.0 → 13.43.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.
- package/bin/Changes +27 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +2 -2
- package/bin/exiftool +97 -95
- package/bin/lib/Image/ExifTool/Canon.pm +27 -2
- package/bin/lib/Image/ExifTool/JSON.pm +7 -6
- package/bin/lib/Image/ExifTool/Panasonic.pm +13 -5
- package/bin/lib/Image/ExifTool/QuickTime.pm +26 -4
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- package/bin/lib/Image/ExifTool/RIFF.pm +2 -1
- package/bin/lib/Image/ExifTool/Samsung.pm +137 -4
- package/bin/lib/Image/ExifTool/Sony.pm +5 -2
- package/bin/lib/Image/ExifTool/TagLookup.pm +7178 -7107
- package/bin/lib/Image/ExifTool/TagNames.pod +127 -3
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +17 -2
- package/bin/lib/Image/ExifTool.pm +3 -3
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/package.json +4 -4
|
@@ -49,7 +49,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
49
49
|
use Image::ExifTool::Exif;
|
|
50
50
|
use Image::ExifTool::GPS;
|
|
51
51
|
|
|
52
|
-
$VERSION = '3.
|
|
52
|
+
$VERSION = '3.24';
|
|
53
53
|
|
|
54
54
|
sub ProcessMOV($$;$);
|
|
55
55
|
sub ProcessKeys($$$);
|
|
@@ -494,6 +494,7 @@ my %qtFlags = ( #12
|
|
|
494
494
|
ispe => 1, # primary item must have an ispe and pixi, so no need to inherit these
|
|
495
495
|
pixi => 1,
|
|
496
496
|
irot => 1, # (tmap may have a different irot)
|
|
497
|
+
imir => 1, # (ditto)
|
|
497
498
|
pasp => 1, # (NC)
|
|
498
499
|
hvcC => 2, # (hvcC is a property of hvc1 referred to by primary grid)
|
|
499
500
|
colr => 2, # (colr is a property of primary grid or hvc1 referred to by primary)
|
|
@@ -2833,6 +2834,7 @@ my %userDefined = (
|
|
|
2833
2834
|
'xml ' => {
|
|
2834
2835
|
Name => 'XML',
|
|
2835
2836
|
Flags => [ 'Binary', 'Protected' ],
|
|
2837
|
+
BlockExtract => 1,
|
|
2836
2838
|
SubDirectory => {
|
|
2837
2839
|
TagTable => 'Image::ExifTool::XMP::XML',
|
|
2838
2840
|
IgnoreProp => { NonRealTimeMeta => 1 }, # ignore container for Sony 'nrtm'
|
|
@@ -2883,6 +2885,7 @@ my %userDefined = (
|
|
|
2883
2885
|
},
|
|
2884
2886
|
idat => {
|
|
2885
2887
|
Name => 'MetaImageSize', #PH (NC)
|
|
2888
|
+
Condition => '$$self{FileType} eq "HEIC"',
|
|
2886
2889
|
Format => 'int16u',
|
|
2887
2890
|
# (don't know what the first two numbers are for)
|
|
2888
2891
|
PrintConv => '$val =~ s/^(\d+) (\d+) (\d+) (\d+)/${3}x$4/; $val',
|
|
@@ -2968,7 +2971,6 @@ my %userDefined = (
|
|
|
2968
2971
|
Condition => '$$valPt =~ /^(prof|rICC)/',
|
|
2969
2972
|
# (don't do this because Apple Preview won't display an HEIC with a 0-length profile)
|
|
2970
2973
|
# Permanent => 0, # (in QuickTime, this writes a zero-length box instead of deleting)
|
|
2971
|
-
Permanent => 1,
|
|
2972
2974
|
SubDirectory => {
|
|
2973
2975
|
TagTable => 'Image::ExifTool::ICC_Profile::Main',
|
|
2974
2976
|
Start => 4,
|
|
@@ -2989,6 +2991,22 @@ my %userDefined = (
|
|
|
2989
2991
|
3 => 'Rotate 90 CW',
|
|
2990
2992
|
},
|
|
2991
2993
|
},
|
|
2994
|
+
imir => { # (applied before rotation)
|
|
2995
|
+
Name => 'Mirroring',
|
|
2996
|
+
Format => 'int8u',
|
|
2997
|
+
# yes, I realize this making this writable is useless without the ability to
|
|
2998
|
+
# create/delete this box because it is the existence of this box that is
|
|
2999
|
+
# significant. (The people who wrote the specification succeeded in making
|
|
3000
|
+
# this as complicated as possible because creating/deleting boxes from the
|
|
3001
|
+
# item property container is a real pain in the ass!)
|
|
3002
|
+
Writable => 'int8u',
|
|
3003
|
+
Protected => 1,
|
|
3004
|
+
PrintConv => {
|
|
3005
|
+
0 => 'Vertical',
|
|
3006
|
+
1 => 'Horizontal',
|
|
3007
|
+
# (it would have been great if the specification allowed for a "no mirroring" value)
|
|
3008
|
+
},
|
|
3009
|
+
},
|
|
2992
3010
|
ispe => {
|
|
2993
3011
|
Name => 'ImageSpatialExtent',
|
|
2994
3012
|
Condition => '$$valPt =~ /^\0{4}/', # (version/flags == 0/0)
|
|
@@ -6620,7 +6638,7 @@ my %userDefined = (
|
|
|
6620
6638
|
This directory contains a list of key names which are used to decode tags
|
|
6621
6639
|
written by the "mdta" handler. Also in this table are a few tags found in
|
|
6622
6640
|
timed metadata that are not yet writable by ExifTool. The prefix of
|
|
6623
|
-
"com.apple.quicktime." has been removed from
|
|
6641
|
+
"com.apple.quicktime." has been removed from most TagID's below. These tags
|
|
6624
6642
|
support alternate languages in the same way as the
|
|
6625
6643
|
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> tags. Note
|
|
6626
6644
|
that by default,
|
|
@@ -6714,14 +6732,17 @@ my %userDefined = (
|
|
|
6714
6732
|
'encoder' => { }, # forum15418 (written by ffmpeg)
|
|
6715
6733
|
#
|
|
6716
6734
|
# the following tags aren't in the com.apple.quicktime namespace:
|
|
6735
|
+
# (Note: must add any non-'com' prefix to %fullKeysID in WriteQuickTime.pl
|
|
6736
|
+
# to avoid adding the 'com.apple.quicktime' prefix when writing)
|
|
6717
6737
|
#
|
|
6718
6738
|
'com.android.version' => 'AndroidVersion',
|
|
6719
6739
|
'com.android.capture.fps' => { Name => 'AndroidCaptureFPS', Writable => 'float' },
|
|
6720
6740
|
'com.android.manufacturer' => 'AndroidMake',
|
|
6721
6741
|
'com.android.model' => 'AndroidModel',
|
|
6722
6742
|
'com.xiaomi.preview_video_cover' => { Name => 'XiaomiPreviewVideoCover', Writable => 'int32s' },
|
|
6723
|
-
'xiaomi.exifInfo.videoinfo' => 'XiaomiExifInfo',
|
|
6724
6743
|
'com.xiaomi.hdr10' => { Name => 'XiaomiHDR10', Writable => 'int32s' },
|
|
6744
|
+
'xiaomi.exifInfo.videoinfo' => 'XiaomiExifInfo',
|
|
6745
|
+
'samsung.android.utc_offset' => { Name => 'AndroidTimeZone', Groups => { 2 => 'Time' } },
|
|
6725
6746
|
#
|
|
6726
6747
|
# also seen
|
|
6727
6748
|
#
|
|
@@ -9774,6 +9795,7 @@ sub ProcessKeys($$$)
|
|
|
9774
9795
|
$name = "Tag_$name" if length $name < 2;
|
|
9775
9796
|
$newInfo = { Name => $name, Groups => { 1 => 'Keys' } };
|
|
9776
9797
|
$msg = ' (Unknown)';
|
|
9798
|
+
$et->VPrint(0, $$et{INDENT}, "[adding Keys:$tag]\n");
|
|
9777
9799
|
}
|
|
9778
9800
|
# substitute this tag in the ItemList table with the given index
|
|
9779
9801
|
my $id = $$et{KeysCount} . '.' . $index;
|
|
@@ -211,7 +211,7 @@ my %insvLimit = (
|
|
|
211
211
|
},
|
|
212
212
|
},{
|
|
213
213
|
Name => 'gpmd_Wolfbox', # Wolfbox G900 Dashcam and Redtiger F9 4K
|
|
214
|
-
Condition => '$$valPt =~ /^.{136}0{16}
|
|
214
|
+
Condition => '$$valPt =~ /^.{136}(0{16}[A-Z]{4}|https:\/\/www.redtiger\0)/s',
|
|
215
215
|
SubDirectory => {
|
|
216
216
|
TagTable => 'Image::ExifTool::QuickTime::Stream',
|
|
217
217
|
ProcessProc => \&ProcessWolfbox,
|
|
@@ -30,7 +30,7 @@ use strict;
|
|
|
30
30
|
use vars qw($VERSION $AUTOLOAD);
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
32
32
|
|
|
33
|
-
$VERSION = '1.
|
|
33
|
+
$VERSION = '1.73';
|
|
34
34
|
|
|
35
35
|
sub ConvertTimecode($);
|
|
36
36
|
sub ProcessSGLT($$$);
|
|
@@ -851,6 +851,7 @@ my %code2charset = (
|
|
|
851
851
|
Name => 'DateCreated',
|
|
852
852
|
Groups => { 2 => 'Time' },
|
|
853
853
|
ValueConv => '$_=$val; s/-/:/g; $_',
|
|
854
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
|
854
855
|
},
|
|
855
856
|
ICRP => 'Cropped',
|
|
856
857
|
IDIM => 'Dimensions',
|
|
@@ -21,8 +21,9 @@ use strict;
|
|
|
21
21
|
use vars qw($VERSION %samsungLensTypes);
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
24
|
+
use Image::ExifTool::JSON;
|
|
24
25
|
|
|
25
|
-
$VERSION = '1.
|
|
26
|
+
$VERSION = '1.60';
|
|
26
27
|
|
|
27
28
|
sub WriteSTMN($$$);
|
|
28
29
|
sub ProcessINFO($$$);
|
|
@@ -1277,7 +1278,15 @@ my %formatMinMax = (
|
|
|
1277
1278
|
# 0x0b51-name - seen 'Intelligent_PhotoEditor_Data' #forum16086
|
|
1278
1279
|
# 0x0b60-name - seen 'UltraWide_PhotoEditor_Data' #forum16086
|
|
1279
1280
|
# 0x0b90-name - seen 'Document_Scan_Info' #forum16086
|
|
1280
|
-
# 0x0ba1-name - seen 'Original_Path_Hash_Key', 'PhotoEditor_Re_Edit_Data', 'deco_doodle_bitmap', 'deco_sticker_bitmap', 'deco_text_bitmap'
|
|
1281
|
+
# 0x0ba1-name - seen 'Original_Path_Hash_Key', 'PhotoEditor_Re_Edit_Data', 'deco_doodle_bitmap', 'deco_sticker_bitmap', 'deco_text_bitmap','PhotoEditor_Re_Edit_Data'
|
|
1282
|
+
'0x0ba1' => [{
|
|
1283
|
+
Name => 'ReEditData',
|
|
1284
|
+
Condition => '$$self{SamsungTagName} eq "PhotoEditor_Re_Edit_Data"',
|
|
1285
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ReEditData' },
|
|
1286
|
+
},{
|
|
1287
|
+
Name => 'OriginalPathHashKey',
|
|
1288
|
+
Condition => '$$self{SamsungTagName} eq "Original_Path_Hash_Key"',
|
|
1289
|
+
}],
|
|
1281
1290
|
# 0x0ba2-name - seen 'Copy_Available_Edit_Info' #forum16086
|
|
1282
1291
|
# 0x0bc0-name - seen 'Single_Relighting_Bokeh_Info' #forum16086
|
|
1283
1292
|
# 0x0bd0-name - seen 'Dual_Relighting_Bokeh_Info' #forum16086
|
|
@@ -1300,12 +1309,22 @@ my %formatMinMax = (
|
|
|
1300
1309
|
'0x0d91' => { #forum16086/16242
|
|
1301
1310
|
Name => 'PEg_Info',
|
|
1302
1311
|
Description => 'PEg Info',
|
|
1303
|
-
SubDirectory => { TagTable => 'Image::ExifTool::
|
|
1312
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::PEgInfo' },
|
|
1304
1313
|
},
|
|
1305
1314
|
# 0x0da1-name - seen 'Captured_App_Info' #forum16086
|
|
1306
1315
|
# 0xa050-name - seen 'Jpeg360_2D_Info' (Samsung Gear 360)
|
|
1307
1316
|
# 0xa050 - seen 'Jpeg3602D' (Samsung Gear 360)
|
|
1317
|
+
# 0x0c61-name - seen 'Camera_Capture_Mode_Info'
|
|
1318
|
+
# 0x0c61 - seen '1'
|
|
1308
1319
|
# 0x0c81-name - seen 'Watermark_Info'
|
|
1320
|
+
# 0x0ce1-name - seen 'Gallery_DC_Data'
|
|
1321
|
+
# 0x0ce1 - seen '0,109,2,19010102,4000,3000,0,0,0,0;116.284004;1.0'
|
|
1322
|
+
# 0x0e41-name - seen 'Video_Edited_UTC_Offset'
|
|
1323
|
+
# 0x0e41 - seen '+0800'
|
|
1324
|
+
'0x0e41' => {
|
|
1325
|
+
Name => 'VideoEditedTimeZone',
|
|
1326
|
+
Groups => { 2 => 'Time' },
|
|
1327
|
+
},
|
|
1309
1328
|
);
|
|
1310
1329
|
|
|
1311
1330
|
# DualShot Extra Info (ref PH)
|
|
@@ -1380,6 +1399,113 @@ my %formatMinMax = (
|
|
|
1380
1399
|
perfMode => { },
|
|
1381
1400
|
);
|
|
1382
1401
|
|
|
1402
|
+
%Image::ExifTool::Samsung::ReEditData = (
|
|
1403
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1404
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1405
|
+
VARS => { LONG_TAGS => 2 },
|
|
1406
|
+
originalPath => { },
|
|
1407
|
+
representativeFrameLoc => { },
|
|
1408
|
+
startMotionVideo => { },
|
|
1409
|
+
endMotionVideo => { },
|
|
1410
|
+
isMotionVideoMute => { },
|
|
1411
|
+
isTrimMotionVideo => { },
|
|
1412
|
+
clipInfoValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ClipInfo' } },
|
|
1413
|
+
toneValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ToneInfo' } },
|
|
1414
|
+
effectValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::EffectInfo' } },
|
|
1415
|
+
portraitEffectValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::PortraitEffect' } },
|
|
1416
|
+
isBlending => { },
|
|
1417
|
+
isNotReEdit => { },
|
|
1418
|
+
sepVersion => { Name => 'SEPVersion' },
|
|
1419
|
+
ndeVersion => { Name => 'NDEVersion' },
|
|
1420
|
+
reSize => { },
|
|
1421
|
+
isScaleAI => { },
|
|
1422
|
+
rotation => { },
|
|
1423
|
+
adjustmentValue => { },
|
|
1424
|
+
isApplyShapeCorrection => { },
|
|
1425
|
+
isNewReEditOnly => { },
|
|
1426
|
+
isDecoReEditOnly => { },
|
|
1427
|
+
isAIFilterReEditOnly=> { },
|
|
1428
|
+
);
|
|
1429
|
+
|
|
1430
|
+
%Image::ExifTool::Samsung::ClipInfo = (
|
|
1431
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1432
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1433
|
+
mCenterX => { Name => 'ClipCenterX' },
|
|
1434
|
+
mCenterY => { Name => 'ClipCenterY' },
|
|
1435
|
+
mWidth => { Name => 'ClipWidth' },
|
|
1436
|
+
mHeight => { Name => 'ClipHeight' },
|
|
1437
|
+
mRotation => { Name => 'ClipRotation' },
|
|
1438
|
+
mRotate => { Name => 'ClipRotate' },
|
|
1439
|
+
mHFlip => { Name => 'ClipHFlip' },
|
|
1440
|
+
mVFlip => { Name => 'ClipVFlip' },
|
|
1441
|
+
mRotationEffect => { Name => 'ClipRotationEffect' },
|
|
1442
|
+
mRotateEffect => { Name => 'ClipRotateEffect' },
|
|
1443
|
+
mHFlipEffect => { Name => 'ClipHFlipEffect' },
|
|
1444
|
+
mVFlipEffect => { Name => 'ClipVFlipEffect' },
|
|
1445
|
+
mHozPerspective => { Name => 'ClipHozPerspective' },
|
|
1446
|
+
mVerPerspective => { Name => 'ClipVerPerspective' },
|
|
1447
|
+
);
|
|
1448
|
+
|
|
1449
|
+
%Image::ExifTool::Samsung::ToneInfo = (
|
|
1450
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1451
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1452
|
+
brightness => { },
|
|
1453
|
+
exposure => { },
|
|
1454
|
+
contrast => { },
|
|
1455
|
+
saturation => { },
|
|
1456
|
+
hue => { },
|
|
1457
|
+
wbMode => { Name => 'WBMode' },
|
|
1458
|
+
wbTemperature => { Name => 'WBTemperature' },
|
|
1459
|
+
tint => { },
|
|
1460
|
+
shadow => { },
|
|
1461
|
+
highlight => { },
|
|
1462
|
+
lightbalance => { },
|
|
1463
|
+
sharpness => { },
|
|
1464
|
+
definition => { },
|
|
1465
|
+
isBrightnessIPE => { },
|
|
1466
|
+
isExposureIPE => { },
|
|
1467
|
+
isContrastIPE => { },
|
|
1468
|
+
isSaturationIPE => { },
|
|
1469
|
+
);
|
|
1470
|
+
|
|
1471
|
+
%Image::ExifTool::Samsung::EffectInfo = (
|
|
1472
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1473
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1474
|
+
filterIndication=> { },
|
|
1475
|
+
alphaValue => { },
|
|
1476
|
+
filterType => { },
|
|
1477
|
+
);
|
|
1478
|
+
|
|
1479
|
+
%Image::ExifTool::Samsung::PortraitEffect = (
|
|
1480
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1481
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1482
|
+
VARS => { LONG_TAGS => 1 },
|
|
1483
|
+
effectId => { Name => 'PortraitEffectID' },
|
|
1484
|
+
effectLevel => { Name => 'PortraitEffectLevel' },
|
|
1485
|
+
exifRotation => { Name => 'PortraitExifRotation' },
|
|
1486
|
+
lightLevel => { Name => 'PortraitLightLevel' },
|
|
1487
|
+
touchX => { Name => 'PortraitTouchX' },
|
|
1488
|
+
touchY => { Name => 'PortraitTouchY' },
|
|
1489
|
+
refocusX => { Name => 'PortraitRefocusX' },
|
|
1490
|
+
refocusY => { Name => 'PortraitRefocusY' },
|
|
1491
|
+
effectIdOriginal => { Name => 'PortraitEffectIDOriginal' },
|
|
1492
|
+
effectLevelOriginal => { Name => 'EffectLevelOriginal' },
|
|
1493
|
+
lightLevelOriginal => { Name => 'LightLevelOriginal' },
|
|
1494
|
+
touchXOriginal => { },
|
|
1495
|
+
touchYOriginal => { },
|
|
1496
|
+
refocusXOriginal=> { },
|
|
1497
|
+
refocusYOriginal=> { },
|
|
1498
|
+
waterMarkRemoved=> { Name => 'WaterMarkRemoved' },
|
|
1499
|
+
waterMarkRemovedOriginal => { Name => 'WaterMarkRemovedOriginal' },
|
|
1500
|
+
);
|
|
1501
|
+
|
|
1502
|
+
%Image::ExifTool::Samsung::PEgInfo = (
|
|
1503
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1504
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1505
|
+
genImageVersion => { },
|
|
1506
|
+
connectorType => { },
|
|
1507
|
+
);
|
|
1508
|
+
|
|
1383
1509
|
# Samsung composite tags
|
|
1384
1510
|
%Image::ExifTool::Samsung::Composite = (
|
|
1385
1511
|
GROUPS => { 2 => 'Image' },
|
|
@@ -1625,7 +1751,14 @@ SamBlock:
|
|
|
1625
1751
|
}
|
|
1626
1752
|
next;
|
|
1627
1753
|
}
|
|
1628
|
-
|
|
1754
|
+
# validate SEFH header
|
|
1755
|
+
unless ($buff =~ /^SEFH/ and $len >= 12) {
|
|
1756
|
+
# tolerate extra junk written by Samsung Gallery
|
|
1757
|
+
last unless $buff =~ /\0\0SEFT/g;
|
|
1758
|
+
$et->Warn('Trailer likely corrupted by Samsung Gallery');
|
|
1759
|
+
$blockEnd += pos($buff);
|
|
1760
|
+
next;
|
|
1761
|
+
}
|
|
1629
1762
|
my $dirPos = $raf->Tell() - $len;
|
|
1630
1763
|
# my $ver = Get32u(\$buff, 0x04); # version (=101)
|
|
1631
1764
|
my $count = Get32u(\$buff, 0x08);
|
|
@@ -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.81';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -2215,6 +2215,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
2215
2215
|
403 => 'ILCE-6100A', #JR
|
|
2216
2216
|
404 => 'DSC-RX100M7A', #github347
|
|
2217
2217
|
406 => 'ILME-FX2', #JR
|
|
2218
|
+
407 => 'ILCE-7M5', #PH
|
|
2218
2219
|
408 => 'ZV-1A', #JR
|
|
2219
2220
|
},
|
|
2220
2221
|
},
|
|
@@ -10656,7 +10657,7 @@ my %isoSetting2010 = (
|
|
|
10656
10657
|
0x8101 => { Name => 'Sony_rtmd_0x8101', Format => 'int8u', %hidUnk }, # seen: 0,1,2
|
|
10657
10658
|
0x8104 => { Name => 'Sony_rtmd_0x8104', Format => 'int16u', %hidUnk }, # seen: 35616
|
|
10658
10659
|
0x8105 => { Name => 'Sony_rtmd_0x8105', Format => 'int16u', %hidUnk }, # seen: 20092
|
|
10659
|
-
0x8106 => { Name => '
|
|
10660
|
+
0x8106 => { Name => 'FrameRate', Format => 'rational64u', PrintConv => 'sprintf("%.2f",$val)' },
|
|
10660
10661
|
0x8109 => { #forum12218
|
|
10661
10662
|
Name => 'ExposureTime',
|
|
10662
10663
|
Format => 'rational64u',
|
|
@@ -10674,7 +10675,9 @@ my %isoSetting2010 = (
|
|
|
10674
10675
|
Format => 'int16u',
|
|
10675
10676
|
},
|
|
10676
10677
|
0x810d => { Name => 'Sony_rtmd_0x810d', Format => 'int8u', %hidUnk }, # seen: 0,1
|
|
10678
|
+
0x8114 => { Name => 'SerialNumber', Format => 'string' }, # (and model, eg. "ILCE-7SM3 5072108")
|
|
10677
10679
|
0x8115 => { Name => 'Sony_rtmd_0x8115', Format => 'int16u', %hidUnk }, # seen: 100 - ISO
|
|
10680
|
+
# 0x8119 - seen "P" (same as 0x811e?)
|
|
10678
10681
|
# 0x8300 - container for other tags in this format
|
|
10679
10682
|
0x8500 => {
|
|
10680
10683
|
Name => 'GPSVersionID',
|