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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de41613ce5421f4a0a60fd8a46a6dc8e703ea126
4
- data.tar.gz: 4a00871a6182540eaa1273d975a7cf529e90271c
3
+ metadata.gz: 65ea2b4bc54696ca9b8ded4b82cf20b63ccac35e
4
+ data.tar.gz: 2b940fd9b9756a41daf9b513c0cd8c6d2477a286
5
5
  SHA512:
6
- metadata.gz: a3d5662e0bc57eb8c8df76eec7dfa79898d76b654a38f5bacc1970401b40fdc16ff34f0e73b572934fc4df1638ebfdb5568620ba594f843f885e767163cff805
7
- data.tar.gz: b1ef3d7bf40176d2131c9a61f0dc92783d956a1bf8069c8a41b1c0bd90263a23270b3dd799d7ad418cbb2b8038f2f2133f9bc925b2f4cff95224703ba35ef7f8
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
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.60",
50
+ "version" : "11.61",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
data/bin/META.yml CHANGED
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: '0'
29
29
  requires:
30
30
  perl: '5.004'
31
- version: '11.60'
31
+ version: '11.61'
32
32
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
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.60.tar.gz | tar -xf -
108
- cd Image-ExifTool-11.60
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.60';
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.60 --
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
@@ -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.60';
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.19';
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 1:3.5-6.3 IS STM', #42
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.20';
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
- # 2 - also seen (Apple iOS)
2556
- 3 => 'HDR', # non-standard (Apple iOS)
2557
- # 4 - also seen (Apple iOS) - normal image from iOS Camera app (ref http://regex.info/blog/lightroom-goodies/metadata-presets)
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
- # 7 - also seen (Apple iOS)
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.72';
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.78';
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
- 142 => 'Voigtlander 70-300mm F4.5-5.6', #JD
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.68';
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.50';
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} and not $wasCompressed) {
801
- $et->Warn("Non-standard $$tagInfo{NonStandard} in PNG $tag chunk", 1);
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, 1);
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 and PNGDoneDir are used to keep track of metadata added
1249
- # before the PNG IEND chunk is encountered. Currently this is implemented
1250
- # only for XMP, but may be implemented in the future for other types - PH
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.14';
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 22995 tags, with 15044 unique tag names.
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 no
33593
+ GPSDestLatitudeRef XMP-exif:GPSDestLatitude no
33593
33594
  GPSDestLongitude GPS:GPSDestLongitude no
33594
33595
  GPS:GPSDestLongitudeRef
33595
- GPSDestLongitudeRef XMP:GPSDestLongitude no
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 no
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 no
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
- $dir = 'IFD0' if $dir eq 'EXIF';
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
- delete $$et{ADD_DIRS}{$dir} unless $nonStandard;
150
- if ($nonStandard and $$et{DEL_GROUP}{$dir}) {
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
- # (QuickTime and All are special cases because all group1 tags may be updated at once)
3551
- while ($nvHash and $$nvHash{WriteGroup} ne $writeGroup and
3552
- $$nvHash{WriteGroup} !~ /^(QuickTime|All)$/)
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.24';
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])/;
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 11.60
3
+ Version: 11.61
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.60.0')
4
+ VERSION = Gem::Version.new('11.61.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.60.0
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-05 00:00:00.000000000 Z
12
+ date: 2019-08-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool