exiftool-vendored.exe 12.30.0 → 12.38.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/exiftool_files/Changes +129 -3
- package/bin/exiftool_files/README +2 -2
- package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
- package/bin/exiftool_files/config_files/example.config +1 -1
- package/bin/exiftool_files/exiftool.pl +100 -58
- package/bin/exiftool_files/fmt_files/gpx.fmt +1 -1
- package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +13 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +175 -12
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +12 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +109 -3
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +33 -8
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +14 -10
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +16 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +96 -4
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +154 -24
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +27 -12
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +1204 -96
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +135 -71
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +11 -12
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +4 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +69 -10
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +141 -111
- package/bin/exiftool_files/lib/Image/ExifTool/README +9 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +56 -13
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6473 -5827
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +1401 -54
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +10 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +10 -11
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +50 -5
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +125 -31
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +8931 -8864
- package/bin/exiftool_files/lib/Image/ExifTool.pod +21 -13
- package/package.json +3 -3
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.55';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -187,7 +187,7 @@ $VERSION = '4.50';
|
|
|
187
187
|
37.2 => 'Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)', #38
|
|
188
188
|
37.3 => 'Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]', #34
|
|
189
189
|
37.4 => 'Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro', #forum2937
|
|
190
|
-
38 => 'Canon EF 80-200mm f/4.5-5.6', #32
|
|
190
|
+
38 => 'Canon EF 80-200mm f/4.5-5.6 II', #32 (II added ref https://github.com/Exiv2/exiv2/issues/1906)
|
|
191
191
|
39 => 'Canon EF 75-300mm f/4-5.6',
|
|
192
192
|
40 => 'Canon EF 28-80mm f/3.5-5.6',
|
|
193
193
|
41 => 'Canon EF 28-90mm f/4-5.6', #32
|
|
@@ -519,7 +519,8 @@ $VERSION = '4.50';
|
|
|
519
519
|
507 => 'Canon EF 16-35mm f/4L IS USM', #42
|
|
520
520
|
508 => 'Canon EF 11-24mm f/4L USM or Tamron Lens', #PH
|
|
521
521
|
508.1 => 'Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)', #PH
|
|
522
|
-
624 => 'Sigma 70-200mm f/2.8 DG OS HSM | S', #IB (018)
|
|
522
|
+
624 => 'Sigma 70-200mm f/2.8 DG OS HSM | S or other Sigma Lens', #IB (018)
|
|
523
|
+
624.1 => 'Sigma 150-600mm f/5-6.3 | C', #ChrisSkopec
|
|
523
524
|
747 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens', #JR
|
|
524
525
|
747.1 => 'Tamron SP 150-600mm f/5-6.3 Di VC USD G2', #50
|
|
525
526
|
748 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens', #JR (1.4x Mk III)
|
|
@@ -593,6 +594,12 @@ $VERSION = '4.50';
|
|
|
593
594
|
'61182.20' => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
|
|
594
595
|
'61182.21' => 'Canon RF 70-200mm F4L IS USM', #42
|
|
595
596
|
'61182.22' => 'Canon RF 50mm F1.8 STM', #42
|
|
597
|
+
'61182.23' => 'Canon RF 14-35mm F4L IS USM', #IB
|
|
598
|
+
'61182.24' => 'Canon RF 100-400mm F5.6-8 IS USM', #42
|
|
599
|
+
'61182.25' => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
|
|
600
|
+
'61182.26' => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
|
|
601
|
+
'61182.27' => 'Canon RF 16mm F2.8 STM', #42
|
|
602
|
+
#'61182.xx' => 'Canon RF 100mm F2.8L MACRO IS USM',
|
|
596
603
|
65535 => 'n/a',
|
|
597
604
|
);
|
|
598
605
|
|
|
@@ -947,6 +954,7 @@ $VERSION = '4.50';
|
|
|
947
954
|
0x80000435 => 'EOS Rebel T8i / 850D / X10i', #JR/PH
|
|
948
955
|
0x80000436 => 'EOS SL3 / 250D / Kiss X10', #25
|
|
949
956
|
0x80000437 => 'EOS 90D', #IB
|
|
957
|
+
0x80000450 => 'EOS R3', #42
|
|
950
958
|
0x80000453 => 'EOS R6', #PH
|
|
951
959
|
0x80000467 => 'PowerShot ZOOM',
|
|
952
960
|
0x80000468 => 'EOS M50 Mark II / Kiss M2', #IB
|
|
@@ -1911,6 +1919,11 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1911
1919
|
Name => 'ColorData10',
|
|
1912
1920
|
SubDirectory => { TagTable => 'Image::ExifTool::Canon::ColorData10' },
|
|
1913
1921
|
},
|
|
1922
|
+
{ # (int16u[3973]) - R3 ref IB
|
|
1923
|
+
Condition => '$count == 3973',
|
|
1924
|
+
Name => 'ColorData11',
|
|
1925
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Canon::ColorData11' },
|
|
1926
|
+
},
|
|
1914
1927
|
{
|
|
1915
1928
|
Name => 'ColorDataUnknown',
|
|
1916
1929
|
SubDirectory => { TagTable => 'Image::ExifTool::Canon::ColorDataUnknown' },
|
|
@@ -6728,7 +6741,17 @@ my %ciMaxFocal = (
|
|
|
6728
6741
|
PrintConvInv => '$val =~ s/ ?m$//; IsFloat($val) ? $val : 655.35',
|
|
6729
6742
|
},
|
|
6730
6743
|
# 22 - values: 0, 1
|
|
6731
|
-
|
|
6744
|
+
23 => { #JohnMoyer (forum12925)
|
|
6745
|
+
Name => 'ShutterMode',
|
|
6746
|
+
PrintConv => {
|
|
6747
|
+
0 => 'Mechanical',
|
|
6748
|
+
1 => 'Electronic First Curtain',
|
|
6749
|
+
2 => 'Electronic',
|
|
6750
|
+
# 3 => ?
|
|
6751
|
+
# 21 => ?
|
|
6752
|
+
# 22 => ?
|
|
6753
|
+
},
|
|
6754
|
+
},
|
|
6732
6755
|
25 => { #PH
|
|
6733
6756
|
Name => 'FlashExposureLock',
|
|
6734
6757
|
PrintConv => \%offOn,
|
|
@@ -6761,6 +6784,12 @@ my %ciMaxFocal = (
|
|
|
6761
6784
|
277 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
|
|
6762
6785
|
278 => 'Canon RF 70-200mm F4L IS USM', #42
|
|
6763
6786
|
280 => 'Canon RF 50mm F1.8 STM', #42
|
|
6787
|
+
281 => 'Canon RF 14-35mm F4L IS USM', #42/IB
|
|
6788
|
+
283 => 'Canon RF 100-400mm F5.6-8 IS USM', #42
|
|
6789
|
+
284 => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
|
|
6790
|
+
285 => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
|
|
6791
|
+
288 => 'Canon RF 16mm F2.8 STM', #42
|
|
6792
|
+
#xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
|
|
6764
6793
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
|
6765
6794
|
},
|
|
6766
6795
|
},
|
|
@@ -7696,7 +7725,10 @@ my %ciMaxFocal = (
|
|
|
7696
7725
|
# Color data (MakerNotes tag 0x4001, count=1312,1313,1316) (ref PH)
|
|
7697
7726
|
%Image::ExifTool::Canon::ColorData7 = (
|
|
7698
7727
|
%binaryDataAttrs,
|
|
7699
|
-
NOTES =>
|
|
7728
|
+
NOTES => q{
|
|
7729
|
+
These tags are used by the EOS 1DX, 5DmkIII, 6D, 7DmkII, 100D, 650D, 700D,
|
|
7730
|
+
8000D, M and M2.
|
|
7731
|
+
},
|
|
7700
7732
|
FORMAT => 'int16s',
|
|
7701
7733
|
FIRST_ENTRY => 0,
|
|
7702
7734
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
@@ -7707,8 +7739,8 @@ my %ciMaxFocal = (
|
|
|
7707
7739
|
DataMember => 'ColorDataVersion',
|
|
7708
7740
|
RawConv => '$$self{ColorDataVersion} = $val',
|
|
7709
7741
|
PrintConv => {
|
|
7710
|
-
10 => '10 (1DX/5DmkIII/6D/70D/100D/650D/700D/M)',
|
|
7711
|
-
11 => '11 (7DmkII/750D/760D)',
|
|
7742
|
+
10 => '10 (1DX/5DmkIII/6D/70D/100D/650D/700D/M/M2)',
|
|
7743
|
+
11 => '11 (7DmkII/750D/760D/8000D)',
|
|
7712
7744
|
},
|
|
7713
7745
|
},
|
|
7714
7746
|
# not really sure about the AsShot, Auto and Measured values any more - PH
|
|
@@ -7843,6 +7875,10 @@ my %ciMaxFocal = (
|
|
|
7843
7875
|
# Color data (MakerNotes tag 0x4001, count=1560,etc) (ref IB)
|
|
7844
7876
|
%Image::ExifTool::Canon::ColorData8 = (
|
|
7845
7877
|
%binaryDataAttrs,
|
|
7878
|
+
NOTES => q{
|
|
7879
|
+
These tags are used by the EOS 1DXmkII, 5DS, 5DSR, 5DmkIV, 6DmkII, 77D, 80D,
|
|
7880
|
+
200D, 800D, 1300D, 2000D, 4000D and 9000D.
|
|
7881
|
+
},
|
|
7846
7882
|
FORMAT => 'int16s',
|
|
7847
7883
|
FIRST_ENTRY => 0,
|
|
7848
7884
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
@@ -7853,10 +7889,10 @@ my %ciMaxFocal = (
|
|
|
7853
7889
|
DataMember => 'ColorDataVersion',
|
|
7854
7890
|
RawConv => '$$self{ColorDataVersion} = $val',
|
|
7855
7891
|
PrintConv => {
|
|
7856
|
-
12 => '12 (5DS/5DSR)',
|
|
7857
|
-
13 => '13 (80D)', #PH
|
|
7892
|
+
12 => '12 (1DXmkII/5DS/5DSR)',
|
|
7893
|
+
13 => '13 (80D/5DmkIV)', #PH
|
|
7858
7894
|
14 => '14 (1300D/2000D/4000D)', #IB
|
|
7859
|
-
15 => '15 (6DmkII/77D/200D/800D)', #IB
|
|
7895
|
+
15 => '15 (6DmkII/77D/200D/800D,9000D)', #IB
|
|
7860
7896
|
},
|
|
7861
7897
|
},
|
|
7862
7898
|
0x3f => { Name => 'WB_RGGBLevelsAsShot', Format => 'int16s[4]' },
|
|
@@ -8003,6 +8039,7 @@ my %ciMaxFocal = (
|
|
|
8003
8039
|
# Color data (MakerNotes tag 0x4001, count=1820,etc) (ref PH)
|
|
8004
8040
|
%Image::ExifTool::Canon::ColorData9 = (
|
|
8005
8041
|
%binaryDataAttrs,
|
|
8042
|
+
NOTES => 'These tags are used by the M6mkII, M50, M200, EOS R, RP, 90D, 250D and 850D',
|
|
8006
8043
|
FORMAT => 'int16s',
|
|
8007
8044
|
FIRST_ENTRY => 0,
|
|
8008
8045
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
@@ -8015,8 +8052,8 @@ my %ciMaxFocal = (
|
|
|
8015
8052
|
PrintConv => {
|
|
8016
8053
|
16 => '16 (M50)',
|
|
8017
8054
|
17 => '17 (EOS R)', # (and PowerShot SX740HS)
|
|
8018
|
-
18 => '18 (EOS RP)', # (and PowerShot SX70HS)
|
|
8019
|
-
19 => '19 (90D/M6mkII/M200)',# (and PowerShot G7XmkIII)
|
|
8055
|
+
18 => '18 (EOS RP/250D)', # (and PowerShot SX70HS)
|
|
8056
|
+
19 => '19 (90D/850D/M6mkII/M200)',# (and PowerShot G7XmkIII)
|
|
8020
8057
|
},
|
|
8021
8058
|
},
|
|
8022
8059
|
0x47 => { Name => 'WB_RGGBLevelsAsShot', Format => 'int16s[4]' },
|
|
@@ -8127,6 +8164,7 @@ my %ciMaxFocal = (
|
|
|
8127
8164
|
# (same as ColorData9 but shifted up by 0x0e, ref PH)
|
|
8128
8165
|
%Image::ExifTool::Canon::ColorData10 = (
|
|
8129
8166
|
%binaryDataAttrs,
|
|
8167
|
+
NOTES => 'These tags are used by the R5, R5 and EOS 1DXmkIII.',
|
|
8130
8168
|
FORMAT => 'int16s',
|
|
8131
8169
|
FIRST_ENTRY => 0,
|
|
8132
8170
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
@@ -8245,6 +8283,125 @@ my %ciMaxFocal = (
|
|
|
8245
8283
|
},
|
|
8246
8284
|
);
|
|
8247
8285
|
|
|
8286
|
+
# Color data (MakerNotes tag 0x4001, count=3973, ref IB)
|
|
8287
|
+
%Image::ExifTool::Canon::ColorData11 = (
|
|
8288
|
+
%binaryDataAttrs,
|
|
8289
|
+
NOTES => 'These tags are used by the EOS R3',
|
|
8290
|
+
FORMAT => 'int16s',
|
|
8291
|
+
FIRST_ENTRY => 0,
|
|
8292
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
8293
|
+
DATAMEMBER => [ 0 ],
|
|
8294
|
+
IS_SUBDIR => [ 0x12c ],
|
|
8295
|
+
0x00 => {
|
|
8296
|
+
Name => 'ColorDataVersion',
|
|
8297
|
+
DataMember => 'ColorDataVersion',
|
|
8298
|
+
RawConv => '$$self{ColorDataVersion} = $val',
|
|
8299
|
+
PrintConv => {
|
|
8300
|
+
34 => '34 (R3)', #IB
|
|
8301
|
+
},
|
|
8302
|
+
},
|
|
8303
|
+
0x69 => { Name => 'WB_RGGBLevelsAsShot', Format => 'int16s[4]' },
|
|
8304
|
+
0x6d => 'ColorTempAsShot',
|
|
8305
|
+
0x6e => { Name => 'WB_RGGBLevelsAuto', Format => 'int16s[4]' },
|
|
8306
|
+
0x72 => 'ColorTempAuto',
|
|
8307
|
+
0x73 => { Name => 'WB_RGGBLevelsMeasured', Format => 'int16s[4]' },
|
|
8308
|
+
0x77 => 'ColorTempMeasured',
|
|
8309
|
+
0x78 => { Name => 'WB_RGGBLevelsUnknown', Format => 'int16s[4]', Unknown => 1 },
|
|
8310
|
+
0x7c => { Name => 'ColorTempUnknown', Unknown => 1 },
|
|
8311
|
+
0x7d => { Name => 'WB_RGGBLevelsUnknown2', Format => 'int16s[4]', Unknown => 1 },
|
|
8312
|
+
0x81 => { Name => 'ColorTempUnknown2', Unknown => 1 },
|
|
8313
|
+
0x82 => { Name => 'WB_RGGBLevelsUnknown3', Format => 'int16s[4]', Unknown => 1 },
|
|
8314
|
+
0x86 => { Name => 'ColorTempUnknown3', Unknown => 1 },
|
|
8315
|
+
0x87 => { Name => 'WB_RGGBLevelsUnknown4', Format => 'int16s[4]', Unknown => 1 },
|
|
8316
|
+
0x8b => { Name => 'ColorTempUnknown4', Unknown => 1 },
|
|
8317
|
+
0x8c => { Name => 'WB_RGGBLevelsUnknown5', Format => 'int16s[4]', Unknown => 1 },
|
|
8318
|
+
0x90 => { Name => 'ColorTempUnknown5', Unknown => 1 },
|
|
8319
|
+
0x91 => { Name => 'WB_RGGBLevelsUnknown6', Format => 'int16s[4]', Unknown => 1 },
|
|
8320
|
+
0x95 => { Name => 'ColorTempUnknown6', Unknown => 1 },
|
|
8321
|
+
0x96 => { Name => 'WB_RGGBLevelsUnknown7', Format => 'int16s[4]', Unknown => 1 },
|
|
8322
|
+
0x9a => { Name => 'ColorTempUnknown7', Unknown => 1 },
|
|
8323
|
+
0x9b => { Name => 'WB_RGGBLevelsUnknown8', Format => 'int16s[4]', Unknown => 1 },
|
|
8324
|
+
0x9f => { Name => 'ColorTempUnknown8', Unknown => 1 },
|
|
8325
|
+
0xa0 => { Name => 'WB_RGGBLevelsUnknown9', Format => 'int16s[4]', Unknown => 1 },
|
|
8326
|
+
0xa4 => { Name => 'ColorTempUnknown9', Unknown => 1 },
|
|
8327
|
+
0xa5 => { Name => 'WB_RGGBLevelsUnknown10', Format => 'int16s[4]', Unknown => 1 },
|
|
8328
|
+
0xa9 => { Name => 'ColorTempUnknown10', Unknown => 1 },
|
|
8329
|
+
0xaa => { Name => 'WB_RGGBLevelsUnknown11', Format => 'int16s[4]', Unknown => 1 },
|
|
8330
|
+
0xae => { Name => 'ColorTempUnknown11', Unknown => 1 },
|
|
8331
|
+
0xaf => { Name => 'WB_RGGBLevelsUnknown11', Format => 'int16s[4]', Unknown => 1 },
|
|
8332
|
+
0xb3 => { Name => 'ColorTempUnknown11', Unknown => 1 },
|
|
8333
|
+
0xb4 => { Name => 'WB_RGGBLevelsUnknown12', Format => 'int16s[4]', Unknown => 1 },
|
|
8334
|
+
0xb8 => { Name => 'ColorTempUnknown12', Unknown => 1 },
|
|
8335
|
+
0xb9 => { Name => 'WB_RGGBLevelsUnknown13', Format => 'int16s[4]', Unknown => 1 },
|
|
8336
|
+
0xbd => { Name => 'ColorTempUnknown13', Unknown => 1 },
|
|
8337
|
+
0xbe => { Name => 'WB_RGGBLevelsUnknown14', Format => 'int16s[4]', Unknown => 1 },
|
|
8338
|
+
0xc2 => { Name => 'ColorTempUnknown14', Unknown => 1 },
|
|
8339
|
+
0xc3 => { Name => 'WB_RGGBLevelsUnknown15', Format => 'int16s[4]', Unknown => 1 },
|
|
8340
|
+
0xc7 => { Name => 'ColorTempUnknown15', Unknown => 1 },
|
|
8341
|
+
0xc8 => { Name => 'WB_RGGBLevelsUnknown16', Format => 'int16s[4]', Unknown => 1 },
|
|
8342
|
+
0xcc => { Name => 'ColorTempUnknown16', Unknown => 1 },
|
|
8343
|
+
0xcd => { Name => 'WB_RGGBLevelsDaylight', Format => 'int16s[4]' },
|
|
8344
|
+
0xd1 => 'ColorTempDaylight',
|
|
8345
|
+
0xd2 => { Name => 'WB_RGGBLevelsShade', Format => 'int16s[4]' },
|
|
8346
|
+
0xd6 => 'ColorTempShade',
|
|
8347
|
+
0xd7 => { Name => 'WB_RGGBLevelsCloudy', Format => 'int16s[4]' },
|
|
8348
|
+
0xdb => 'ColorTempCloudy',
|
|
8349
|
+
0xdc => { Name => 'WB_RGGBLevelsTungsten', Format => 'int16s[4]' },
|
|
8350
|
+
0xe0 => 'ColorTempTungsten',
|
|
8351
|
+
0xe1 => { Name => 'WB_RGGBLevelsFluorescent',Format => 'int16s[4]' },
|
|
8352
|
+
0xe5 => 'ColorTempFluorescent',
|
|
8353
|
+
0xe6 => { Name => 'WB_RGGBLevelsKelvin', Format => 'int16s[4]' },
|
|
8354
|
+
0xea => 'ColorTempKelvin',
|
|
8355
|
+
0xeb => { Name => 'WB_RGGBLevelsFlash', Format => 'int16s[4]' },
|
|
8356
|
+
0xef => 'ColorTempFlash',
|
|
8357
|
+
0xf0 => { Name => 'WB_RGGBLevelsUnknown17', Format => 'int16s[4]', Unknown => 1 },
|
|
8358
|
+
0xf4 => { Name => 'ColorTempUnknown17', Unknown => 1 },
|
|
8359
|
+
0xf5 => { Name => 'WB_RGGBLevelsUnknown18', Format => 'int16s[4]', Unknown => 1 },
|
|
8360
|
+
0xf9 => { Name => 'ColorTempUnknown18', Unknown => 1 },
|
|
8361
|
+
0xfa => { Name => 'WB_RGGBLevelsUnknown19', Format => 'int16s[4]', Unknown => 1 },
|
|
8362
|
+
0xfe => { Name => 'ColorTempUnknown19', Unknown => 1 },
|
|
8363
|
+
0xff => { Name => 'WB_RGGBLevelsUnknown20', Format => 'int16s[4]', Unknown => 1 },
|
|
8364
|
+
0x103 => { Name => 'ColorTempUnknown20', Unknown => 1 },
|
|
8365
|
+
0x104 => { Name => 'WB_RGGBLevelsUnknown21', Format => 'int16s[4]', Unknown => 1 },
|
|
8366
|
+
0x108 => { Name => 'ColorTempUnknown21', Unknown => 1 },
|
|
8367
|
+
0x109 => { Name => 'WB_RGGBLevelsUnknown22', Format => 'int16s[4]', Unknown => 1 },
|
|
8368
|
+
0x10d => { Name => 'ColorTempUnknown22', Unknown => 1 },
|
|
8369
|
+
0x10e => { Name => 'WB_RGGBLevelsUnknown23', Format => 'int16s[4]', Unknown => 1 },
|
|
8370
|
+
0x112 => { Name => 'ColorTempUnknown23', Unknown => 1 },
|
|
8371
|
+
0x113 => { Name => 'WB_RGGBLevelsUnknown24', Format => 'int16s[4]', Unknown => 1 },
|
|
8372
|
+
0x117 => { Name => 'ColorTempUnknown24', Unknown => 1 },
|
|
8373
|
+
0x118 => { Name => 'WB_RGGBLevelsUnknown25', Format => 'int16s[4]', Unknown => 1 },
|
|
8374
|
+
0x11c => { Name => 'ColorTempUnknown25', Unknown => 1 },
|
|
8375
|
+
0x11d => { Name => 'WB_RGGBLevelsUnknown26', Format => 'int16s[4]', Unknown => 1 },
|
|
8376
|
+
0x121 => { Name => 'ColorTempUnknown26', Unknown => 1 },
|
|
8377
|
+
0x122 => { Name => 'WB_RGGBLevelsUnknown27', Format => 'int16s[4]', Unknown => 1 },
|
|
8378
|
+
0x126 => { Name => 'ColorTempUnknown27', Unknown => 1 },
|
|
8379
|
+
0x12c => {
|
|
8380
|
+
Name => 'ColorCalib',
|
|
8381
|
+
Format => 'undef[120]',
|
|
8382
|
+
Unknown => 1,
|
|
8383
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Canon::ColorCalib' }
|
|
8384
|
+
},
|
|
8385
|
+
0x16b => {
|
|
8386
|
+
Name => 'PerChannelBlackLevel',
|
|
8387
|
+
Format => 'int16u[4]',
|
|
8388
|
+
},
|
|
8389
|
+
# 0x27c - PerChannelBlackLevel again
|
|
8390
|
+
0x280 => {
|
|
8391
|
+
Name => 'NormalWhiteLevel',
|
|
8392
|
+
Format => 'int16u',
|
|
8393
|
+
RawConv => '$val || undef',
|
|
8394
|
+
},
|
|
8395
|
+
0x281 => {
|
|
8396
|
+
Name => 'SpecularWhiteLevel',
|
|
8397
|
+
Format => 'int16u',
|
|
8398
|
+
},
|
|
8399
|
+
0x282 => {
|
|
8400
|
+
Name => 'LinearityUpperMargin',
|
|
8401
|
+
Format => 'int16u',
|
|
8402
|
+
},
|
|
8403
|
+
);
|
|
8404
|
+
|
|
8248
8405
|
# Unknown color data (MakerNotes tag 0x4001)
|
|
8249
8406
|
%Image::ExifTool::Canon::ColorDataUnknown = (
|
|
8250
8407
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
|
@@ -8735,6 +8892,7 @@ my %filterConv = (
|
|
|
8735
8892
|
# --> ignored when reading, but offsets are updated when writing
|
|
8736
8893
|
CMT1 => { # (CR3 files)
|
|
8737
8894
|
Name => 'IFD0',
|
|
8895
|
+
PreservePadding => 1,
|
|
8738
8896
|
SubDirectory => {
|
|
8739
8897
|
TagTable => 'Image::ExifTool::Exif::Main',
|
|
8740
8898
|
ProcessProc => \&Image::ExifTool::ProcessTIFF,
|
|
@@ -8743,6 +8901,7 @@ my %filterConv = (
|
|
|
8743
8901
|
},
|
|
8744
8902
|
CMT2 => { # (CR3 files)
|
|
8745
8903
|
Name => 'ExifIFD',
|
|
8904
|
+
PreservePadding => 1,
|
|
8746
8905
|
SubDirectory => {
|
|
8747
8906
|
TagTable => 'Image::ExifTool::Exif::Main',
|
|
8748
8907
|
ProcessProc => \&Image::ExifTool::ProcessTIFF,
|
|
@@ -8751,6 +8910,7 @@ my %filterConv = (
|
|
|
8751
8910
|
},
|
|
8752
8911
|
CMT3 => { # (CR3 files)
|
|
8753
8912
|
Name => 'MakerNoteCanon',
|
|
8913
|
+
PreservePadding => 1,
|
|
8754
8914
|
SubDirectory => {
|
|
8755
8915
|
TagTable => 'Image::ExifTool::Canon::Main',
|
|
8756
8916
|
ProcessProc => \&ProcessCMT3,
|
|
@@ -8759,6 +8919,7 @@ my %filterConv = (
|
|
|
8759
8919
|
},
|
|
8760
8920
|
CMT4 => { # (CR3 files)
|
|
8761
8921
|
Name => 'GPSInfo',
|
|
8922
|
+
PreservePadding => 1,
|
|
8762
8923
|
SubDirectory => {
|
|
8763
8924
|
TagTable => 'Image::ExifTool::GPS::Main',
|
|
8764
8925
|
ProcessProc => \&Image::ExifTool::ProcessTIFF,
|
|
@@ -8769,6 +8930,7 @@ my %filterConv = (
|
|
|
8769
8930
|
THMB => {
|
|
8770
8931
|
Name => 'ThumbnailImage',
|
|
8771
8932
|
Groups => { 2 => 'Preview' },
|
|
8933
|
+
PreservePadding => 1,
|
|
8772
8934
|
RawConv => 'substr($val, 16)',
|
|
8773
8935
|
Binary => 1,
|
|
8774
8936
|
},
|
|
@@ -8783,6 +8945,7 @@ my %filterConv = (
|
|
|
8783
8945
|
WRITE_PROC => 'Image::ExifTool::QuickTime::WriteQuickTime',
|
|
8784
8946
|
CNOP => {
|
|
8785
8947
|
Name => 'CanonVRD',
|
|
8948
|
+
PreservePadding => 1,
|
|
8786
8949
|
SubDirectory => {
|
|
8787
8950
|
TagTable => 'Image::ExifTool::CanonVRD::Main',
|
|
8788
8951
|
WriteProc => 'Image::ExifTool::CanonVRD::WriteCanonDR4',
|
|
@@ -1290,9 +1290,19 @@ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
|
|
|
1290
1290
|
},
|
|
1291
1291
|
},
|
|
1292
1292
|
0x0106 => [{
|
|
1293
|
+
Name => 'AEBShotCount',
|
|
1294
|
+
Condition => '$$self{Model} =~ /\b90D\b/',
|
|
1295
|
+
Notes => 'EOS 90D', # (and who knows what others?)
|
|
1296
|
+
PrintConv => {
|
|
1297
|
+
2 => '2 shots',
|
|
1298
|
+
3 => '3 shots',
|
|
1299
|
+
5 => '5 shots',
|
|
1300
|
+
7 => '7 shots',
|
|
1301
|
+
},
|
|
1302
|
+
},{
|
|
1293
1303
|
Name => 'AEBShotCount',
|
|
1294
1304
|
Condition => '$count == 1',
|
|
1295
|
-
Notes => '
|
|
1305
|
+
Notes => 'other models storing a single value',
|
|
1296
1306
|
PrintConv => {
|
|
1297
1307
|
0 => '3 shots',
|
|
1298
1308
|
1 => '2 shots',
|
|
@@ -1302,7 +1312,7 @@ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
|
|
|
1302
1312
|
},{
|
|
1303
1313
|
Name => 'AEBShotCount',
|
|
1304
1314
|
Count => 2,
|
|
1305
|
-
Notes => 'two values
|
|
1315
|
+
Notes => 'models storing two values',
|
|
1306
1316
|
PrintConv => {
|
|
1307
1317
|
'3 0' => '3 shots',
|
|
1308
1318
|
'2 1' => '2 shots',
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
# Revisions: 2009/08/28 - P. Harvey created
|
|
7
7
|
# 2010/01/20 - P. Harvey complete re-write
|
|
8
8
|
# 2010/07/16 - P. Harvey added UTF-16 support
|
|
9
|
+
#
|
|
10
|
+
# Notes: Charset lookups are generated using my convertCharset script
|
|
9
11
|
#------------------------------------------------------------------------------
|
|
10
12
|
|
|
11
13
|
package Image::ExifTool::Charset;
|
|
@@ -15,7 +15,7 @@ use strict;
|
|
|
15
15
|
use vars qw($VERSION);
|
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.06';
|
|
19
19
|
|
|
20
20
|
# DPX tags
|
|
21
21
|
%Image::ExifTool::DPX::Main = (
|
|
@@ -156,7 +156,18 @@ $VERSION = '1.05';
|
|
|
156
156
|
1532=> { Name => 'SourceCreateDate', Format => 'string[24]' },
|
|
157
157
|
1556=> { Name => 'InputDeviceName', Format => 'string[32]' },
|
|
158
158
|
1588=> { Name => 'InputDeviceSerialNumber', Format => 'string[32]' },
|
|
159
|
-
# 1620=> { Name => '
|
|
159
|
+
# 1620 => { Name => 'Border', Format => 'int16u[4]' },
|
|
160
|
+
1628 => {
|
|
161
|
+
Name => 'AspectRatio',
|
|
162
|
+
Format => 'int32u[2]',
|
|
163
|
+
RawConv => '$val =~ /4294967295/ ? undef : $val', # ignore undefined values
|
|
164
|
+
PrintConv => q{
|
|
165
|
+
return 'undef' if $val eq '0 0';
|
|
166
|
+
return 'inf' if $val=~/ 0$/;
|
|
167
|
+
my @a=split(' ',$val);
|
|
168
|
+
return join(':', Rationalize($a[0]/$a[1]));
|
|
169
|
+
},
|
|
170
|
+
},
|
|
160
171
|
1724 => { Name => 'OriginalFrameRate',Format => 'float' },
|
|
161
172
|
1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
|
|
162
173
|
1732 => { Name => 'FrameID', Format => 'string[32]' },
|
|
@@ -15,7 +15,7 @@ use strict;
|
|
|
15
15
|
use vars qw($VERSION);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.06';
|
|
19
19
|
|
|
20
20
|
my %dateTimeInfo = (
|
|
21
21
|
# NOTE: Do NOT put "Groups" here because Groups hash must not be common!
|
|
@@ -38,7 +38,7 @@ my %event = (
|
|
|
38
38
|
earliestDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
|
39
39
|
endDayOfYear => { Writable => 'integer', Groups => { 2 => 'Time' } },
|
|
40
40
|
eventDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
|
41
|
-
eventID => { },
|
|
41
|
+
eventID => { Avoid => 1, Notes => 'avoided in favor of XMP-iptcExt:EventID' },
|
|
42
42
|
eventRemarks => { Writable => 'lang-alt' },
|
|
43
43
|
eventTime => {
|
|
44
44
|
Groups => { 2 => 'Time' },
|
|
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
|
56
56
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
57
57
|
use Image::ExifTool::MakerNotes;
|
|
58
58
|
|
|
59
|
-
$VERSION = '4.
|
|
59
|
+
$VERSION = '4.38';
|
|
60
60
|
|
|
61
61
|
sub ProcessExif($$$);
|
|
62
62
|
sub WriteExif($$$);
|
|
@@ -265,6 +265,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
|
|
|
265
265
|
32892 => 'Sequential Color Filter', #JR (Sony ARQ)
|
|
266
266
|
34892 => 'Linear Raw', #2
|
|
267
267
|
51177 => 'Depth Map', # (DNG 1.5)
|
|
268
|
+
52527 => 'Semantic Mask', # (DNG 1.6)
|
|
268
269
|
);
|
|
269
270
|
|
|
270
271
|
%orientation = (
|
|
@@ -291,6 +292,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
|
|
|
291
292
|
9 => 'Depth map of reduced-resolution image', # (DNG 1.5)
|
|
292
293
|
16 => 'Enhanced image data', # (DNG 1.5)
|
|
293
294
|
0x10001 => 'Alternate reduced-resolution image', # (DNG 1.2)
|
|
295
|
+
0x10004 => 'Semantic Mask', # (DNG 1.6)
|
|
294
296
|
0xffffffff => 'invalid', #(found in E5700 NEF's)
|
|
295
297
|
BITMASK => {
|
|
296
298
|
0 => 'Reduced resolution',
|
|
@@ -366,6 +368,7 @@ my %opcodeInfo = (
|
|
|
366
368
|
11 => 'DeltaPerColumn',
|
|
367
369
|
12 => 'ScalePerRow',
|
|
368
370
|
13 => 'ScalePerColumn',
|
|
371
|
+
14 => 'WarpRectilinear2', # (DNG 1.6)
|
|
369
372
|
},
|
|
370
373
|
PrintConvInv => undef, # (so the inverse conversion is not performed)
|
|
371
374
|
);
|
|
@@ -3038,12 +3041,12 @@ my %opcodeInfo = (
|
|
|
3038
3041
|
},
|
|
3039
3042
|
},
|
|
3040
3043
|
#
|
|
3041
|
-
# DNG tags 0xc6XX and
|
|
3044
|
+
# DNG tags 0xc6XX, 0xc7XX and 0xcdXX (ref 2 unless otherwise stated)
|
|
3042
3045
|
#
|
|
3043
3046
|
0xc612 => {
|
|
3044
3047
|
Name => 'DNGVersion',
|
|
3045
3048
|
Notes => q{
|
|
3046
|
-
tags 0xc612-
|
|
3049
|
+
tags 0xc612-0xcd3b are defined by the DNG specification unless otherwise
|
|
3047
3050
|
noted. See L<https://helpx.adobe.com/photoshop/digital-negative.html> for
|
|
3048
3051
|
the specification
|
|
3049
3052
|
},
|
|
@@ -4041,6 +4044,97 @@ my %opcodeInfo = (
|
|
|
4041
4044
|
Protected => 1,
|
|
4042
4045
|
WriteGroup => 'IFD0',
|
|
4043
4046
|
},
|
|
4047
|
+
0xcd2d => { # DNG 1.6
|
|
4048
|
+
Name => 'ProfileGainTableMap',
|
|
4049
|
+
Writable => 'undef',
|
|
4050
|
+
WriteGroup => 'SubIFD',
|
|
4051
|
+
Protected => 1,
|
|
4052
|
+
Binary => 1,
|
|
4053
|
+
},
|
|
4054
|
+
0xcd2e => { # DNG 1.6
|
|
4055
|
+
Name => 'SemanticName',
|
|
4056
|
+
# Writable => 'string',
|
|
4057
|
+
WriteGroup => 'SubIFD' #? (NC) Semantic Mask IFD (only for Validate)
|
|
4058
|
+
},
|
|
4059
|
+
0xcd30 => { # DNG 1.6
|
|
4060
|
+
Name => 'SemanticInstanceIFD',
|
|
4061
|
+
# Writable => 'string',
|
|
4062
|
+
WriteGroup => 'SubIFD' #? (NC) Semantic Mask IFD (only for Validate)
|
|
4063
|
+
},
|
|
4064
|
+
0xcd31 => { # DNG 1.6
|
|
4065
|
+
Name => 'CalibrationIlluminant3',
|
|
4066
|
+
Writable => 'int16u',
|
|
4067
|
+
WriteGroup => 'IFD0',
|
|
4068
|
+
Protected => 1,
|
|
4069
|
+
SeparateTable => 'LightSource',
|
|
4070
|
+
PrintConv => \%lightSource,
|
|
4071
|
+
},
|
|
4072
|
+
0xcd32 => { # DNG 1.6
|
|
4073
|
+
Name => 'CameraCalibration3',
|
|
4074
|
+
Writable => 'rational64s',
|
|
4075
|
+
WriteGroup => 'IFD0',
|
|
4076
|
+
Count => -1,
|
|
4077
|
+
Protected => 1,
|
|
4078
|
+
},
|
|
4079
|
+
0xcd33 => { # DNG 1.6
|
|
4080
|
+
Name => 'ColorMatrix3',
|
|
4081
|
+
Writable => 'rational64s',
|
|
4082
|
+
WriteGroup => 'IFD0',
|
|
4083
|
+
Count => -1,
|
|
4084
|
+
Protected => 1,
|
|
4085
|
+
},
|
|
4086
|
+
0xcd34 => { # DNG 1.6
|
|
4087
|
+
Name => 'ForwardMatrix3',
|
|
4088
|
+
Writable => 'rational64s',
|
|
4089
|
+
WriteGroup => 'IFD0',
|
|
4090
|
+
Count => -1,
|
|
4091
|
+
Protected => 1,
|
|
4092
|
+
},
|
|
4093
|
+
0xcd35 => { # DNG 1.6
|
|
4094
|
+
Name => 'IlluminantData1',
|
|
4095
|
+
Writable => 'undef',
|
|
4096
|
+
WriteGroup => 'IFD0',
|
|
4097
|
+
Protected => 1,
|
|
4098
|
+
},
|
|
4099
|
+
0xcd36 => { # DNG 1.6
|
|
4100
|
+
Name => 'IlluminantData2',
|
|
4101
|
+
Writable => 'undef',
|
|
4102
|
+
WriteGroup => 'IFD0',
|
|
4103
|
+
Protected => 1,
|
|
4104
|
+
},
|
|
4105
|
+
0xcd37 => { # DNG 1.6
|
|
4106
|
+
Name => 'IlluminantData3',
|
|
4107
|
+
Writable => 'undef',
|
|
4108
|
+
WriteGroup => 'IFD0',
|
|
4109
|
+
Protected => 1,
|
|
4110
|
+
},
|
|
4111
|
+
0xcd38 => { # DNG 1.6
|
|
4112
|
+
Name => 'MaskSubArea',
|
|
4113
|
+
# Writable => 'int32u',
|
|
4114
|
+
WriteGroup => 'SubIFD', #? (NC) Semantic Mask IFD (only for Validate)
|
|
4115
|
+
Count => 4,
|
|
4116
|
+
},
|
|
4117
|
+
0xcd39 => { # DNG 1.6
|
|
4118
|
+
Name => 'ProfileHueSatMapData3',
|
|
4119
|
+
%longBin,
|
|
4120
|
+
Writable => 'float',
|
|
4121
|
+
WriteGroup => 'IFD0',
|
|
4122
|
+
Count => -1,
|
|
4123
|
+
Protected => 1,
|
|
4124
|
+
},
|
|
4125
|
+
0xcd3a => { # DNG 1.6
|
|
4126
|
+
Name => 'ReductionMatrix3',
|
|
4127
|
+
Writable => 'rational64s',
|
|
4128
|
+
WriteGroup => 'IFD0',
|
|
4129
|
+
Count => -1,
|
|
4130
|
+
Protected => 1,
|
|
4131
|
+
},
|
|
4132
|
+
0xcd3b => { # DNG 1.6
|
|
4133
|
+
Name => 'RGBTables',
|
|
4134
|
+
Writable => 'undef',
|
|
4135
|
+
WriteGroup => 'IFD0',
|
|
4136
|
+
Protected => 1,
|
|
4137
|
+
},
|
|
4044
4138
|
0xea1c => { #13
|
|
4045
4139
|
Name => 'Padding',
|
|
4046
4140
|
Binary => 1,
|
|
@@ -4722,11 +4816,23 @@ my %subSecConv = (
|
|
|
4722
4816
|
},
|
|
4723
4817
|
GPSPosition => {
|
|
4724
4818
|
Groups => { 2 => 'Location' },
|
|
4819
|
+
Writable => 1,
|
|
4820
|
+
WriteAlso => {
|
|
4821
|
+
GPSLatitude => '$val =~ /(.*?)( ?[NS])?,/ ? $1 : undef',
|
|
4822
|
+
GPSLatitudeRef => '$val =~ /(-?)(.*?) ?([NS]?),/ ? ($3 || ($1 ? "S" : "N")) : undef',
|
|
4823
|
+
GPSLongitude => '$val =~ /, ?(.*?)( ?[EW]?)$/ ? $1 : undef',
|
|
4824
|
+
GPSLongitudeRef => '$val =~ /, ?(-?)(.*?) ?([EW]?)$/ ? ($3 || ($1 ? "W" : "E")) : undef',
|
|
4825
|
+
},
|
|
4725
4826
|
Require => {
|
|
4726
4827
|
0 => 'GPSLatitude',
|
|
4727
4828
|
1 => 'GPSLongitude',
|
|
4728
4829
|
},
|
|
4729
4830
|
Priority => 0,
|
|
4831
|
+
Notes => q{
|
|
4832
|
+
when written, writes GPSLatitude, GPSLatitudeRef, GPSLongitude and
|
|
4833
|
+
GPSLongitudeRef. This tag may be written using the same coordinate
|
|
4834
|
+
format as provided by Google Maps when right-clicking on a location
|
|
4835
|
+
},
|
|
4730
4836
|
ValueConv => '(length($val[0]) or length($val[1])) ? "$val[0] $val[1]" : undef',
|
|
4731
4837
|
PrintConv => '"$prt[0], $prt[1]"',
|
|
4732
4838
|
},
|