exiftool-vendored.pl 12.73.0 → 12.78.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.
Files changed (70) hide show
  1. package/bin/Changes +94 -6
  2. package/bin/MANIFEST +4 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +46 -45
  6. package/bin/config_files/example.config +10 -2
  7. package/bin/exiftool +143 -94
  8. package/bin/lib/File/RandomAccess.pm +31 -5
  9. package/bin/lib/File/RandomAccess.pod +4 -4
  10. package/bin/lib/Image/ExifTool/7Z.pm +3 -3
  11. package/bin/lib/Image/ExifTool/AFCP.pm +2 -2
  12. package/bin/lib/Image/ExifTool/BZZ.pm +2 -2
  13. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
  14. package/bin/lib/Image/ExifTool/Canon.pm +17 -13
  15. package/bin/lib/Image/ExifTool/CanonVRD.pm +8 -2
  16. package/bin/lib/Image/ExifTool/DICOM.pm +2 -2
  17. package/bin/lib/Image/ExifTool/DNG.pm +4 -4
  18. package/bin/lib/Image/ExifTool/Exif.pm +54 -5
  19. package/bin/lib/Image/ExifTool/FLIR.pm +2 -2
  20. package/bin/lib/Image/ExifTool/Fixup.pm +3 -3
  21. package/bin/lib/Image/ExifTool/FlashPix.pm +3 -3
  22. package/bin/lib/Image/ExifTool/FujiFilm.pm +8 -3
  23. package/bin/lib/Image/ExifTool/GPS.pm +5 -3
  24. package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  25. package/bin/lib/Image/ExifTool/Geolocation.pm +237 -0
  26. package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
  27. package/bin/lib/Image/ExifTool/HtmlDump.pm +7 -4
  28. package/bin/lib/Image/ExifTool/ID3.pm +2 -2
  29. package/bin/lib/Image/ExifTool/Import.pm +9 -6
  30. package/bin/lib/Image/ExifTool/JSON.pm +11 -11
  31. package/bin/lib/Image/ExifTool/Jpeg2000.pm +51 -12
  32. package/bin/lib/Image/ExifTool/MIE.pm +3 -3
  33. package/bin/lib/Image/ExifTool/MWG.pm +1 -0
  34. package/bin/lib/Image/ExifTool/MacOS.pm +19 -4
  35. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  36. package/bin/lib/Image/ExifTool/Nikon.pm +5 -3
  37. package/bin/lib/Image/ExifTool/NikonCustom.pm +3 -3
  38. package/bin/lib/Image/ExifTool/Ogg.pm +4 -3
  39. package/bin/lib/Image/ExifTool/Olympus.pm +3 -1
  40. package/bin/lib/Image/ExifTool/PDF.pm +59 -9
  41. package/bin/lib/Image/ExifTool/PLIST.pm +3 -3
  42. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +3 -3
  43. package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  44. package/bin/lib/Image/ExifTool/PhaseOne.pm +2 -2
  45. package/bin/lib/Image/ExifTool/Photoshop.pm +3 -3
  46. package/bin/lib/Image/ExifTool/PostScript.pm +2 -2
  47. package/bin/lib/Image/ExifTool/QuickTime.pm +223 -117
  48. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +260 -242
  49. package/bin/lib/Image/ExifTool/RSRC.pm +2 -2
  50. package/bin/lib/Image/ExifTool/Samsung.pm +4 -4
  51. package/bin/lib/Image/ExifTool/Shift.pl +1 -2
  52. package/bin/lib/Image/ExifTool/SigmaRaw.pm +3 -3
  53. package/bin/lib/Image/ExifTool/Sony.pm +3 -3
  54. package/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  55. package/bin/lib/Image/ExifTool/TagLookup.pm +85 -8
  56. package/bin/lib/Image/ExifTool/TagNames.pod +148 -8
  57. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  58. package/bin/lib/Image/ExifTool/WriteExif.pl +26 -23
  59. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  60. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +15 -2
  61. package/bin/lib/Image/ExifTool/WriteXMP.pl +4 -2
  62. package/bin/lib/Image/ExifTool/Writer.pl +77 -52
  63. package/bin/lib/Image/ExifTool/XMP.pm +2 -1
  64. package/bin/lib/Image/ExifTool/XMP2.pl +9 -0
  65. package/bin/lib/Image/ExifTool/ZIP.pm +6 -6
  66. package/bin/lib/Image/ExifTool.pm +204 -63
  67. package/bin/lib/Image/ExifTool.pod +118 -94
  68. package/bin/perl-Image-ExifTool.spec +45 -44
  69. package/bin/pp_build_exe.args +4 -230
  70. package/package.json +4 -4
@@ -17,7 +17,7 @@ use vars qw($VERSION);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
  use Image::ExifTool::Minolta;
19
19
 
20
- $VERSION = '1.19';
20
+ $VERSION = '1.20';
21
21
 
22
22
  sub ProcessMRW($$;$);
23
23
  sub WriteMRW($$;$);
@@ -400,7 +400,7 @@ sub ProcessMRW($$;$)
400
400
 
401
401
  if ($$dirInfo{DataPt}) {
402
402
  # make a RAF object for MRW information extracted from other file types
403
- $raf = new File::RandomAccess($$dirInfo{DataPt});
403
+ $raf = File::RandomAccess->new($$dirInfo{DataPt});
404
404
  # MRW information in DNG images may not start at beginning of data block
405
405
  $raf->Seek($$dirInfo{DirStart}, 0) if $$dirInfo{DirStart};
406
406
  }
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
65
65
  use Image::ExifTool::GPS;
66
66
  use Image::ExifTool::XMP;
67
67
 
68
- $VERSION = '4.29';
68
+ $VERSION = '4.30';
69
69
 
70
70
  sub LensIDConv($$$);
71
71
  sub ProcessNikonAVI($$$);
@@ -677,6 +677,7 @@ sub GetAFPointGrid($$;$);
677
677
  '71 48 64 64 24 24 00 00' => 'Voigtlander APO-Skopar 90mm F2.8 SL IIs', #30
678
678
  'FD 00 50 50 18 18 DF 00' => 'Voigtlander APO-Lanthar 50mm F2 Aspherical', #35
679
679
  'FD 00 44 44 18 18 DF 00' => 'Voigtlander APO-Lanthar 35mm F2', #30
680
+ 'FD 00 59 59 18 18 DF 00' => 'Voigtlander Macro APO-Lanthar 65mm F2', #30
680
681
  #
681
682
  '00 40 2D 2D 2C 2C 00 00' => 'Carl Zeiss Distagon T* 3.5/18 ZF.2',
682
683
  '00 48 27 27 24 24 00 00' => 'Carl Zeiss Distagon T* 2.8/15 ZF.2', #MykytaKozlov
@@ -690,6 +691,7 @@ sub GetAFPointGrid($$;$);
690
691
  '00 54 62 62 0C 0C 00 00' => 'Carl Zeiss Planar T* 1.4/85 ZF.2',
691
692
  '00 54 68 68 18 18 00 00' => 'Carl Zeiss Makro-Planar T* 2/100 ZF.2',
692
693
  '00 54 72 72 18 18 00 00' => 'Carl Zeiss Apo Sonnar T* 2/135 ZF.2',
694
+ '02 54 3C 3C 0C 0C 00 00' => 'Zeiss Otus 1.4/28 ZF.2', #30
693
695
  '00 54 53 53 0C 0C 00 00' => 'Zeiss Otus 1.4/55', #IB
694
696
  '01 54 62 62 0C 0C 00 00' => 'Zeiss Otus 1.4/85',
695
697
  '03 54 68 68 0C 0C 00 00' => 'Zeiss Otus 1.4/100', #IB
@@ -701,8 +703,8 @@ sub GetAFPointGrid($$;$);
701
703
  #
702
704
  '00 54 56 56 30 30 00 00' => 'Coastal Optical Systems 60mm 1:4 UV-VIS-IR Macro Apo',
703
705
  #
704
- 'BF 4E 26 26 1E 1E 01 04' => 'Irix 15mm f/2.4 Firefly', #30
705
- 'BF 3C 1B 1B 30 30 01 04' => 'Irix 11mm f/4 Firefly', #30
706
+ 'BF 4E 26 26 1E 1E 01 04' => 'Irix 15mm f/2.4 Firefly', #30 (guessing the Blackstone version may be the same ID - PH)
707
+ 'BF 3C 1B 1B 30 30 01 04' => 'Irix 11mm f/4 Firefly', #30 (guessing the Blackstone version may be the same ID - PH)
706
708
  #
707
709
  '4A 40 11 11 2C 0C 4D 02' => 'Samyang 8mm f/3.5 Fish-Eye CS',
708
710
  '4A 48 24 24 24 0C 4D 02.1' => 'Samyang 10mm f/2.8 ED AS NCS CS',
@@ -9852,7 +9852,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9852
9852
  85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
9853
9853
  87 => { # CSe2
9854
9854
  Name => 'FlashShutterSpeed',
9855
- ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
9855
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accommodate 4 new values?
9856
9856
  PrintConv => {
9857
9857
  0 => '1 s',
9858
9858
  1 => '1/2 s',
@@ -10242,7 +10242,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10242
10242
  85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
10243
10243
  87 => { # CSe2
10244
10244
  Name => 'FlashShutterSpeed',
10245
- ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
10245
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accommodate 4 new values?
10246
10246
  PrintConv => {
10247
10247
  0 => '1 s',
10248
10248
  1 => '1/2 s',
@@ -10652,7 +10652,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10652
10652
  85 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
10653
10653
  87 => { # CSe2
10654
10654
  Name => 'FlashShutterSpeed',
10655
- ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accomodate 4 new values?
10655
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accommodate 4 new values?
10656
10656
  PrintConv => {
10657
10657
  0 => '1 s',
10658
10658
  1 => '1/2 s',
@@ -17,7 +17,7 @@ use strict;
17
17
  use vars qw($VERSION);
18
18
  use Image::ExifTool qw(:DataAccess :Utils);
19
19
 
20
- $VERSION = '1.02';
20
+ $VERSION = '1.04';
21
21
 
22
22
  my $MAX_PACKETS = 2; # maximum packets to scan from each stream at start of file
23
23
 
@@ -145,6 +145,7 @@ sub ProcessOGG($$)
145
145
  # calculate total data length
146
146
  my $dataLen = Get8u(\$buff, 27);
147
147
  if ($nseg) {
148
+ last unless $raf;
148
149
  $raf->Read($buff, $nseg-1) == $nseg-1 or last;
149
150
  my @segs = unpack('C*', $buff);
150
151
  # could check that all these (but the last) are 255...
@@ -160,7 +161,7 @@ sub ProcessOGG($$)
160
161
  }
161
162
  }
162
163
  # read page data
163
- $raf->Read($buff, $dataLen) == $dataLen or last;
164
+ last unless $raf and $raf->Read($buff, $dataLen) == $dataLen;
164
165
  if ($verbose > 1) {
165
166
  printf $out "Page %d, stream 0x%x, flag 0x%x (%d bytes)\n",
166
167
  $pageNum, $stream, $flag, $dataLen;
@@ -189,7 +190,7 @@ sub ProcessOGG($$)
189
190
  if (defined $numFlac and defined $val{$stream}) {
190
191
  # process FLAC headers as if it was a complete FLAC file
191
192
  require Image::ExifTool::FLAC;
192
- my %dirInfo = ( RAF => new File::RandomAccess(\$val{$stream}) );
193
+ my %dirInfo = ( RAF => File::RandomAccess->new(\$val{$stream}) );
193
194
  Image::ExifTool::FLAC::ProcessFLAC($et, \%dirInfo);
194
195
  }
195
196
  return $success;
@@ -40,7 +40,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
40
40
  use Image::ExifTool::Exif;
41
41
  use Image::ExifTool::APP12;
42
42
 
43
- $VERSION = '2.82';
43
+ $VERSION = '2.83';
44
44
 
45
45
  sub PrintLensInfo($$$);
46
46
 
@@ -117,6 +117,7 @@ my %olympusLensTypes = (
117
117
  '0 36 10' => 'Olympus M.Zuiko Digital ED 8-25mm F4 Pro', #IB
118
118
  '0 37 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro', #forum3833
119
119
  '0 39 10' => 'Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro', #forum3833
120
+ '0 40 10' => 'Olympus M.Zuiko Digital ED 150-600mm F5.0-6.3', #forum15652
120
121
  # Sigma lenses
121
122
  '1 01 00' => 'Sigma 18-50mm F3.5-5.6 DC', #8
122
123
  '1 01 10' => 'Sigma 30mm F2.8 EX DN', #NJ
@@ -442,6 +443,7 @@ my %olympusCameraTypes = (
442
443
  S0093 => 'E-P7', #IB
443
444
  S0095 => 'OM-1', #IB
444
445
  S0101 => 'OM-5', #IB
446
+ S0121 => 'OM-1MarkII', #forum15652
445
447
  SR45 => 'D220',
446
448
  SR55 => 'D320L',
447
449
  SR83 => 'D340L',
@@ -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.57';
24
+ $VERSION = '1.58';
25
25
 
26
26
  sub FetchObject($$$$);
27
27
  sub ExtractObject($$;$$);
@@ -114,11 +114,11 @@ my %supportedFilter = (
114
114
  Notes => q{
115
115
  stored as a string but treated as a comma- or semicolon-separated list of
116
116
  items when reading if the string contains commas or semicolons, whichever is
117
- more numerous, otherwise it is treated a space-separated list of items.
118
- Written as a comma-separated list. The list behaviour may be defeated by
119
- setting the API NoPDFList option. Note that the corresponding
120
- XMP-pdf:Keywords tag is not treated as a list, so the NoPDFList option
121
- should be used when copying between these two.
117
+ more numerous, otherwise it is treated a space-separated list of items. The
118
+ list behaviour may be defeated by setting the API NoPDFList option. Written
119
+ as a comma-separated string. Note that the corresponding XMP-pdf:Keywords
120
+ tag is not treated as a list, so the NoPDFList option should be used when
121
+ copying between these two.
122
122
  },
123
123
  },
124
124
  Creator => { },
@@ -178,6 +178,9 @@ my %supportedFilter = (
178
178
  AcroForm => {
179
179
  SubDirectory => { TagTable => 'Image::ExifTool::PDF::AcroForm' },
180
180
  },
181
+ AF => {
182
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::AF' },
183
+ },
181
184
  Lang => 'Language',
182
185
  PageLayout => { },
183
186
  PageMode => { },
@@ -251,6 +254,37 @@ my %supportedFilter = (
251
254
  },
252
255
  );
253
256
 
257
+ # tags extracted from AF dictionary
258
+ %Image::ExifTool::PDF::AF = (
259
+ PROCESS_PROC => \&ProcessAF,
260
+ NOTES => 'Processed only for C2PA information if AFRelationship is "/C2PA_Manifest".',
261
+ EF => {
262
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::EF' },
263
+ },
264
+ );
265
+
266
+ # tags extracted from EF dictionary
267
+ %Image::ExifTool::PDF::EF = (
268
+ F => {
269
+ Name => 'F_', # (don't want single-letter tag names)
270
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::F' },
271
+ },
272
+ );
273
+
274
+ # tags extracted from F dictionary
275
+ %Image::ExifTool::PDF::F = (
276
+ NOTES => 'C2PA JUMBF metadata extracted from "/C2PA_Manifest" file.',
277
+ _stream => {
278
+ Name => 'JUMBF',
279
+ Condition => '$$self{AFRelationship} eq "/C2PA_Manifest"',
280
+ SubDirectory => {
281
+ TagTable => 'Image::ExifTool::Jpeg2000::Main',
282
+ DirName => 'JUMBF',
283
+ ByteOrder => 'BigEndian',
284
+ },
285
+ },
286
+ );
287
+
254
288
  # tags in PDF Kids dictionary
255
289
  %Image::ExifTool::PDF::Kids = (
256
290
  Metadata => {
@@ -1739,6 +1773,19 @@ sub ProcessAcroForm($$$$;$$)
1739
1773
  {
1740
1774
  my ($et, $tagTablePtr, $dict, $xref, $nesting, $type) = @_;
1741
1775
  $et->HandleTag($tagTablePtr, '_has_xfa', $$dict{XFA} ? 'true' : 'false');
1776
+ return 1 unless $et->Options('Verbose');
1777
+ return ProcessDict($et, $tagTablePtr, $dict, $xref, $nesting, $type);
1778
+ }
1779
+
1780
+ #------------------------------------------------------------------------------
1781
+ # Process AF dictionary to extract C2PA manifest
1782
+ # Inputs: Same as ProcessDict
1783
+ sub ProcessAF($$$$;$$)
1784
+ {
1785
+ my ($et, $tagTablePtr, $dict, $xref, $nesting, $type) = @_;
1786
+ $$et{AFRelationship} = $$dict{AFRelationship} || '';
1787
+ # go no further unless Verbose or this is the C2PA_Manifest item
1788
+ return 1 unless $et->Options('Verbose') or $$et{AFRelationship} eq '/C2PA_Manifest';
1742
1789
  return ProcessDict($et, $tagTablePtr, $dict, $xref, $nesting, $type);
1743
1790
  }
1744
1791
 
@@ -1987,7 +2034,8 @@ sub ProcessDict($$$$;$$)
1987
2034
  $$et{INDENT} .= '| ';
1988
2035
  $$et{DIR_NAME} = $tag;
1989
2036
  $et->VerboseDir($tag, scalar(@{$$subDict{_tags}}));
1990
- ProcessDict($et, $subTablePtr, $subDict, $xref, $nesting);
2037
+ my $proc = $$subTablePtr{PROCESS_PROC} || \&ProcessDict;
2038
+ &$proc($et, $subTablePtr, $subDict, $xref, $nesting);
1991
2039
  $$et{INDENT} = $oldIndent;
1992
2040
  $$et{DIR_NAME} = $oldDir;
1993
2041
  }
@@ -2087,7 +2135,8 @@ sub ProcessDict($$$$;$$)
2087
2135
  ($tag = $$dict{Subtype} . $tag) =~ s/^\/// if $$dict{Subtype};
2088
2136
  last unless $$tagTablePtr{$tag};
2089
2137
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag) or last;
2090
- unless ($$tagInfo{SubDirectory}) {
2138
+ my $subdir = $$tagInfo{SubDirectory};
2139
+ unless ($subdir) {
2091
2140
  # don't build filter lists across different images
2092
2141
  delete $$et{LIST_TAGS}{$$tagTablePtr{Filter}};
2093
2142
  # we arrive here only when extracting embedded images
@@ -2120,8 +2169,9 @@ sub ProcessDict($$$$;$$)
2120
2169
  DirStart => 0,
2121
2170
  DirLen => length $$dict{_stream},
2122
2171
  Parent => 'PDF',
2172
+ DirName => $$subdir{DirName},
2123
2173
  );
2124
- my $subTablePtr = GetTagTable($tagInfo->{SubDirectory}->{TagTable});
2174
+ my $subTablePtr = GetTagTable($$subdir{TagTable});
2125
2175
  unless ($et->ProcessDirectory(\%dirInfo, $subTablePtr)) {
2126
2176
  $et->Warn("Error processing $$tagInfo{Name} information");
2127
2177
  }
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
21
21
  use Image::ExifTool::XMP;
22
22
  use Image::ExifTool::GPS;
23
23
 
24
- $VERSION = '1.11';
24
+ $VERSION = '1.12';
25
25
 
26
26
  sub ExtractObject($$;$);
27
27
  sub Get24u($$);
@@ -351,9 +351,9 @@ sub ProcessBinaryPLIST($$;$)
351
351
  my $start = $$dirInfo{DirStart};
352
352
  if ($start or ($$dirInfo{DirLen} and $$dirInfo{DirLen} != length $$dataPt)) {
353
353
  my $buf2 = substr($$dataPt, $start || 0, $$dirInfo{DirLen});
354
- $$dirInfo{RAF} = new File::RandomAccess(\$buf2);
354
+ $$dirInfo{RAF} = File::RandomAccess->new(\$buf2);
355
355
  } else {
356
- $$dirInfo{RAF} = new File::RandomAccess($dataPt);
356
+ $$dirInfo{RAF} = File::RandomAccess->new($dataPt);
357
357
  }
358
358
  my $strt = $$dirInfo{DirStart} || 0;
359
359
  }
@@ -21,7 +21,7 @@ use vars qw($VERSION);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  use Image::ExifTool::Exif;
23
23
 
24
- $VERSION = '1.28';
24
+ $VERSION = '1.29';
25
25
 
26
26
  sub ProcessJpgFromRaw($$$);
27
27
  sub WriteJpgFromRaw($$$);
@@ -839,7 +839,7 @@ sub WriteJpgFromRaw($$$)
839
839
  my $buff = substr($$dataPt, $dirStart, $dirLen);
840
840
  $dataPt = \$buff;
841
841
  }
842
- my $raf = new File::RandomAccess($dataPt);
842
+ my $raf = File::RandomAccess->new($dataPt);
843
843
  my $outbuff;
844
844
  my %dirInfo = (
845
845
  RAF => $raf,
@@ -890,7 +890,7 @@ sub ProcessJpgFromRaw($$$)
890
890
  # extract information from embedded JPEG
891
891
  my %dirInfo = (
892
892
  Parent => 'RAF',
893
- RAF => new File::RandomAccess($dataPt),
893
+ RAF => File::RandomAccess->new($dataPt),
894
894
  );
895
895
  if ($verbose) {
896
896
  my $indent = $$et{INDENT};
@@ -177,7 +177,7 @@ sub DecodeAFPoints($$$$;$);
177
177
  '4 6' => 'smc PENTAX-FA 35-80mm F4-5.6',
178
178
  '4 7' => 'Irix 45mm F1.4', #27
179
179
  '4 8' => 'Irix 150mm F2.8 Macro', #exiv2 issue 1084
180
- '4 9' => 'Irix 11mm F4 Firefly', #27
180
+ '4 9' => 'Irix 11mm F4 Firefly', #27 (guessing the Blackstone version may be the same ID - PH)
181
181
  '4 10' => 'Irix 15mm F2.4', #27
182
182
  '4 12' => 'smc PENTAX-FA 50mm F1.4', #17
183
183
  '4 15' => 'smc PENTAX-FA 28-105mm F4-5.6 [IF]',
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
  use Image::ExifTool::Exif;
17
17
 
18
- $VERSION = '1.09';
18
+ $VERSION = '1.10';
19
19
 
20
20
  sub WritePhaseOne($$$);
21
21
  sub ProcessPhaseOne($$$);
@@ -473,7 +473,7 @@ sub WritePhaseOne($$$)
473
473
  return undef if $numEntries < 2 or $numEntries > 300 or $ifdEnd > $dirLen;
474
474
  my $hdrBuff = $hdr;
475
475
  my $valBuff = ''; # buffer for value data
476
- my $fixup = new Image::ExifTool::Fixup;
476
+ my $fixup = Image::ExifTool::Fixup->new;
477
477
  my $index;
478
478
  for ($index=0; $index<$numEntries; ++$index) {
479
479
  my $entry = $dirStart + $ifdStart + 8 + $entrySize * $index;
@@ -28,7 +28,7 @@ use strict;
28
28
  use vars qw($VERSION $AUTOLOAD $iptcDigestInfo %printFlags);
29
29
  use Image::ExifTool qw(:DataAccess :Utils);
30
30
 
31
- $VERSION = '1.69';
31
+ $VERSION = '1.70';
32
32
 
33
33
  sub ProcessPhotoshop($$$);
34
34
  sub WritePhotoshop($$$);
@@ -70,7 +70,7 @@ my %thumbnailInfo = (
70
70
  Protected => 1,
71
71
  RawConv => 'my $img=substr($val,0x1c); $self->ValidateImage(\$img,$tag)',
72
72
  ValueConvInv => q{
73
- my $et = new Image::ExifTool;
73
+ my $et = Image::ExifTool->new;
74
74
  my @tags = qw{ImageWidth ImageHeight FileType};
75
75
  my $info = $et->ImageInfo(\$val, @tags);
76
76
  my ($w, $h, $type) = @$info{@tags};
@@ -892,7 +892,7 @@ sub ProcessDocumentData($$$)
892
892
  unless ($raf) {
893
893
  my $dataPt = $$dirInfo{DataPt};
894
894
  my $start = $$dirInfo{DirStart} || 0;
895
- $raf = new File::RandomAccess($dataPt);
895
+ $raf = File::RandomAccess->new($dataPt);
896
896
  $raf->Seek($start, 0) if $start;
897
897
  $dirLen = length $$dataPt - $start unless defined $dirLen;
898
898
  $et->VerboseDump($dataPt, Start => $start, Len => $dirLen, Base => $$dirInfo{Base});
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION $AUTOLOAD);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.44';
19
+ $VERSION = '1.45';
20
20
 
21
21
  sub WritePS($$);
22
22
  sub ProcessPS($$;$);
@@ -430,7 +430,7 @@ sub ProcessPS($$;$)
430
430
 
431
431
  # allow read from data
432
432
  unless ($raf) {
433
- $raf = new File::RandomAccess($$dirInfo{DataPt});
433
+ $raf = File::RandomAccess->new($$dirInfo{DataPt});
434
434
  $et->VerboseDir('PostScript');
435
435
  }
436
436
  #