exiftool_vendored 11.93.0 → 11.94.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +14 -1
- 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 +10 -4
- data/bin/lib/Image/ExifTool.pod +7 -7
- data/bin/lib/Image/ExifTool/Exif.pm +10 -4
- data/bin/lib/Image/ExifTool/GoPro.pm +8 -3
- data/bin/lib/Image/ExifTool/HtmlDump.pm +6 -4
- data/bin/lib/Image/ExifTool/Nikon.pm +31 -6
- data/bin/lib/Image/ExifTool/PDF.pm +6 -3
- data/bin/lib/Image/ExifTool/Pentax.pm +9 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +12 -2
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +2 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +5 -5
- data/bin/lib/Image/ExifTool/TagNames.pod +6 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8d1a45ceed2fce06b008315885667eccd1652c9
|
4
|
+
data.tar.gz: 1d0c0e626deab2d61cd1e3c29e1314ac1817b342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0699566c7325efa24c989da7db409805a24f487a716ca96a0e4146858f667c72e0b77a429dcad2a06e0e790f5b74a800dc1cf2d576a365fb355c93ede814bba
|
7
|
+
data.tar.gz: aa2d82f8be53730bb76ae38d68fc311c4ea0b68ba138e1f14afd98e2cbf2a801a5806a410516e910d7652899769b7d1fb62044d1ed18a42414de50a1e4f92564
|
data/bin/Changes
CHANGED
@@ -7,6 +7,19 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 11.85. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Apr. 17, 2020 - Version 11.94
|
11
|
+
|
12
|
+
- Added a new Sony LensType (thanks Jos Roost)
|
13
|
+
- Added additional Validate test for overlapping EXIF values
|
14
|
+
- Added a new Nikon LensID
|
15
|
+
- Added support for QuickTime ItemList:GPSCoordinates
|
16
|
+
- Decode a few more Nikon tags (thanks Warren Hatch)
|
17
|
+
- Decode Pentax ShutterType
|
18
|
+
- Changed color of locked highlighted selection in -htmlDump output
|
19
|
+
- Fixed problem reading PDF files written by Microsoft Print-to-PDF
|
20
|
+
- Fixed problem where -X output would produce invalid XML for MP4 files
|
21
|
+
containing an HTCTrack
|
22
|
+
|
10
23
|
Apr. 3, 2020 - Version 11.93
|
11
24
|
|
12
25
|
- Added new config file to the distribution for writing Pix4D XMP-Camera tags
|
@@ -24,7 +37,7 @@ Apr. 3, 2020 - Version 11.93
|
|
24
37
|
invalid header in corrupt files
|
25
38
|
- API Changes:
|
26
39
|
- Enhanced UserParam option to allow parameters to be extracted as if
|
27
|
-
they were
|
40
|
+
they were normal tags
|
28
41
|
|
29
42
|
Mar. 19, 2020 - Version 11.92
|
30
43
|
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -105,8 +105,8 @@ your home directory, then you would type the following commands in a
|
|
105
105
|
terminal window to extract and run ExifTool:
|
106
106
|
|
107
107
|
cd ~/Desktop
|
108
|
-
gzip -dc Image-ExifTool-11.
|
109
|
-
cd Image-ExifTool-11.
|
108
|
+
gzip -dc Image-ExifTool-11.94.tar.gz | tar -xf -
|
109
|
+
cd Image-ExifTool-11.94
|
110
110
|
./exiftool t/images/ExifTool.jpg
|
111
111
|
|
112
112
|
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.94';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -5210,7 +5210,7 @@ with this command:
|
|
5210
5210
|
|
5211
5211
|
produces output like this:
|
5212
5212
|
|
5213
|
-
-- Generated by ExifTool 11.
|
5213
|
+
-- Generated by ExifTool 11.94 --
|
5214
5214
|
File: a.jpg - 2003:10:31 15:44:19
|
5215
5215
|
(f/5.6, 1/60s, ISO 100)
|
5216
5216
|
File: b.jpg - 2006:05:23 11:57:38
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
30
30
|
|
31
|
-
$VERSION = '11.
|
31
|
+
$VERSION = '11.94';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
@@ -1218,7 +1218,8 @@ my %systemTagsNotes = (
|
|
1218
1218
|
creation date/time is preserved by default when writing if Win32API::File
|
1219
1219
|
and Win32::API are available. On Mac, this tag is extracted only if it or
|
1220
1220
|
the MacOS group is specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is
|
1221
|
-
set to 2 or higher. Requires "setfile" for writing on Mac
|
1221
|
+
set to 2 or higher. Requires "setfile" for writing on Mac, which may be
|
1222
|
+
installed by typing C<xcode-select --install> in the Terminal
|
1222
1223
|
},
|
1223
1224
|
Groups => { 1 => 'System', 2 => 'Time' },
|
1224
1225
|
Writable => 1,
|
@@ -2695,10 +2696,15 @@ sub ExtractInfo($;@)
|
|
2695
2696
|
|
2696
2697
|
# add user-defined parameters that ended with '!'
|
2697
2698
|
if (%{$$options{UserParam}}) {
|
2698
|
-
$
|
2699
|
+
my $doMsg = $$options{Verbose};
|
2699
2700
|
my $table = GetTagTable('Image::ExifTool::UserParam');
|
2700
2701
|
foreach (sort keys %{$$options{UserParam}}) {
|
2701
|
-
|
2702
|
+
next unless /#$/;
|
2703
|
+
if ($doMsg) {
|
2704
|
+
$self->VPrint(0, "UserParam tags:\n");
|
2705
|
+
undef $doMsg;
|
2706
|
+
}
|
2707
|
+
$self->HandleTag($table, $_, $$options{UserParam}{$_});
|
2702
2708
|
}
|
2703
2709
|
}
|
2704
2710
|
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -2244,7 +2244,7 @@ MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR,
|
|
2244
2244
|
Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, PhotoCD,
|
2245
2245
|
PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC,
|
2246
2246
|
RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora, Torrent,
|
2247
|
-
Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP
|
2247
|
+
Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
|
2248
2248
|
|
2249
2249
|
=item Family 1 (Specific Location):
|
2250
2250
|
|
@@ -2273,12 +2273,12 @@ Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor,
|
|
2273
2273
|
Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5,
|
2274
2274
|
Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#,
|
2275
2275
|
SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD,
|
2276
|
-
System, Theora, Torrent, Track#, UserData, VCalendar, VCard,
|
2277
|
-
Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
|
2278
|
-
XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage,
|
2279
|
-
XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album,
|
2280
|
-
XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc,
|
2281
|
-
XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX,
|
2276
|
+
System, Theora, Torrent, Track#, UserData, UserParam, VCalendar, VCard,
|
2277
|
+
Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
|
2278
|
+
XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage,
|
2279
|
+
XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album,
|
2280
|
+
XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc,
|
2281
|
+
XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX,
|
2282
2282
|
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics,
|
2283
2283
|
XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
|
2284
2284
|
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech,
|
@@ -5823,7 +5823,7 @@ sub ProcessExif($$$)
|
|
5823
5823
|
$$et{Compression} = $$et{SubfileType} = '';
|
5824
5824
|
|
5825
5825
|
# loop through all entries in an EXIF directory (IFD)
|
5826
|
-
my ($index, $valEnd, $offList, $offHash, $mapFmt);
|
5826
|
+
my ($index, $valEnd, $offList, $offHash, $mapFmt, @valPos);
|
5827
5827
|
$mapFmt = $$tagTablePtr{VARS}{MAP_FORMAT} if $$tagTablePtr{VARS};
|
5828
5828
|
|
5829
5829
|
my ($warnCount, $lastID) = (0, -1);
|
@@ -5883,17 +5883,23 @@ sub ProcessExif($$$)
|
|
5883
5883
|
}
|
5884
5884
|
$valuePtr = Get32u($dataPt, $valuePtr);
|
5885
5885
|
if ($validate and not $inMakerNotes) {
|
5886
|
-
$
|
5886
|
+
my $tagName = TagName($tagID, $tagInfo);
|
5887
|
+
$et->Warn("Odd offset for $dir $tagName", 1) if $valuePtr & 0x01;
|
5887
5888
|
if ($valuePtr < 8 || ($valuePtr + $size > length($$dataPt) and
|
5888
5889
|
$valuePtr + $size > $$et{VALUE}{FileSize}))
|
5889
5890
|
{
|
5890
|
-
$et->Warn(
|
5891
|
+
$et->Warn("Invalid offset for $dir $tagName");
|
5891
5892
|
++$warnCount;
|
5892
5893
|
next;
|
5893
5894
|
}
|
5894
5895
|
if ($valuePtr + $size > $dirStart + $dataPos and $valuePtr < $dirEnd + $dataPos + 4) {
|
5895
|
-
$et->Warn(
|
5896
|
+
$et->Warn("Value for $dir $tagName overlaps IFD");
|
5896
5897
|
}
|
5898
|
+
foreach (@valPos) {
|
5899
|
+
next if $$_[0] >= $valuePtr + $size or $$_[0] + $$_[1] <= $valuePtr;
|
5900
|
+
$et->Warn("Value for $dir $tagName overlaps $$_[2]");
|
5901
|
+
}
|
5902
|
+
push @valPos, [ $valuePtr, $size, $tagName ];
|
5897
5903
|
}
|
5898
5904
|
# fix valuePtr if necessary
|
5899
5905
|
if ($$dirInfo{FixOffsets}) {
|
@@ -106,7 +106,7 @@ my %addUnits = (
|
|
106
106
|
# BRID (GPMF) - seen: 0 (fmt B)
|
107
107
|
# BROD (GPMF) - seen: 'ASK','' (fmt c)
|
108
108
|
CASN => 'CameraSerialNumber', #PH (GPMF - seen: 'C3221324545448', fmt c)
|
109
|
-
# CINF (GPMF) - seen: 0x67376be7709bc8876a8baf3940908618 (fmt B) (Camera INFormation?)
|
109
|
+
# CINF (GPMF) - seen: 0x67376be7709bc8876a8baf3940908618, 0xe230988539b30cf5f016627ae8fc5395 (fmt B) (Camera INFormation?)
|
110
110
|
# CMOD (GPMF) - seen: 12,13,17 [13 time-laps video, 17 JPEG] (fmt B)
|
111
111
|
CYTS => { #PH (Karma)
|
112
112
|
Name => 'CoyoteStatus',
|
@@ -215,7 +215,7 @@ my %addUnits = (
|
|
215
215
|
RawConv => '$val', # necessary to use scaled value instead of raw data as subdir data
|
216
216
|
SubDirectory => { TagTable => 'Image::ExifTool::GoPro::KBAT' },
|
217
217
|
},
|
218
|
-
# LINF (GPMF) - seen: LAJ7061916601668 (fmt c) (Lens INFormation?)
|
218
|
+
# LINF (GPMF) - seen: LAJ7061916601668, C3341326002180 (fmt c) (Lens INFormation?)
|
219
219
|
LNED => { #PH (Karma)
|
220
220
|
Name => 'LocalPositionNED',
|
221
221
|
# UNIT=s,m,m,m,m/s,m/s,m/s
|
@@ -243,8 +243,9 @@ my %addUnits = (
|
|
243
243
|
PHDR => 'HDRSetting', #PH (APP6 - seen: 0)
|
244
244
|
PIMN => 'AutoISOMin', #PH (GPMF - seen: 100, fmt L)
|
245
245
|
PIMX => 'AutoISOMax', #PH (GPMF - seen: 1600, fmt L)
|
246
|
-
# PRAW (APP6) - seen: 0, 'N' (fmt c)
|
246
|
+
# PRAW (APP6) - seen: 0, 'N', 'Y' (fmt c)
|
247
247
|
PRES => 'PhotoResolution', #PH (APP6 - seen: '12MP_W')
|
248
|
+
# PRJT (APP6) - seen: 'GPRO' (fmt F, Hero8)
|
248
249
|
PRTN => { #PH (GPMF - seen: 'N', fmt c)
|
249
250
|
Name => 'ProTune',
|
250
251
|
PrintConv => {
|
@@ -256,6 +257,7 @@ my %addUnits = (
|
|
256
257
|
PTEV => 'ExposureCompensation', #PH (GPMF - seen: '0.0', fmt c)
|
257
258
|
PTSH => 'Sharpness', #PH (GPMF - seen: 'HIGH', fmt c)
|
258
259
|
PTWB => 'WhiteBalance', #PH (GPMF - seen: 'AUTO', fmt c)
|
260
|
+
# PVUL (APP6) - seen: 'F' (fmt c, Hero8)
|
259
261
|
RATE => 'Rate', #PH (GPMF - seen: '0_5SEC', fmt c; APP6 - seen: '4_1SEC')
|
260
262
|
RMRK => { #2 (gpmd)
|
261
263
|
Name => 'Comments',
|
@@ -293,6 +295,7 @@ my %addUnits = (
|
|
293
295
|
ValueConv => '$self->Decode($val, "Latin")',
|
294
296
|
},
|
295
297
|
# SMTR (GPMF) - seen: 'N' (fmt c)
|
298
|
+
# SOFF (APP6) - seen: 0 (fmt L, Hero8)
|
296
299
|
STMP => { #1 (gpmd)
|
297
300
|
Name => 'TimeStamp',
|
298
301
|
ValueConv => '$val / 1e6',
|
@@ -335,6 +338,7 @@ my %addUnits = (
|
|
335
338
|
Unknown => 1,
|
336
339
|
ValueConv => '$self->Decode($val, "Latin")',
|
337
340
|
},
|
341
|
+
# VERS (APP6) - seen: '7 6 4' (fmt B, Hero8)
|
338
342
|
VFOV => { #PH (GPMF - seen: 'W', fmt c)
|
339
343
|
Name => 'FieldOfView',
|
340
344
|
PrintConv => {
|
@@ -356,6 +360,7 @@ my %addUnits = (
|
|
356
360
|
Name => 'WhiteBalanceRGB',
|
357
361
|
Binary => 1,
|
358
362
|
},
|
363
|
+
# ZFOV (APP6) - seen: 148.34 (fmt f, Hero8)
|
359
364
|
);
|
360
365
|
|
361
366
|
# GoPro GPS5 tags (ref 2) (Hero5,Hero6)
|
@@ -13,7 +13,7 @@ use vars qw($VERSION);
|
|
13
13
|
use Image::ExifTool; # only for FinishTiffDump()
|
14
14
|
use Image::ExifTool::HTML qw(EscapeHTML);
|
15
15
|
|
16
|
-
$VERSION = '1.
|
16
|
+
$VERSION = '1.38';
|
17
17
|
|
18
18
|
sub DumpTable($$$;$$$$$$);
|
19
19
|
sub Open($$$;@);
|
@@ -119,10 +119,12 @@ function GetElementsByClass(classname, tagname) {
|
|
119
119
|
// click mouse
|
120
120
|
function doClick(e)
|
121
121
|
{
|
122
|
-
clicked
|
123
|
-
if (clicked) {
|
122
|
+
if (!clicked) {
|
124
123
|
firstOutEvt = lastInEvt = undefined;
|
124
|
+
high(e, 2);
|
125
|
+
clicked = 1;
|
125
126
|
} else {
|
127
|
+
clicked = 0;
|
126
128
|
if (firstOutEvt) high(firstOutEvt, 0);
|
127
129
|
if (lastInEvt) high(lastInEvt, 1);
|
128
130
|
}
|
@@ -228,7 +230,7 @@ function high(e,on) {
|
|
228
230
|
}
|
229
231
|
for (var i=0; i<hlist.length; ++i) {
|
230
232
|
for (var j=0; j<hlist[i].length; ++j) {
|
231
|
-
hlist[i][j].style.background = '#ffcc99';
|
233
|
+
hlist[i][j].style.background = on == 2 ? '#ffbbbb' : '#ffcc99';
|
232
234
|
}
|
233
235
|
}
|
234
236
|
}
|
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
62
62
|
use Image::ExifTool::Exif;
|
63
63
|
use Image::ExifTool::GPS;
|
64
64
|
|
65
|
-
$VERSION = '3.
|
65
|
+
$VERSION = '3.81';
|
66
66
|
|
67
67
|
sub LensIDConv($$$);
|
68
68
|
sub ProcessNikonAVI($$$);
|
@@ -544,6 +544,7 @@ sub GetAFPointGrid($$;$);
|
|
544
544
|
'07 46 2B 44 24 30 03 02' => 'Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical (IF) (A05)',
|
545
545
|
'CB 3C 2B 44 24 31 DF 46' => 'Tamron 17-35mm f/2.8-4 Di OSD (A037)', #IB
|
546
546
|
'00 53 2B 50 24 24 00 06' => 'Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16)', #PH
|
547
|
+
'7C 54 2B 50 24 24 00 06' => 'Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16)', #PH (https://github.com/Exiv2/exiv2/issues/1155)
|
547
548
|
'00 54 2B 50 24 24 00 06' => 'Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)',
|
548
549
|
'FB 54 2B 50 24 24 84 06' => 'Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical (IF) (A16NII)', #https://exiftool.org/forum/index.php/topic,3787.0.html
|
549
550
|
'F3 54 2B 50 24 24 84 0E' => 'Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)',
|
@@ -1692,10 +1693,7 @@ my %binaryDataAttrs = (
|
|
1692
1693
|
SubDirectory => {
|
1693
1694
|
TagTable => 'Image::ExifTool::Nikon::ShotInfoD850',
|
1694
1695
|
DecryptStart => 4,
|
1695
|
-
|
1696
|
-
DecryptLen => 0x58,
|
1697
|
-
# then decrypt through to the end of the custom settings
|
1698
|
-
DecryptMore => 'Get32u(\$data, 0x58) + 90 + 4',
|
1696
|
+
DecryptLen => 0x2f07,
|
1699
1697
|
ByteOrder => 'LittleEndian',
|
1700
1698
|
},
|
1701
1699
|
},
|
@@ -6693,7 +6691,34 @@ my %nikonFocalConversions = (
|
|
6693
6691
|
TagTable => 'Image::ExifTool::NikonCustom::SettingsD850',
|
6694
6692
|
},
|
6695
6693
|
},
|
6696
|
-
|
6694
|
+
0x2efb => { #28
|
6695
|
+
Name => 'RollAngle',
|
6696
|
+
Format => 'fixed32u',
|
6697
|
+
Notes => 'converted to degrees of clockwise camera roll',
|
6698
|
+
ValueConv => '$val <= 180 ? $val : $val - 360',
|
6699
|
+
ValueConvInv => '$val >= 0 ? $val : $val + 360',
|
6700
|
+
PrintConv => 'sprintf("%.1f", $val)',
|
6701
|
+
PrintConvInv => '$val',
|
6702
|
+
},
|
6703
|
+
0x2eff => { #28
|
6704
|
+
Name => 'PitchAngle',
|
6705
|
+
Format => 'fixed32u',
|
6706
|
+
Notes => 'converted to degrees of upward camera tilt',
|
6707
|
+
ValueConv => '$val <= 180 ? $val : $val - 360',
|
6708
|
+
ValueConvInv => '$val >= 0 ? $val : $val + 360',
|
6709
|
+
PrintConv => 'sprintf("%.1f", $val)',
|
6710
|
+
PrintConvInv => '$val',
|
6711
|
+
},
|
6712
|
+
0x2f03 => { #28
|
6713
|
+
Name => 'YawAngle',
|
6714
|
+
Format => 'fixed32u',
|
6715
|
+
Notes => 'the camera yaw angle when shooting in portrait orientation',
|
6716
|
+
ValueConv => '$val <= 180 ? $val : $val - 360',
|
6717
|
+
ValueConvInv => '$val >= 0 ? $val : $val + 360',
|
6718
|
+
PrintConv => 'sprintf("%.1f", $val)',
|
6719
|
+
PrintConvInv => '$val',
|
6720
|
+
},
|
6721
|
+
# note: DecryptLen currently set to 0x2f07
|
6697
6722
|
);
|
6698
6723
|
# shot information for the D4 firmware 1.00g (ref PH)
|
6699
6724
|
%Image::ExifTool::Nikon::ShotInfoD4 = (
|
@@ -21,7 +21,7 @@ use vars qw($VERSION $AUTOLOAD $lastFetched);
|
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
22
22
|
require Exporter;
|
23
23
|
|
24
|
-
$VERSION = '1.
|
24
|
+
$VERSION = '1.50';
|
25
25
|
|
26
26
|
sub FetchObject($$$$);
|
27
27
|
sub ExtractObject($$;$$);
|
@@ -703,9 +703,11 @@ sub CheckObject($$$$)
|
|
703
703
|
my $raf = $$et{RAF};
|
704
704
|
$raf->Seek($offset+$$et{PDFBase}, 0) or $et->Warn("Bad $tag offset"), return undef;
|
705
705
|
# verify that we are reading the expected object
|
706
|
-
$raf->ReadLine($data) or $et->Warn("Error reading $tag data"), return undef;
|
707
706
|
($obj = $ref) =~ s/R/obj/;
|
708
|
-
|
707
|
+
for (;;) {
|
708
|
+
$raf->ReadLine($data) or $et->Warn("Error reading $tag data"), return undef;
|
709
|
+
last if $data =~ s/^$obj//;
|
710
|
+
next if $data =~ /^\s+$/; # keep reading if this was a blank line
|
709
711
|
# handle cases where other whitespace characters are used in the object ID string
|
710
712
|
while ($data =~ /^\d+(\s+\d+)?\s*$/) {
|
711
713
|
$raf->ReadLine($dat);
|
@@ -717,6 +719,7 @@ sub CheckObject($$$$)
|
|
717
719
|
$et->Warn("$tag object ($obj) not found at offset $offset");
|
718
720
|
return undef;
|
719
721
|
}
|
722
|
+
last;
|
720
723
|
}
|
721
724
|
# read the first line of data from the object (ignoring blank lines and comments)
|
722
725
|
for (;;) {
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
58
58
|
use Image::ExifTool::GPS;
|
59
59
|
use Image::ExifTool::HP;
|
60
60
|
|
61
|
-
$VERSION = '3.
|
61
|
+
$VERSION = '3.31';
|
62
62
|
|
63
63
|
sub CryptShutterCount($$);
|
64
64
|
sub PrintFilter($$$);
|
@@ -2552,6 +2552,14 @@ my %binaryDataAttrs = (
|
|
2552
2552
|
},
|
2553
2553
|
# 0x0086 - int8u: 0, 111[Sport,Pet] (Q) - related to Tracking FocusMode?
|
2554
2554
|
# 0x0087 - int8u: 0 (Q)
|
2555
|
+
0x0087 => { #PH
|
2556
|
+
Name => 'ShutterType',
|
2557
|
+
Writable => 'int8u',
|
2558
|
+
PrintConv => {
|
2559
|
+
0 => 'Normal', # ('Mechanical' if the camera has a mechanical shutter)
|
2560
|
+
1 => 'Electronic', # (KP)
|
2561
|
+
},
|
2562
|
+
},
|
2555
2563
|
0x0088 => { #PH
|
2556
2564
|
Name => 'NeutralDensityFilter',
|
2557
2565
|
Writable => 'int8u',
|
@@ -46,7 +46,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
46
46
|
use Image::ExifTool::Exif;
|
47
47
|
use Image::ExifTool::GPS;
|
48
48
|
|
49
|
-
$VERSION = '2.
|
49
|
+
$VERSION = '2.46';
|
50
50
|
|
51
51
|
sub ProcessMOV($$;$);
|
52
52
|
sub ProcessKeys($$$);
|
@@ -5896,6 +5896,14 @@ my %eeBox = (
|
|
5896
5896
|
GUID => 'GUID',
|
5897
5897
|
AACR => { Name => 'Unknown_AACR', Unknown => 1 }, # eg: "CR!1T1H1QH6WX7T714G2BMFX3E9MC4S"
|
5898
5898
|
# ausr - 30 bytes (User Alias?)
|
5899
|
+
"\xa9xyz" => { #PH (written by Google Photos)
|
5900
|
+
Name => 'GPSCoordinates',
|
5901
|
+
Groups => { 2 => 'Location' },
|
5902
|
+
ValueConv => \&ConvertISO6709,
|
5903
|
+
ValueConvInv => \&ConvInvISO6709,
|
5904
|
+
PrintConv => \&PrintGPSCoordinates,
|
5905
|
+
PrintConvInv => \&PrintInvGPSCoordinates,
|
5906
|
+
},
|
5899
5907
|
);
|
5900
5908
|
|
5901
5909
|
# tag decoded from timed face records
|
@@ -8953,7 +8961,9 @@ ItemID: foreach $id (keys %$items) {
|
|
8953
8961
|
SetByteOrder('II');
|
8954
8962
|
}
|
8955
8963
|
my $oldGroup1 = $$et{SET_GROUP1};
|
8956
|
-
if ($$tagInfo{
|
8964
|
+
if ($$tagInfo{SubDirectory} and $$tagInfo{SubDirectory}{TagTable} and
|
8965
|
+
$$tagInfo{SubDirectory}{TagTable} eq 'Image::ExifTool::QuickTime::Track')
|
8966
|
+
{
|
8957
8967
|
$track or $track = 0;
|
8958
8968
|
$$et{SET_GROUP1} = 'Track' . (++$track);
|
8959
8969
|
}
|
@@ -976,7 +976,7 @@ my %formatMinMax = (
|
|
976
976
|
'0x0a30-name' => 'EmbeddedVideoType', # ("MotionPhoto_Data")
|
977
977
|
'0x0a30' => { Name => 'EmbeddedVideoFile', Groups => { 2 => 'Video' }, Binary => 1 }, #forum7161
|
978
978
|
# 0x0aa1-name - seen 'MCC_Data'
|
979
|
-
# 0x0aa1 - seen '234','222'
|
979
|
+
# 0x0aa1 - seen '234','222','429'
|
980
980
|
# 0x0ab0-name - seen 'DualShot_Meta_Info'
|
981
981
|
'0x0ab1-name' => 'DepthMapName', # seen 'DualShot_DepthMap_1' (SM-N950U)
|
982
982
|
'0x0ab1' => { Name => 'DepthMapData', Binary => 1 },
|
@@ -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.23';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -179,6 +179,7 @@ sub PrintInvLensSpec($;$$);
|
|
179
179
|
49459 => 'Tamron 35mm F2.8 Di III OSD M1:2', #IB (Model F053)
|
180
180
|
49460 => 'Tamron 24mm F2.8 Di III OSD M1:2', #JR (Model F051)
|
181
181
|
49461 => 'Tamron 20mm F2.8 Di III OSD M1:2', #JR (Model F050)
|
182
|
+
49462 => 'Tamron 70-180mm F2.8 Di III VXD', #JR (Model A056)
|
182
183
|
|
183
184
|
49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
|
184
185
|
49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
|
@@ -2824,7 +2824,7 @@ my %tagLookup = (
|
|
2824
2824
|
'gpsaltitude' => { 127 => 0x6, 156 => 'Altitude', 468 => 'GPSAltitude' },
|
2825
2825
|
'gpsaltituderef' => { 127 => 0x5, 468 => 'GPSAltitudeRef' },
|
2826
2826
|
'gpsareainformation' => { 127 => 0x1c, 468 => 'GPSAreaInformation' },
|
2827
|
-
'gpscoordinates' => { 360 => 'location.ISO6709', 366 => "\xa9xyz" },
|
2827
|
+
'gpscoordinates' => { 358 => "\xa9xyz", 360 => 'location.ISO6709', 366 => "\xa9xyz" },
|
2828
2828
|
'gpsdatestamp' => { 127 => 0x1d },
|
2829
2829
|
'gpsdatetime' => { 156 => 'DateTime', 468 => 'GPSTimeStamp' },
|
2830
2830
|
'gpsdestbearing' => { 127 => 0x18, 156 => 'Bearing', 468 => 'GPSDestBearing' },
|
@@ -4524,7 +4524,7 @@ my %tagLookup = (
|
|
4524
4524
|
'picturewizardsharpness' => { 379 => 0x3 },
|
4525
4525
|
'pipelineversion' => { 172 => 'PipelineVersion' },
|
4526
4526
|
'pitch' => { 112 => 0x6, 267 => '4.1', 279 => '4.1', 366 => ['ptch',"\xa9fpt"] },
|
4527
|
-
'pitchangle' => { 237 => 0x350f, 238 => 0x2c28, 246 => 0x36f8, 283 => 0x904, 306 => 0x91, 340 => 0x2, 378 => 0x1 },
|
4527
|
+
'pitchangle' => { 237 => 0x350f, 238 => 0x2c28, 246 => 0x36f8, 247 => 0x2eff, 283 => 0x904, 306 => 0x91, 340 => 0x2, 378 => 0x1 },
|
4528
4528
|
'pitchshift' => { 360 => 'player.movie.audio.pitchshift' },
|
4529
4529
|
'pixelaspectratio' => { 359 => 'pasp' },
|
4530
4530
|
'pixelclockfrequency' => { 134 => 0x40b },
|
@@ -5069,7 +5069,7 @@ my %tagLookup = (
|
|
5069
5069
|
'rightsagent' => { 481 => 'rightsAgent' },
|
5070
5070
|
'rightsowner' => { 481 => 'rightsOwner' },
|
5071
5071
|
'roll' => { 112 => 0x8, 366 => ['roll',"\xa9frl"] },
|
5072
|
-
'rollangle' => { 237 => 0x350b, 238 => 0x2c24, 246 => 0x36f4, 283 => 0x903, 306 => 0x90, 340 => 0x1, 378 => 0x2 },
|
5072
|
+
'rollangle' => { 237 => 0x350b, 238 => 0x2c24, 246 => 0x36f4, 247 => 0x2efb, 283 => 0x903, 306 => 0x90, 340 => 0x1, 378 => 0x2 },
|
5073
5073
|
'romoperationmode' => { 94 => 0x80d },
|
5074
5074
|
'rotation' => { 30 => 0x17, 31 => 0x18, 93 => 0x3, 100 => 0x10002, 105 => 0x26e, 111 => 'QuickTime::Rotation', 120 => 0x4, 161 => 'Rotation', 177 => [0x65,0x50], 178 => 0x46, 179 => 0x5a, 182 => 0x10, 237 => 0x3693, 238 => 0xca, 244 => '590.1', 259 => 0x76a43207, 306 => 0x30, 322 => '17.2', 352 => 0xd8, 359 => 'irot', 393 => 0x3f, 394 => 0x3f, 404 => 0x10 },
|
5075
5075
|
'routedto' => { 470 => 'RoutedTo' },
|
@@ -5297,7 +5297,7 @@ my %tagLookup = (
|
|
5297
5297
|
'shutterspeedrange' => { 81 => 0x10c },
|
5298
5298
|
'shutterspeedsetting' => { 179 => 0x6, 393 => 0x2f, 394 => 0x28, 395 => 0x0 },
|
5299
5299
|
'shutterspeedvalue' => { 90 => 0x1, 116 => 0x9201, 288 => 0x1000, 350 => 0x400, 468 => 'ShutterSpeedValue' },
|
5300
|
-
'shuttertype' => { 124 => 0x1050, 306 => 0x9f },
|
5300
|
+
'shuttertype' => { 124 => 0x1050, 306 => 0x9f, 341 => 0x87 },
|
5301
5301
|
'sidecarforextension' => { 476 => 'SidecarForExtension' },
|
5302
5302
|
'sigmaimpulseparameters' => { 134 => 0xe0d },
|
5303
5303
|
'sigmascalingfactorcamera' => { 134 => 0xe0c },
|
@@ -6246,7 +6246,7 @@ my %tagLookup = (
|
|
6246
6246
|
'xresolution' => { 116 => 0x11a, 131 => 0x3, 356 => 0x0, 484 => 'XResolution' },
|
6247
6247
|
'xyresolution' => { 120 => 0x3 },
|
6248
6248
|
'yaw' => { 112 => 0x7, 366 => ['_yaw',"\xa9fyw"] },
|
6249
|
-
'yawangle' => { 237 => 0x3513, 238 => 0x2c2c, 246 => 0x36fc, 378 => 0x0 },
|
6249
|
+
'yawangle' => { 237 => 0x3513, 238 => 0x2c2c, 246 => 0x36fc, 247 => 0x2f03, 378 => 0x0 },
|
6250
6250
|
'ycbcrcoefficients' => { 116 => 0x211, 484 => 'YCbCrCoefficients' },
|
6251
6251
|
'ycbcrpositioning' => { 116 => 0x213, 484 => 'YCbCrPositioning' },
|
6252
6252
|
'ycbcrsubsampling' => { 116 => 0x212, 484 => 'YCbCrSubSampling' },
|
@@ -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 23363 tags, with 15305 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
|
@@ -12218,6 +12218,9 @@ These tags are extracted from encrypted data in images from the D850.
|
|
12218
12218
|
4029 PhotoShootingMenuBank int8u & 0x03
|
12219
12219
|
4031 PrimarySlot int8u & 0x80
|
12220
12220
|
4152 CustomSettingsD850 NikonCustom SettingsD850
|
12221
|
+
12027 RollAngle fixed32u
|
12222
|
+
12031 PitchAngle fixed32u
|
12223
|
+
12035 YawAngle fixed32u
|
12221
12224
|
|
12222
12225
|
=head3 Nikon ShotInfoD5000 Tags
|
12223
12226
|
|
@@ -15326,6 +15329,7 @@ These tags are used in Pentax/Asahi cameras.
|
|
15326
15329
|
0x0080 AspectRatio yes
|
15327
15330
|
0x0082 BlurControl int8u[4]
|
15328
15331
|
0x0085 HDR int8u[4]
|
15332
|
+
0x0087 ShutterType int8u
|
15329
15333
|
0x0088 NeutralDensityFilter int8u[n]
|
15330
15334
|
0x008b ISO int32u
|
15331
15335
|
0x0092 IntervalShooting int16u[2]
|
@@ -25496,6 +25500,7 @@ API QuickTimeHandler option may be used to include an 'mdir' Handler box.
|
|
25496
25500
|
"\xa9too" Encoder string
|
25497
25501
|
"\xa9trk" Track string
|
25498
25502
|
"\xa9wrt" Composer string
|
25503
|
+
"\xa9xyz" GPSCoordinates string
|
25499
25504
|
|
25500
25505
|
=head3 QuickTime iTunesInfo Tags
|
25501
25506
|
|
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.94.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: 2020-04-
|
12
|
+
date: 2020-04-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -451,7 +451,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
451
451
|
version: '0'
|
452
452
|
requirements: []
|
453
453
|
rubyforge_project:
|
454
|
-
rubygems_version: 2.6.
|
454
|
+
rubygems_version: 2.6.11
|
455
455
|
signing_key:
|
456
456
|
specification_version: 4
|
457
457
|
summary: Vendored version of exiftool
|