exiftool_vendored 11.93.0 → 11.94.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 +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
|