exiftool_vendored 11.60.0 → 11.61.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.
- checksums.yaml +4 -4
- data/bin/Changes +15 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +2 -2
- data/bin/lib/Image/ExifTool.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +4 -2
- data/bin/lib/Image/ExifTool/Exif.pm +6 -5
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -2
- data/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/PNG.pm +9 -10
- data/bin/lib/Image/ExifTool/Sony.pm +15 -8
- data/bin/lib/Image/ExifTool/TagLookup.pm +1 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +6 -5
- data/bin/lib/Image/ExifTool/WritePNG.pl +6 -8
- data/bin/lib/Image/ExifTool/Writer.pl +5 -4
- data/bin/lib/Image/ExifTool/XMP.pm +5 -5
- 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: 65ea2b4bc54696ca9b8ded4b82cf20b63ccac35e
|
|
4
|
+
data.tar.gz: 2b940fd9b9756a41daf9b513c0cd8c6d2477a286
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '08d346325378140b1eec45335a4c49b03bb1368c7eece40ffa62f4c252e6fda781e1feab4e339c86e8431f827e6eab8339c9f9c6a63944587d2f04ac5124b685'
|
|
7
|
+
data.tar.gz: b1fb4d3bd28b6561c247c5376d95a54b43c8af0a8c86c2ccb264edbb7b309ff75dc95c29344fe28c21055338ef5b6422ae9edb691ae3a9257ccc1b4e4ff60f02
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,21 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 11.50. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
Aug. 7, 2019 - Version 11.61
|
|
11
|
+
|
|
12
|
+
- Added a new FujiFilm CropMode (thanks LibRaw)
|
|
13
|
+
- Added a couple of proprietary CustomRendered values (thanks Jeffrey Friedl)
|
|
14
|
+
- Added a new Nikon LensID and fixed a Canon LensType (thanks LibRaw)
|
|
15
|
+
- Added a new CanonModelID
|
|
16
|
+
- Decode more Sony DSC-RX100M7 tags (thanks Jos Roost)
|
|
17
|
+
- Write standard EXIF to PNG even if non-standard EXIF already exists
|
|
18
|
+
- Patched to avoid problems overriding new values when writing thumbnail and
|
|
19
|
+
preview images
|
|
20
|
+
- Changed a Minolta/Sony LensType (thanks LibRaw)
|
|
21
|
+
- Changed Composite GPS reference direction tags to be derived from only the
|
|
22
|
+
XMP-exif GPS coordinate tags (and not other XMP GPS coordinates)
|
|
23
|
+
- Reverted a PNG Validation check that was removed from 11.60
|
|
24
|
+
|
|
10
25
|
July 30, 2019 - Version 11.60
|
|
11
26
|
|
|
12
27
|
- Added a few new Sigma LensType values (thanks LibRaw)
|
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.61.tar.gz | tar -xf -
|
|
108
|
+
cd Image-ExifTool-11.61
|
|
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.61';
|
|
14
14
|
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
16
|
my $exeDir;
|
|
@@ -5157,7 +5157,7 @@ with this command:
|
|
|
5157
5157
|
|
|
5158
5158
|
produces output like this:
|
|
5159
5159
|
|
|
5160
|
-
-- Generated by ExifTool 11.
|
|
5160
|
+
-- Generated by ExifTool 11.61 --
|
|
5161
5161
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5162
5162
|
(f/5.6, 1/60s, ISO 100)
|
|
5163
5163
|
File: b.jpg - 2006:05:23 11:57:38
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
27
27
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
|
28
28
|
%jpegMarker %specialTags %fileTypeLookup);
|
|
29
29
|
|
|
30
|
-
$VERSION = '11.
|
|
30
|
+
$VERSION = '11.61';
|
|
31
31
|
$RELEASE = '';
|
|
32
32
|
@ISA = qw(Exporter);
|
|
33
33
|
%EXPORT_TAGS = (
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.20';
|
|
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)
|
|
@@ -511,7 +511,7 @@ $VERSION = '4.19';
|
|
|
511
511
|
4154 => 'Canon EF-S 24mm f/2.8 STM', #IB
|
|
512
512
|
4155 => 'Canon EF-M 28mm f/3.5 Macro IS STM', #42
|
|
513
513
|
4156 => 'Canon EF 50mm f/1.8 STM', #42
|
|
514
|
-
4157 => 'Canon EF-M 18-150mm
|
|
514
|
+
4157 => 'Canon EF-M 18-150mm f/3.5-6.3 IS STM', #42
|
|
515
515
|
4158 => 'Canon EF-S 18-55mm f/4-5.6 IS STM', #PH
|
|
516
516
|
4159 => 'Canon EF-M 32mm f/1.4 STM', #42
|
|
517
517
|
4160 => 'Canon EF-S 35mm f/2.8 Macro IS STM', #42
|
|
@@ -774,6 +774,7 @@ $VERSION = '4.19';
|
|
|
774
774
|
0x4180000 => 'PowerShot G1 X Mark III', #IB
|
|
775
775
|
0x6040000 => 'PowerShot S100 / Digital IXUS / IXY Digital',
|
|
776
776
|
0x801 => 'PowerShot SX740 HS',
|
|
777
|
+
0x804 => 'PowerShot G5 X Mark II',
|
|
777
778
|
0x805 => 'PowerShot SX70 HS',
|
|
778
779
|
0x808 => 'PowerShot G7 X Mark III',
|
|
779
780
|
|
|
@@ -8428,6 +8429,7 @@ my %filterConv = (
|
|
|
8428
8429
|
},
|
|
8429
8430
|
# CTBO - (CR3 files) int32u entry count N, N x (int32u index, int64u offset, int64u size)
|
|
8430
8431
|
# index: 1=XMP, 2=PRVW, 3=mdat, 4=?, 5=?
|
|
8432
|
+
# --> ignored when reading, but offsets are updated when writing
|
|
8431
8433
|
CMT1 => { # (CR3 files)
|
|
8432
8434
|
Name => 'IFD0',
|
|
8433
8435
|
SubDirectory => {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
# 29) http://www.libtiff.org
|
|
43
43
|
# 30) http://geotiff.maptools.org/spec/geotiffhome.html
|
|
44
44
|
# 31) https://android.googlesource.com/platform/external/dng_sdk/+/refs/heads/master/source/dng_tag_codes.h
|
|
45
|
+
# 32) Jeffry Friedl private communication
|
|
45
46
|
# IB) Iliah Borg private communication (LibRaw)
|
|
46
47
|
# JD) Jens Duttke private communication
|
|
47
48
|
#------------------------------------------------------------------------------
|
|
@@ -55,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
|
55
56
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
56
57
|
use Image::ExifTool::MakerNotes;
|
|
57
58
|
|
|
58
|
-
$VERSION = '4.
|
|
59
|
+
$VERSION = '4.21';
|
|
59
60
|
|
|
60
61
|
sub ProcessExif($$$);
|
|
61
62
|
sub WriteExif($$$);
|
|
@@ -2552,11 +2553,11 @@ my %sampleFormat = (
|
|
|
2552
2553
|
PrintConv => {
|
|
2553
2554
|
0 => 'Normal',
|
|
2554
2555
|
1 => 'Custom',
|
|
2555
|
-
|
|
2556
|
-
3 => 'HDR',
|
|
2557
|
-
|
|
2556
|
+
2 => 'HDR (no original saved)', #32 non-standard (Apple iOS)
|
|
2557
|
+
3 => 'HDR (original saved)', #32 non-standard (Apple iOS)
|
|
2558
|
+
4 => 'Original (for HDR)', #32 non-standard (Apple iOS)
|
|
2558
2559
|
6 => 'Panorama', # non-standard (Apple iOS, horizontal or vertical)
|
|
2559
|
-
|
|
2560
|
+
7 => 'Portrait HDR', #32 non-standard (Apple iOS)
|
|
2560
2561
|
8 => 'Portrait', # non-standard (Apple iOS, blurred background)
|
|
2561
2562
|
# 9 - also seen (Apple iOS) (HDR Portrait?)
|
|
2562
2563
|
},
|
|
@@ -30,7 +30,7 @@ use vars qw($VERSION);
|
|
|
30
30
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
31
31
|
use Image::ExifTool::Exif;
|
|
32
32
|
|
|
33
|
-
$VERSION = '1.
|
|
33
|
+
$VERSION = '1.73';
|
|
34
34
|
|
|
35
35
|
sub ProcessFujiDir($$$);
|
|
36
36
|
sub ProcessFaceRec($$$);
|
|
@@ -453,8 +453,9 @@ my %faceCategories = (
|
|
|
453
453
|
0x104d => { #forum9634
|
|
454
454
|
Name => 'CropMode',
|
|
455
455
|
Writable => 'int16u',
|
|
456
|
-
PrintConv => {
|
|
456
|
+
PrintConv => { # (perhaps this is a bit mask?)
|
|
457
457
|
0 => 'n/a',
|
|
458
|
+
1 => 'Full-frame on GFX', #IB
|
|
458
459
|
2 => 'Sports Finder Mode', # (mechanical shutter)
|
|
459
460
|
4 => 'Electronic Shutter 1.25x Crop', # (continuous high)
|
|
460
461
|
},
|
|
@@ -49,7 +49,7 @@ use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
|
|
|
49
49
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
50
50
|
use Image::ExifTool::Exif;
|
|
51
51
|
|
|
52
|
-
$VERSION = '2.
|
|
52
|
+
$VERSION = '2.79';
|
|
53
53
|
|
|
54
54
|
# Full list of product codes for Sony-compatible Minolta lenses
|
|
55
55
|
# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
|
|
@@ -363,7 +363,9 @@ $VERSION = '2.78';
|
|
|
363
363
|
137 => 'Cosina 70-210mm F2.8-4 AF', #11
|
|
364
364
|
138 => 'Soligor 19-35mm F3.5-4.5', #11
|
|
365
365
|
139 => 'Tokina AF 28-300mm F4-6.3', #IB
|
|
366
|
-
|
|
366
|
+
# (the following Cosina 70-300mm lens was also marketed as a Phoenix, Vivitar Series 1, and
|
|
367
|
+
# some sort of 3rd-party marketing as a Voightlander 70-300mm F4.5-5.6 SKOPAR AF, ref IB)
|
|
368
|
+
142 => 'Cosina AF 70-300mm F4.5-5.6 MC', #IB (was 'Voigtlander 70-300mm F4.5-5.6', #JD)
|
|
367
369
|
146 => 'Voigtlander Macro APO-Lanthar 125mm F2.5 SL', #JD
|
|
368
370
|
194 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]', #23 (Model A16)
|
|
369
371
|
202 => 'Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro', #JR (Model A001) (see also 255.7)
|
|
@@ -60,7 +60,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
60
60
|
use Image::ExifTool::Exif;
|
|
61
61
|
use Image::ExifTool::GPS;
|
|
62
62
|
|
|
63
|
-
$VERSION = '3.
|
|
63
|
+
$VERSION = '3.69';
|
|
64
64
|
|
|
65
65
|
sub LensIDConv($$$);
|
|
66
66
|
sub ProcessNikonAVI($$$);
|
|
@@ -333,6 +333,7 @@ sub GetAFPointGrid($$;$);
|
|
|
333
333
|
'AA 48 88 A4 3C 3C D5 0E' => 'AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC',
|
|
334
334
|
'AB 44 5C 8E 34 3C D6 CE' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR',
|
|
335
335
|
'AB 44 5C 8E 34 3C D6 0E' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR',
|
|
336
|
+
'AB 44 5C 8E 34 3C D6 4E' => 'AF-P Nikkor 70-300mm f/4.5-5.6E ED VR', #IB
|
|
336
337
|
'AC 54 3C 3C 0C 0C D7 46' => 'AF-S Nikkor 28mm f/1.4E ED',
|
|
337
338
|
'AC 54 3C 3C 0C 0C D7 06' => 'AF-S Nikkor 28mm f/1.4E ED',
|
|
338
339
|
'AD 3C A0 A0 3C 3C D8 0E' => 'AF-S Nikkor 500mm f/5.6E PF ED VR',
|
|
@@ -35,7 +35,7 @@ use strict;
|
|
|
35
35
|
use vars qw($VERSION $AUTOLOAD %stdCase);
|
|
36
36
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
37
37
|
|
|
38
|
-
$VERSION = '1.
|
|
38
|
+
$VERSION = '1.51';
|
|
39
39
|
|
|
40
40
|
sub ProcessPNG_tEXt($$$);
|
|
41
41
|
sub ProcessPNG_iTXt($$$);
|
|
@@ -797,8 +797,8 @@ sub FoundPNG($$$$;$$$$)
|
|
|
797
797
|
my $tagName = $$tagInfo{Name};
|
|
798
798
|
my $processed;
|
|
799
799
|
if ($$tagInfo{SubDirectory}) {
|
|
800
|
-
if ($$et{OPTIONS}{Validate} and $$tagInfo{NonStandard}
|
|
801
|
-
$et->
|
|
800
|
+
if ($$et{OPTIONS}{Validate} and $$tagInfo{NonStandard}) {
|
|
801
|
+
$et->WarnOnce("Non-standard $$tagInfo{NonStandard} in PNG $tag chunk", 1);
|
|
802
802
|
}
|
|
803
803
|
my $subdir = $$tagInfo{SubDirectory};
|
|
804
804
|
my $dirName = $$subdir{DirName} || $tagName;
|
|
@@ -1049,7 +1049,7 @@ sub ProcessProfile($$$)
|
|
|
1049
1049
|
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr,
|
|
1050
1050
|
\&Image::ExifTool::WriteTIFF);
|
|
1051
1051
|
$$outBuff = $Image::ExifTool::exifAPP1hdr . $$outBuff if $$outBuff;
|
|
1052
|
-
DoneDir($et, 'IFD0', $outBuff);
|
|
1052
|
+
DoneDir($et, 'IFD0', $outBuff, $$tagInfo{NonStandard});
|
|
1053
1053
|
} else {
|
|
1054
1054
|
$processed = $et->ProcessTIFF(\%dirInfo);
|
|
1055
1055
|
}
|
|
@@ -1063,7 +1063,7 @@ sub ProcessProfile($$$)
|
|
|
1063
1063
|
return 1 unless $$editDirs{XMP};
|
|
1064
1064
|
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr);
|
|
1065
1065
|
$$outBuff and $$outBuff = $Image::ExifTool::xmpAPP1hdr . $$outBuff;
|
|
1066
|
-
DoneDir($et, 'XMP', $outBuff,
|
|
1066
|
+
DoneDir($et, 'XMP', $outBuff, $$tagInfo{NonStandard});
|
|
1067
1067
|
} else {
|
|
1068
1068
|
$processed = $et->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
1069
1069
|
}
|
|
@@ -1079,7 +1079,7 @@ sub ProcessProfile($$$)
|
|
|
1079
1079
|
}
|
|
1080
1080
|
$$outBuff = $et->WriteDirectory(\%dirInfo, $tagTablePtr,
|
|
1081
1081
|
\&Image::ExifTool::WriteTIFF);
|
|
1082
|
-
DoneDir($et, 'IFD0', $outBuff);
|
|
1082
|
+
DoneDir($et, 'IFD0', $outBuff, $$tagInfo{NonStandard});
|
|
1083
1083
|
} else {
|
|
1084
1084
|
$processed = $et->ProcessTIFF(\%dirInfo);
|
|
1085
1085
|
}
|
|
@@ -1245,11 +1245,10 @@ sub ProcessPNG($$)
|
|
|
1245
1245
|
$$et{ADD_PNG} = $et->GetNewTagInfoHash(
|
|
1246
1246
|
\%Image::ExifTool::PNG::Main,
|
|
1247
1247
|
\%Image::ExifTool::PNG::TextualData);
|
|
1248
|
-
# NOTE: PNGDoneTag
|
|
1249
|
-
#
|
|
1250
|
-
#
|
|
1248
|
+
# NOTE: PNGDoneTag is used to keep track of metadata added before the
|
|
1249
|
+
# PNG IEND chunk is encountered. Currently this is implemented only
|
|
1250
|
+
# for XMP, but may be implemented in the future for other types - PH
|
|
1251
1251
|
$$et{PNGDoneTag} = { };
|
|
1252
|
-
$$et{PNGDoneDir} = { };
|
|
1253
1252
|
# initialize with same directories, with PNG tags taking priority
|
|
1254
1253
|
$et->InitWriteDirs(\%pngMap,'PNG');
|
|
1255
1254
|
$editingXMP = $$et{EDIT_DIRS}{XMP};
|
|
@@ -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.15';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -981,7 +981,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
981
981
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
|
982
982
|
},{
|
|
983
983
|
Name => 'Tag2010i', # ?
|
|
984
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
|
984
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
|
|
985
985
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
|
986
986
|
},{
|
|
987
987
|
Name => 'Tag_0x2010',
|
|
@@ -1057,7 +1057,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1057
1057
|
# FocusMode for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
|
|
1058
1058
|
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
|
|
1059
1059
|
Name => 'FocusMode',
|
|
1060
|
-
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2)/)',
|
|
1060
|
+
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
|
|
1061
1061
|
Writable => 'int8u',
|
|
1062
1062
|
Priority => 0,
|
|
1063
1063
|
PrintConv => {
|
|
@@ -1089,7 +1089,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1089
1089
|
},
|
|
1090
1090
|
},{
|
|
1091
1091
|
Name => 'AFAreaModeSetting',
|
|
1092
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))/',
|
|
1092
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
|
|
1093
1093
|
Notes => 'NEX, ILCE and some DSC models',
|
|
1094
1094
|
RawConv => '$$self{AFAreaILCE} = $val',
|
|
1095
1095
|
DataMember => 'AFAreaILCE',
|
|
@@ -1125,7 +1125,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1125
1125
|
# observed values in range (0 0) to (640 480), with center (320 240) often seen
|
|
1126
1126
|
# for NEX-5R/6, positions appear to be in an 11x9 grid
|
|
1127
1127
|
Name => 'FlexibleSpotPosition',
|
|
1128
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))/',
|
|
1128
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
|
|
1129
1129
|
Writable => 'int16u',
|
|
1130
1130
|
Count => 2,
|
|
1131
1131
|
Notes => q{
|
|
@@ -1285,7 +1285,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1285
1285
|
# from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
|
|
1286
1286
|
0x2021 => { #JR
|
|
1287
1287
|
Name => 'AFTracking',
|
|
1288
|
-
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2)/)',
|
|
1288
|
+
Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
|
|
1289
1289
|
Writable => 'int8u',
|
|
1290
1290
|
PrintConv => {
|
|
1291
1291
|
0 => 'Off',
|
|
@@ -7835,7 +7835,7 @@ my %isoSetting2010 = (
|
|
|
7835
7835
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
7836
7836
|
0x0009 => { %releaseMode2 },
|
|
7837
7837
|
0x000a => [{
|
|
7838
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
|
7838
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
|
|
7839
7839
|
Name => 'ShotNumberSincePowerUp',
|
|
7840
7840
|
Format => 'int8u',
|
|
7841
7841
|
},{
|
|
@@ -8376,7 +8376,7 @@ my %isoSetting2010 = (
|
|
|
8376
8376
|
},
|
|
8377
8377
|
0x0342 => {
|
|
8378
8378
|
Name => 'LensZoomPosition',
|
|
8379
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|WX500))/',
|
|
8379
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
|
|
8380
8380
|
Format => 'int16u',
|
|
8381
8381
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
|
8382
8382
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
|
@@ -8386,6 +8386,13 @@ my %isoSetting2010 = (
|
|
|
8386
8386
|
Condition => '$$self{Model} =~ /^(ILCA-(68|77M2)|ILCE-(5000|5100|6000|7|7R|7S|QX1)|Lusso)\b/',
|
|
8387
8387
|
Format => 'int16s[16]',
|
|
8388
8388
|
},
|
|
8389
|
+
0x034e => {
|
|
8390
|
+
Name => 'LensZoomPosition',
|
|
8391
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6400|7M3|7RM3|7RM4))/',
|
|
8392
|
+
Format => 'int16u',
|
|
8393
|
+
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
|
8394
|
+
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
|
8395
|
+
},
|
|
8389
8396
|
0x0350 => {
|
|
8390
8397
|
Name => 'VignettingCorrParams',
|
|
8391
8398
|
Condition => '$$self{Model} =~ /^(ILCE-7M2)/',
|
|
@@ -3341,7 +3341,7 @@ my %tagLookup = (
|
|
|
3341
3341
|
'lenstype' => { 7 => 0xe2, 8 => 0xd, 9 => 0x1a7, 10 => 0xc, 11 => 0x111, 12 => 0xc, 13 => 0x14f, 14 => 0xd6, 15 => 0xde, 16 => 0xf6, 17 => 0xea, 18 => 0xff, 19 => [0xc,0x97], 20 => 0xe6, 21 => 0x153, 22 => 0xea, 23 => 0xe8, 24 => 0x127, 25 => 0x161, 26 => 0x166, 27 => 0x184, 28 => 0x112, 29 => 0x189, 34 => 0x16, 177 => 0x10c, 178 => 0x49bd, 215 => 0x83, 280 => 0x201, 293 => 0x16, 297 => 0x310, 299 => 0x303, 300 => 0x303, 302 => 0x51, 304 => 0x3405, 329 => 0x0, 330 => 0x0, 331 => 0x1, 332 => 0x1, 333 => 0x1, 335 => 0x0, 376 => 0xa003, 379 => 0x27, 400 => 0xb027, 412 => 0x1896, 414 => 0x18c2, 415 => 0x18f2, 416 => 0x17f6, 418 => 0x109, 419 => 0x109, 428 => 0x608, 429 => 0x62 },
|
|
3342
3342
|
'lenstype2' => { 389 => 0x3f7, 412 => 0x1893, 414 => 0x18bf, 415 => 0x18ef, 416 => 0x17f3, 418 => 0x107, 419 => 0x107, 428 => 0x605, 429 => 0x60 },
|
|
3343
3343
|
'lenstype3' => { 432 => 0x9 },
|
|
3344
|
-
'lenszoomposition' => { 425 => 0x19, 426 => 0x1e, 429 => [0x342,0x35a] },
|
|
3344
|
+
'lenszoomposition' => { 425 => 0x19, 426 => 0x1e, 429 => [0x342,0x34e,0x35a] },
|
|
3345
3345
|
'levelindicator' => { 310 => 0x15 },
|
|
3346
3346
|
'levelmeter' => { 362 => ['Lvlm','lvlm'] },
|
|
3347
3347
|
'levelorientation' => { 336 => 0x0 },
|
|
@@ -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 22996 tags, with 15044 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
|
|
@@ -17629,6 +17629,7 @@ RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350, ILCE-7/
|
|
|
17629
17629
|
100 DistortionCorrParams int16s[16]
|
|
17630
17630
|
834 LensZoomPosition int16u
|
|
17631
17631
|
842 VignettingCorrParams int16s[16]
|
|
17632
|
+
846 LensZoomPosition int16u
|
|
17632
17633
|
848 VignettingCorrParams int16s[16]
|
|
17633
17634
|
858 LensZoomPosition int16u
|
|
17634
17635
|
860 VignettingCorrParams int16s[16]
|
|
@@ -33589,20 +33590,20 @@ values, may created via the ExifTool configuration file.
|
|
|
33589
33590
|
GPS:GPSTimeStamp
|
|
33590
33591
|
GPSDestLatitude GPS:GPSDestLatitude no
|
|
33591
33592
|
GPS:GPSDestLatitudeRef
|
|
33592
|
-
GPSDestLatitudeRef XMP:GPSDestLatitude
|
|
33593
|
+
GPSDestLatitudeRef XMP-exif:GPSDestLatitude no
|
|
33593
33594
|
GPSDestLongitude GPS:GPSDestLongitude no
|
|
33594
33595
|
GPS:GPSDestLongitudeRef
|
|
33595
|
-
GPSDestLongitudeRef XMP:GPSDestLongitude
|
|
33596
|
+
GPSDestLongitudeRef XMP-exif:GPSDestLongitude no
|
|
33596
33597
|
GPSLatitude GPS:GPSLatitude no
|
|
33597
33598
|
GPS:GPSLatitudeRef
|
|
33598
33599
|
GPSLatitude QuickTime:GPSCoordinates no
|
|
33599
33600
|
GPSLatitude QuickTime:LocationInformation no
|
|
33600
|
-
GPSLatitudeRef XMP:GPSLatitude
|
|
33601
|
+
GPSLatitudeRef XMP-exif:GPSLatitude no
|
|
33601
33602
|
GPSLongitude GPS:GPSLongitude no
|
|
33602
33603
|
GPS:GPSLongitudeRef
|
|
33603
33604
|
GPSLongitude QuickTime:GPSCoordinates no
|
|
33604
33605
|
GPSLongitude QuickTime:LocationInformation no
|
|
33605
|
-
GPSLongitudeRef XMP:GPSLongitude
|
|
33606
|
+
GPSLongitudeRef XMP-exif:GPSLongitude no
|
|
33606
33607
|
GPSPosition GPSLatitude no
|
|
33607
33608
|
GPSLongitude
|
|
33608
33609
|
HyperfocalDistance FocalLength no
|
|
@@ -130,7 +130,6 @@ sub Add_iCCP($$)
|
|
|
130
130
|
if (defined $buff and length $buff and WriteProfile($outfile, 'icm', \$buff)) {
|
|
131
131
|
$et->VPrint(0, "Created ICC profile\n");
|
|
132
132
|
delete $$et{ADD_DIRS}{ICC_Profile}; # don't add it again
|
|
133
|
-
$$et{PNGDoneDir}{ICC_Profile} = 2;
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
135
|
return 1;
|
|
@@ -144,14 +143,15 @@ sub Add_iCCP($$)
|
|
|
144
143
|
sub DoneDir($$$;$)
|
|
145
144
|
{
|
|
146
145
|
my ($et, $dir, $outBuff, $nonStandard) = @_;
|
|
147
|
-
$
|
|
146
|
+
my $saveDir = $dir;
|
|
147
|
+
$dir = 'EXIF' if $dir eq 'IFD0';
|
|
148
148
|
# don't add this directory again unless this is in a non-standard location
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
if (not $nonStandard) {
|
|
150
|
+
delete $$et{ADD_DIRS}{$dir};
|
|
151
|
+
delete $$et{ADD_DIRS}{IFD0} if $dir eq 'EXIF';
|
|
152
|
+
} elsif ($$et{DEL_GROUP}{$dir} or $$et{DEL_GROUP}{$saveDir}) {
|
|
151
153
|
$et->VPrint(0," Deleting non-standard $dir\n");
|
|
152
154
|
$$outBuff = '';
|
|
153
|
-
} elsif (not $$et{PNGDoneDir}{$dir}) {
|
|
154
|
-
$$et{PNGDoneDir}{$dir} = 1; # set flag indicating the directory exists
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
|
|
@@ -341,8 +341,6 @@ sub AddChunks($$;@)
|
|
|
341
341
|
next;
|
|
342
342
|
}
|
|
343
343
|
delete $$et{ADD_DIRS}{$dir}; # don't add again
|
|
344
|
-
# keep track of the directories that we added
|
|
345
|
-
$$et{PNGDoneDir}{$dir} = 2 if defined $buff and length $buff;
|
|
346
344
|
}
|
|
347
345
|
return not $err;
|
|
348
346
|
}
|
|
@@ -3547,10 +3547,11 @@ sub GetNewValueHash($$;$$$$)
|
|
|
3547
3547
|
|
|
3548
3548
|
if ($writeGroup) {
|
|
3549
3549
|
# find the new value in the list with the specified write group
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
$$nvHash{WriteGroup}
|
|
3553
|
-
|
|
3550
|
+
while ($nvHash and $$nvHash{WriteGroup} ne $writeGroup) {
|
|
3551
|
+
# QuickTime and All are special cases because all group1 tags may be updated at once
|
|
3552
|
+
last if $$nvHash{WriteGroup} =~ /^(QuickTime|All)$/;
|
|
3553
|
+
# replace existing entry if WriteGroup is 'All' (avoids confusion of forum10349)
|
|
3554
|
+
last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All';
|
|
3554
3555
|
$nvHash = $$nvHash{Next};
|
|
3555
3556
|
}
|
|
3556
3557
|
}
|
|
@@ -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.25';
|
|
53
53
|
@ISA = qw(Exporter);
|
|
54
54
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
|
55
55
|
|
|
@@ -2236,7 +2236,7 @@ my %sPantryItem = (
|
|
|
2236
2236
|
# get latitude/logitude reference from XMP lat/long tags
|
|
2237
2237
|
# (used to set EXIF GPS position from XMP tags)
|
|
2238
2238
|
GPSLatitudeRef => {
|
|
2239
|
-
Require => 'XMP:GPSLatitude',
|
|
2239
|
+
Require => 'XMP-exif:GPSLatitude',
|
|
2240
2240
|
# Note: Do not Inihibit based on EXIF:GPSLatitudeRef (see forum10192)
|
|
2241
2241
|
ValueConv => q{
|
|
2242
2242
|
IsFloat($val[0]) and return $val[0] < 0 ? "S" : "N";
|
|
@@ -2246,7 +2246,7 @@ my %sPantryItem = (
|
|
|
2246
2246
|
PrintConv => { N => 'North', S => 'South' },
|
|
2247
2247
|
},
|
|
2248
2248
|
GPSLongitudeRef => {
|
|
2249
|
-
Require => 'XMP:GPSLongitude',
|
|
2249
|
+
Require => 'XMP-exif:GPSLongitude',
|
|
2250
2250
|
ValueConv => q{
|
|
2251
2251
|
IsFloat($val[0]) and return $val[0] < 0 ? "W" : "E";
|
|
2252
2252
|
$val[0] =~ /^.*([EW])/;
|
|
@@ -2255,7 +2255,7 @@ my %sPantryItem = (
|
|
|
2255
2255
|
PrintConv => { E => 'East', W => 'West' },
|
|
2256
2256
|
},
|
|
2257
2257
|
GPSDestLatitudeRef => {
|
|
2258
|
-
Require => 'XMP:GPSDestLatitude',
|
|
2258
|
+
Require => 'XMP-exif:GPSDestLatitude',
|
|
2259
2259
|
ValueConv => q{
|
|
2260
2260
|
IsFloat($val[0]) and return $val[0] < 0 ? "S" : "N";
|
|
2261
2261
|
$val[0] =~ /^.*([NS])/;
|
|
@@ -2264,7 +2264,7 @@ my %sPantryItem = (
|
|
|
2264
2264
|
PrintConv => { N => 'North', S => 'South' },
|
|
2265
2265
|
},
|
|
2266
2266
|
GPSDestLongitudeRef => {
|
|
2267
|
-
Require => 'XMP:GPSDestLongitude',
|
|
2267
|
+
Require => 'XMP-exif:GPSDestLongitude',
|
|
2268
2268
|
ValueConv => q{
|
|
2269
2269
|
IsFloat($val[0]) and return $val[0] < 0 ? "W" : "E";
|
|
2270
2270
|
$val[0] =~ /^.*([EW])/;
|
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.61.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-08-
|
|
12
|
+
date: 2019-08-07 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: exiftool
|