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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35973dd75b32b6d82a5a536d999a230d6de7d4ea
4
- data.tar.gz: 32dfaf005408997c53a45689ad2f43be57f6e7fa
3
+ metadata.gz: f8d1a45ceed2fce06b008315885667eccd1652c9
4
+ data.tar.gz: 1d0c0e626deab2d61cd1e3c29e1314ac1817b342
5
5
  SHA512:
6
- metadata.gz: 9cf45bb1c1a72a24e13039cc127b6f1df3252281b0fede8e4544fa64be18373a90445b0813622b9dc6cf4b7718a2f31915b39381189f20bc3dfae5b9c03af5f2
7
- data.tar.gz: 0f4deebac460423820bb9d5fd22e652153676031ec720e1b20a1f24288116364ffc801ac6cfb31d958b1acd7aa0c02a72d0d221eeff5e4bd287ad42e03379f14
6
+ metadata.gz: f0699566c7325efa24c989da7db409805a24f487a716ca96a0e4146858f667c72e0b77a429dcad2a06e0e790f5b74a800dc1cf2d576a365fb355c93ede814bba
7
+ data.tar.gz: aa2d82f8be53730bb76ae38d68fc311c4ea0b68ba138e1f14afd98e2cbf2a801a5806a410516e910d7652899769b7d1fb62044d1ed18a42414de50a1e4f92564
@@ -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 a normal tag
40
+ they were normal tags
28
41
 
29
42
  Mar. 19, 2020 - Version 11.92
30
43
 
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.93"
50
+ "version" : "11.94"
51
51
  }
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 11.93
31
+ version: 11.94
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.93.tar.gz | tar -xf -
109
- cd Image-ExifTool-11.93
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.
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '11.93';
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.93 --
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
@@ -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.93';
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
- $self->VPrint(0, "UserParam tags:\n");
2699
+ my $doMsg = $$options{Verbose};
2699
2700
  my $table = GetTagTable('Image::ExifTool::UserParam');
2700
2701
  foreach (sort keys %{$$options{UserParam}}) {
2701
- $self->HandleTag($table, $_, $$options{UserParam}{$_}) if /#$/;
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
 
@@ -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, Version0,
2277
- Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GDepth,
2278
- XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP,
2279
- XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi,
2280
- XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex,
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
- $et->Warn(sprintf('Odd offset for %s %s',$dir,TagName($tagID,$tagInfo)), 1) if $valuePtr & 0x01;
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(sprintf('Invalid offset for %s %s',$dir,TagName($tagID,$tagInfo)));
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(sprintf('Value for %s %s overlaps IFD', $dir, TagName($tagID,$tagInfo)));
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.37';
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 ^= 1;
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.80';
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
- # initially only decrypt enough to extract CustomSettingsOffset
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
- # note: DecryptLen currently set to 94 bytes after CustomSettingsOffset
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.49';
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
- unless ($data =~ s/^$obj//) {
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.30';
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.45';
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{Name} eq 'Track') {
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.22';
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 23358 tags, with 15305 unique tag names.
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
 
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 11.93
3
+ Version: 11.94
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('11.93.0')
4
+ VERSION = Gem::Version.new('11.94.0')
5
5
  end
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.93.0
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-03 00:00:00.000000000 Z
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.8
454
+ rubygems_version: 2.6.11
455
455
  signing_key:
456
456
  specification_version: 4
457
457
  summary: Vendored version of exiftool