exiftool_vendored 12.73.0 → 12.75.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +41 -2
  3. data/bin/META.json +1 -1
  4. data/bin/META.yml +1 -1
  5. data/bin/README +46 -45
  6. data/bin/exiftool +97 -83
  7. data/bin/lib/File/RandomAccess.pm +31 -5
  8. data/bin/lib/File/RandomAccess.pod +4 -4
  9. data/bin/lib/Image/ExifTool/7Z.pm +3 -3
  10. data/bin/lib/Image/ExifTool/AFCP.pm +2 -2
  11. data/bin/lib/Image/ExifTool/BZZ.pm +2 -2
  12. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
  13. data/bin/lib/Image/ExifTool/Canon.pm +6 -5
  14. data/bin/lib/Image/ExifTool/CanonVRD.pm +2 -2
  15. data/bin/lib/Image/ExifTool/DICOM.pm +2 -2
  16. data/bin/lib/Image/ExifTool/DNG.pm +4 -4
  17. data/bin/lib/Image/ExifTool/Exif.pm +3 -2
  18. data/bin/lib/Image/ExifTool/FLIR.pm +2 -2
  19. data/bin/lib/Image/ExifTool/Fixup.pm +3 -3
  20. data/bin/lib/Image/ExifTool/FlashPix.pm +3 -3
  21. data/bin/lib/Image/ExifTool/FujiFilm.pm +8 -3
  22. data/bin/lib/Image/ExifTool/Geotag.pm +3 -3
  23. data/bin/lib/Image/ExifTool/HtmlDump.pm +2 -2
  24. data/bin/lib/Image/ExifTool/ID3.pm +2 -2
  25. data/bin/lib/Image/ExifTool/Import.pm +5 -5
  26. data/bin/lib/Image/ExifTool/JSON.pm +2 -2
  27. data/bin/lib/Image/ExifTool/Jpeg2000.pm +51 -12
  28. data/bin/lib/Image/ExifTool/MIE.pm +3 -3
  29. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  30. data/bin/lib/Image/ExifTool/Nikon.pm +3 -1
  31. data/bin/lib/Image/ExifTool/NikonCustom.pm +3 -3
  32. data/bin/lib/Image/ExifTool/Ogg.pm +2 -2
  33. data/bin/lib/Image/ExifTool/PDF.pm +54 -4
  34. data/bin/lib/Image/ExifTool/PLIST.pm +3 -3
  35. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +3 -3
  36. data/bin/lib/Image/ExifTool/PhaseOne.pm +2 -2
  37. data/bin/lib/Image/ExifTool/Photoshop.pm +3 -3
  38. data/bin/lib/Image/ExifTool/PostScript.pm +2 -2
  39. data/bin/lib/Image/ExifTool/QuickTime.pm +41 -107
  40. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +8 -6
  41. data/bin/lib/Image/ExifTool/RSRC.pm +2 -2
  42. data/bin/lib/Image/ExifTool/Samsung.pm +4 -4
  43. data/bin/lib/Image/ExifTool/Shift.pl +1 -2
  44. data/bin/lib/Image/ExifTool/SigmaRaw.pm +3 -3
  45. data/bin/lib/Image/ExifTool/Sony.pm +3 -3
  46. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  47. data/bin/lib/Image/ExifTool/TagLookup.pm +8 -5
  48. data/bin/lib/Image/ExifTool/TagNames.pod +36 -5
  49. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  50. data/bin/lib/Image/ExifTool/WriteExif.pl +26 -23
  51. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  52. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
  53. data/bin/lib/Image/ExifTool/WriteXMP.pl +4 -2
  54. data/bin/lib/Image/ExifTool/Writer.pl +68 -44
  55. data/bin/lib/Image/ExifTool/XMP.pm +2 -1
  56. data/bin/lib/Image/ExifTool/XMP2.pl +9 -0
  57. data/bin/lib/Image/ExifTool/ZIP.pm +6 -6
  58. data/bin/lib/Image/ExifTool.pm +42 -26
  59. data/bin/lib/Image/ExifTool.pod +76 -71
  60. data/bin/perl-Image-ExifTool.spec +45 -44
  61. data/lib/exiftool_vendored/version.rb +1 -1
  62. metadata +2 -2
@@ -16,9 +16,9 @@ File::RandomAccess - Random access reads of sequential file or scalar
16
16
 
17
17
  use File::RandomAccess;
18
18
 
19
- $raf = new File::RandomAccess(\*FILE, $disableSeekTest);
19
+ $raf = File::RandomAccess->new(\*FILE, $disableSeekTest);
20
20
 
21
- $raf = new File::RandomAccess(\$data);
21
+ $raf = File::RandomAccess->new(\$data);
22
22
 
23
23
  $err = $raf->Seek($pos);
24
24
  $num = $raf->Read($buff, $bytes);
@@ -38,10 +38,10 @@ Creates a new RandomAccess object given a file reference or
38
38
  reference to data in memory.
39
39
 
40
40
  # Read from open file or pipe
41
- $raf = new File::RandomAccess(\*FILE);
41
+ $raf = File::RandomAccess->new(\*FILE);
42
42
 
43
43
  # Read from data in memory
44
- $raf = new File::RandomAccess(\$data);
44
+ $raf = File::RandomAccess->new(\$data);
45
45
 
46
46
  =over 4
47
47
 
@@ -15,7 +15,7 @@ use strict;
15
15
  use vars qw($VERSION);
16
16
  use Image::ExifTool qw(:DataAccess :Utils);
17
17
 
18
- $VERSION = '1.00';
18
+ $VERSION = '1.01';
19
19
 
20
20
  sub ReadUInt32 {
21
21
  my $buff;
@@ -569,7 +569,7 @@ sub ReadFilesInfo {
569
569
  next;
570
570
  }
571
571
  $_[0]->Read($buff, $size);
572
- my $buffer = new File::RandomAccess(\$buff);
572
+ my $buffer = File::RandomAccess->new(\$buff);
573
573
  if($prop == 14){ # empty stream
574
574
  my @isempty = ReadBoolean($buffer, $numfiles, 0);
575
575
  my $numemptystreams = 0;
@@ -732,7 +732,7 @@ sub Process7Z($$)
732
732
  $folder_data .= Decompress($et, $raf, $decomporessor, $remaining);
733
733
  $remaining = $uncompressed_size - length($folder_data);
734
734
  }
735
- $buffer2 = new File::RandomAccess(\$folder_data);
735
+ $buffer2 = File::RandomAccess->new(\$folder_data);
736
736
  }
737
737
  $buffer2->Seek(0, 0);
738
738
  $buffer2->Read($buff, 1);
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.08';
17
+ $VERSION = '1.09';
18
18
 
19
19
  sub ProcessAFCP($$);
20
20
 
@@ -134,7 +134,7 @@ NoAFCP: for (;;) {
134
134
  $dirBuff = $valBuff = '';
135
135
  require Image::ExifTool::Fixup;
136
136
  $fixup = $$dirInfo{Fixup};
137
- $fixup or $fixup = $$dirInfo{Fixup} = new Image::ExifTool::Fixup;
137
+ $fixup or $fixup = $$dirInfo{Fixup} = Image::ExifTool::Fixup->new;
138
138
  $vers = substr($buff, 4, 2); # get version number
139
139
  } else {
140
140
  $et->DumpTrailer($dirInfo) if $verbose or $$et{HTML_DUMP};
@@ -19,7 +19,7 @@ use integer; # IMPORTANT!! use integer arithmetic throughout
19
19
  require Exporter;
20
20
  use vars qw($VERSION @ISA @EXPORT_OK);
21
21
 
22
- $VERSION = '1.00';
22
+ $VERSION = '1.01';
23
23
  @ISA = qw(Exporter);
24
24
  @EXPORT_OK = qw(Decode);
25
25
 
@@ -196,7 +196,7 @@ sub Decode($;$)
196
196
  if (ref $_[0] and UNIVERSAL::isa($_[0],'Image::ExifTool::BZZ')) {
197
197
  $self = shift;
198
198
  } else {
199
- $self = new Image::ExifTool::BZZ;
199
+ $self = Image::ExifTool::BZZ->new;
200
200
  }
201
201
  my $dataPt = shift;
202
202
  if ($dataPt) {
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
35
35
  use Image::ExifTool::Validate;
36
36
  use Image::ExifTool::MacOS;
37
37
 
38
- $VERSION = '3.52';
38
+ $VERSION = '3.54';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -797,7 +797,7 @@ sub new
797
797
  }
798
798
 
799
799
  my $tableNum = 0;
800
- my $et = new Image::ExifTool;
800
+ my $et = Image::ExifTool->new;
801
801
  my ($tableName, $tag);
802
802
  # create lookup for short table names
803
803
  foreach $tableName (@tableNames) {
@@ -1642,7 +1642,7 @@ sub WriteTagLookup($$)
1642
1642
  } else {
1643
1643
  my $quot = "'";
1644
1644
  # escape non-printable characters in tag ID if necessary
1645
- $quot = '"' if s/[\x00-\x1f,\x7f-\xff]/sprintf('\\x%.2x',ord($&))/ge;
1645
+ $quot = '"' if s/([\x00-\x1f,\x7f-\xff])/sprintf('\\x%.2x',ord($1))/ge;
1646
1646
  $_ = $quot . $_ . $quot;
1647
1647
  }
1648
1648
  }
@@ -1655,7 +1655,7 @@ sub WriteTagLookup($$)
1655
1655
  } else {
1656
1656
  my $quot = "'";
1657
1657
  # escape non-printable characters in tag ID if necessary
1658
- $quot = '"' if $tagID =~ s/[\x00-\x1f,\x7f-\xff]/sprintf('\\x%.2x',ord($&))/ge;
1658
+ $quot = '"' if $tagID =~ s/([\x00-\x1f,\x7f-\xff])/sprintf('\\x%.2x',ord($1))/ge;
1659
1659
  $entry = "$quot${tagID}$quot";
1660
1660
  }
1661
1661
  my $wrNum = $wrNum{$tableNum};
@@ -1727,12 +1727,12 @@ sub WriteTagLookup($$)
1727
1727
  }
1728
1728
 
1729
1729
  #------------------------------------------------------------------------------
1730
- # Sort numbers first numerically, then strings alphabetically (case insensitive)
1730
+ # Sort numbers first numerically, then strings alphabetically
1731
+ # - case-insensitive sorting set by global variable $caseInsensitive
1731
1732
  # - two global variables are used to change the sort algorithm:
1732
1733
  # $numbersFirst: -1 = put numbers after other strings
1733
1734
  # 1 = put numbers before other strings
1734
1735
  # 2 = put numbers first, but negative numbers last
1735
- # $caseInsensitive: flag set for case-insensitive sorting
1736
1736
  sub NumbersFirst($$)
1737
1737
  {
1738
1738
  my ($a, $b) = @_;
@@ -2742,7 +2742,7 @@ validation and consistency checks on the tag tables.
2742
2742
 
2743
2743
  use Image::ExifTool::BuildTagLookup;
2744
2744
 
2745
- $builder = new Image::ExifTool::BuildTagLookup;
2745
+ $builder = Image::ExifTool::BuildTagLookup->new;
2746
2746
 
2747
2747
  # update Image::ExifTool::TagLookup
2748
2748
  $ok = $builder->WriteTagLookup('lib/Image/ExifTool/TagLookup.pm');
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.72';
91
+ $VERSION = '4.73';
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)
@@ -1394,7 +1394,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
1394
1394
  },
1395
1395
  {
1396
1396
  Name => 'CanonCameraInfoR6',
1397
- Condition => '$$self{Model} =~ /\bEOS R6$/',
1397
+ Condition => '$$self{Model} =~ /\bEOS R[56]$/',
1398
1398
  SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfoR6' },
1399
1399
  },
1400
1400
  {
@@ -2206,8 +2206,9 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
2206
2206
  6 => 'Manual Focus (6)',
2207
2207
  16 => 'Pan Focus', #PH
2208
2208
  # 137 - Single?
2209
- 256 => 'AF + MF', #PH (NC, EOS M)
2210
- 257 => 'Live View', #forum12082
2209
+ 256 => 'One-shot AF (Live View)', #PH/forum15637
2210
+ 257 => 'AI Servo AF (Live View)', #PH/forum15637
2211
+ 258 => 'AI Focus AF (Live View)', #PH/forum15637
2211
2212
  512 => 'Movie Snap Focus', #48
2212
2213
  519 => 'Movie Servo AF', #PH (NC, EOS M)
2213
2214
  },
@@ -4714,7 +4715,7 @@ my %ciMaxFocal = (
4714
4715
  PRIORITY => 0,
4715
4716
  GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
4716
4717
  NOTES => 'CameraInfo tags for the EOS R6.',
4717
- 0x0af1 => { #forum15210
4718
+ 0x0af1 => { #forum15210/15579
4718
4719
  Name => 'ShutterCount',
4719
4720
  Format => 'int32u',
4720
4721
  Notes => 'includes electronic + mechanical shutter',
@@ -23,7 +23,7 @@ use vars qw($VERSION);
23
23
  use Image::ExifTool qw(:DataAccess :Utils);
24
24
  use Image::ExifTool::Canon;
25
25
 
26
- $VERSION = '1.36';
26
+ $VERSION = '1.37';
27
27
 
28
28
  sub ProcessCanonVRD($$;$);
29
29
  sub WriteCanonVRD($$;$);
@@ -2011,7 +2011,7 @@ sub ProcessCanonVRD($$;$)
2011
2011
  $verbose and print $out " Creating CanonVRD trailer\n";
2012
2012
  $created = 1;
2013
2013
  }
2014
- $raf = new File::RandomAccess($dataPt);
2014
+ $raf = File::RandomAccess->new($dataPt);
2015
2015
  }
2016
2016
  # read and validate the footer
2017
2017
  $raf->Seek(-0x40-$offset, 2) or return 0;
@@ -20,7 +20,7 @@ use strict;
20
20
  use vars qw($VERSION %uid);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
 
23
- $VERSION = '1.22';
23
+ $VERSION = '1.23';
24
24
 
25
25
  # DICOM VR (Value Representation) format conversions
26
26
  my %dicomFormat = (
@@ -3668,7 +3668,7 @@ sub ProcessDICOM($$)
3668
3668
  }
3669
3669
  last if length $data < 8;
3670
3670
  # create new RAF object from inflated data stream
3671
- $raf = new File::RandomAccess(\$data);
3671
+ $raf = File::RandomAccess->new(\$data);
3672
3672
  # re-read start of stream (now decompressed)
3673
3673
  $raf->Read($buff, 8) == 8 or last;
3674
3674
  $group = Get16u(\$buff, 0);
@@ -17,7 +17,7 @@ use Image::ExifTool::Exif;
17
17
  use Image::ExifTool::MakerNotes;
18
18
  use Image::ExifTool::CanonRaw;
19
19
 
20
- $VERSION = '1.24';
20
+ $VERSION = '1.25';
21
21
 
22
22
  sub ProcessOriginalRaw($$$);
23
23
  sub ProcessAdobeData($$$);
@@ -516,7 +516,7 @@ sub ProcessAdobeMRW($$$)
516
516
  my $buff = "\0MRM" . pack('N', $dirLen - 4);
517
517
  # ignore leading byte order and directory count words
518
518
  $buff .= substr($$dataPt, $dirStart + 4, $dirLen - 4);
519
- my $raf = new File::RandomAccess(\$buff);
519
+ my $raf = File::RandomAccess->new(\$buff);
520
520
  my %dirInfo = ( RAF => $raf, OutFile => $outfile );
521
521
  my $rtnVal = Image::ExifTool::MinoltaRaw::ProcessMRW($et, \%dirInfo);
522
522
  if ($outfile and defined $$outfile and length $$outfile) {
@@ -548,7 +548,7 @@ sub ProcessAdobeRAF($$$)
548
548
  }
549
549
  $et->VerboseDir($dirInfo);
550
550
  # make fake RAF object for processing (same acronym, different meaning)
551
- my $raf = new File::RandomAccess($dataPt);
551
+ my $raf = File::RandomAccess->new($dataPt);
552
552
  my $num = '';
553
553
  # loop through all records in Adobe RAF data:
554
554
  # 0 - RAF table (not processed)
@@ -752,7 +752,7 @@ sub ProcessAdobeMakN($$$)
752
752
  }
753
753
  if ($outfile) {
754
754
  # rewrite the maker notes directory
755
- my $fixup = $subdirInfo{Fixup} = new Image::ExifTool::Fixup;
755
+ my $fixup = $subdirInfo{Fixup} = Image::ExifTool::Fixup->new;
756
756
  my $oldChanged = $$et{CHANGED};
757
757
  my $buff = $et->WriteDirectory(\%subdirInfo, $subTable);
758
758
  # nothing to do if error writing directory or nothing changed
@@ -57,7 +57,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
57
57
  use Image::ExifTool qw(:DataAccess :Utils);
58
58
  use Image::ExifTool::MakerNotes;
59
59
 
60
- $VERSION = '4.48';
60
+ $VERSION = '4.50';
61
61
 
62
62
  sub ProcessExif($$$);
63
63
  sub WriteExif($$$);
@@ -4348,6 +4348,7 @@ my %opcodeInfo = (
4348
4348
  Deletable => 1,
4349
4349
  SubDirectory => {
4350
4350
  TagTable => 'Image::ExifTool::Jpeg2000::Main',
4351
+ DirName => 'JUMBF',
4351
4352
  ByteOrder => 'BigEndian',
4352
4353
  },
4353
4354
  },
@@ -6465,7 +6466,7 @@ sub ProcessExif($$$)
6465
6466
  TagInfo => $tagInfo || $tmpInfo,
6466
6467
  Offset => $base + $valuePtr + $dataPos,
6467
6468
  Size => $size,
6468
- Fixup => new Image::ExifTool::Fixup,
6469
+ Fixup => Image::ExifTool::Fixup->new,
6469
6470
  };
6470
6471
  }
6471
6472
  } else {
@@ -24,7 +24,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
24
24
  use Image::ExifTool::Exif;
25
25
  use Image::ExifTool::GPS;
26
26
 
27
- $VERSION = '1.22';
27
+ $VERSION = '1.23';
28
28
 
29
29
  sub ProcessFLIR($$;$);
30
30
  sub ProcessFLIRText($$$);
@@ -1468,7 +1468,7 @@ sub ProcessMeasInfo($$$)
1468
1468
  sub ProcessFLIR($$;$)
1469
1469
  {
1470
1470
  my ($et, $dirInfo, $tagTablePtr) = @_;
1471
- my $raf = $$dirInfo{RAF} || new File::RandomAccess($$dirInfo{DataPt});
1471
+ my $raf = $$dirInfo{RAF} || File::RandomAccess->new($$dirInfo{DataPt});
1472
1472
  my $verbose = $et->Options('Verbose');
1473
1473
  my $out = $et->Options('TextOut');
1474
1474
  my $base = $raf->Tell();
@@ -39,7 +39,7 @@ use Image::ExifTool qw(GetByteOrder SetByteOrder Get32u Get32s Set32u
39
39
  Get16u Get16s Set16u);
40
40
  use vars qw($VERSION);
41
41
 
42
- $VERSION = '1.05';
42
+ $VERSION = '1.06';
43
43
 
44
44
  sub AddFixup($$;$$);
45
45
  sub ApplyFixup($$);
@@ -69,7 +69,7 @@ sub new
69
69
  sub Clone($)
70
70
  {
71
71
  my $self = shift;
72
- my $clone = new Image::ExifTool::Fixup;
72
+ my $clone = Image::ExifTool::Fixup->new;
73
73
  $clone->{Start} = $self->{Start};
74
74
  $clone->{Shift} = $self->{Shift};
75
75
  my $phash = $self->{Pointers};
@@ -317,7 +317,7 @@ Image::ExifTool::Fixup - Utility to handle pointer fixups
317
317
 
318
318
  use Image::ExifTool::Fixup;
319
319
 
320
- $fixup = new Image::ExifTool::Fixup;
320
+ $fixup = Image::ExifTool::Fixup->new;
321
321
 
322
322
  # add a new fixup to a pointer at the specified offset in data
323
323
  $fixup->AddFixup($offset);
@@ -22,7 +22,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
22
22
  use Image::ExifTool::Exif;
23
23
  use Image::ExifTool::ASF; # for GetGUID()
24
24
 
25
- $VERSION = '1.47';
25
+ $VERSION = '1.48';
26
26
 
27
27
  sub ProcessFPX($$);
28
28
  sub ProcessFPXR($$$);
@@ -2206,7 +2206,7 @@ sub ProcessFPX($$)
2206
2206
  my ($tag, %hier, %objIndex, %loadedDifSect);
2207
2207
 
2208
2208
  # handle FPX format in memory from PNG cpIp chunk
2209
- $raf or $raf = new File::RandomAccess($$dirInfo{DataPt});
2209
+ $raf or $raf = File::RandomAccess->new($$dirInfo{DataPt});
2210
2210
 
2211
2211
  # read header
2212
2212
  return 0 unless $raf->Read($buff,HDR_SIZE) == HDR_SIZE;
@@ -2353,7 +2353,7 @@ sub ProcessFPX($$)
2353
2353
  $et->Warn('Error loading Mini-FAT stream');
2354
2354
  last;
2355
2355
  }
2356
- $miniStream = new File::RandomAccess(\$miniStreamBuff);
2356
+ $miniStream = File::RandomAccess->new(\$miniStreamBuff);
2357
2357
  }
2358
2358
 
2359
2359
  my $tagInfo;
@@ -31,7 +31,7 @@ use vars qw($VERSION);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
  use Image::ExifTool::Exif;
33
33
 
34
- $VERSION = '1.91';
34
+ $VERSION = '1.92';
35
35
 
36
36
  sub ProcessFujiDir($$$);
37
37
  sub ProcessFaceRec($$$);
@@ -1187,6 +1187,8 @@ my %faceCategories = (
1187
1187
  ValueConv => 'my @v=reverse split(" ",$val);"@v"', # reverse to show width first
1188
1188
  PrintConv => '$val=~tr/ /x/; $val',
1189
1189
  },
1190
+ # 0x112 - int16u[2] same as 0x111 but with width/height swapped?
1191
+ # 0x113 - int16u[2] same as 0x111?
1190
1192
  0x115 => {
1191
1193
  Name => 'RawImageAspectRatio',
1192
1194
  Format => 'int16u',
@@ -1236,6 +1238,7 @@ my %faceCategories = (
1236
1238
  Count => 36,
1237
1239
  PrintConv => '$val =~ tr/012 /RGB/d; join " ", $val =~ /....../g',
1238
1240
  },
1241
+ # 0x141 - int16u[2] Bit depth? "14 42" for 14-bit RAF and "16 48" for 16-bit RAF
1239
1242
  0x2000 => { #IB
1240
1243
  Name => 'WB_GRGBLevelsAuto',
1241
1244
  Format => 'int16u',
@@ -1408,6 +1411,8 @@ my %faceCategories = (
1408
1411
  0xf00e => 'WB_GRBLevels',
1409
1412
  0xf00f => 'ChromaticAberrationParams', # (rational64s[23])
1410
1413
  0xf010 => 'VignettingParams', #9 (rational64s[31 or 64])
1414
+ # 0xf013 - int32u[3] same as 0xf00d
1415
+ # 0xf014 - int32u[3] - also related to WhiteBalance
1411
1416
  );
1412
1417
 
1413
1418
  # information found in FFMV atom of MOV videos
@@ -1688,7 +1693,7 @@ sub WriteRAF($$)
1688
1693
  # rewrite the embedded JPEG in memory
1689
1694
  my %jpegInfo = (
1690
1695
  Parent => 'RAF',
1691
- RAF => new File::RandomAccess(\$jpeg),
1696
+ RAF => File::RandomAccess->new(\$jpeg),
1692
1697
  OutFile => \$outJpeg,
1693
1698
  );
1694
1699
  $$et{FILE_TYPE} = 'JPEG';
@@ -1792,7 +1797,7 @@ sub ProcessRAF($$)
1792
1797
  # extract information from embedded JPEG
1793
1798
  my %dirInfo = (
1794
1799
  Parent => 'RAF',
1795
- RAF => new File::RandomAccess(\$jpeg),
1800
+ RAF => File::RandomAccess->new(\$jpeg),
1796
1801
  );
1797
1802
  if ($jpos) {
1798
1803
  $$et{BASE} += $jpos;
@@ -29,7 +29,7 @@ use vars qw($VERSION);
29
29
  use Image::ExifTool qw(:Public);
30
30
  use Image::ExifTool::GPS;
31
31
 
32
- $VERSION = '1.73';
32
+ $VERSION = '1.74';
33
33
 
34
34
  sub JITTER() { return 2 } # maximum time jitter
35
35
 
@@ -174,7 +174,7 @@ sub LoadTrackLog($$;$)
174
174
  # $val is track file name
175
175
  if ($et->Open(\*EXIFTOOL_TRKFILE, $val)) {
176
176
  $trackFile = $val;
177
- $raf = new File::RandomAccess(\*EXIFTOOL_TRKFILE);
177
+ $raf = File::RandomAccess->new(\*EXIFTOOL_TRKFILE);
178
178
  unless ($raf->Read($_, 256)) {
179
179
  close EXIFTOOL_TRKFILE;
180
180
  return "Empty track file '${val}'";
@@ -202,7 +202,7 @@ sub LoadTrackLog($$;$)
202
202
  }
203
203
  unless ($from) {
204
204
  # set up RAF for reading log file in memory
205
- $raf = new File::RandomAccess(\$val);
205
+ $raf = File::RandomAccess->new(\$val);
206
206
  $from = 'data';
207
207
  }
208
208
 
@@ -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.39';
16
+ $VERSION = '1.40';
17
17
 
18
18
  sub DumpTable($$$;$$$$$$);
19
19
  sub Open($$$;@);
@@ -894,7 +894,7 @@ Image::ExifTool::HtmlDump - Dump information in hex to HTML page
894
894
  =head1 SYNOPSIS
895
895
 
896
896
  use Image::ExifTool::HtmlDump;
897
- my $dump = new Image::ExifTool::HtmlDump;
897
+ my $dump = Image::ExifTool::HtmlDump->new;
898
898
  $dump->Add($start, $size, $comment);
899
899
  $dump->Print($dumpInfo, $raf, $dataPt, $dataPos, $outfile);
900
900
 
@@ -18,7 +18,7 @@ use strict;
18
18
  use vars qw($VERSION);
19
19
  use Image::ExifTool qw(:DataAccess :Utils);
20
20
 
21
- $VERSION = '1.60';
21
+ $VERSION = '1.61';
22
22
 
23
23
  sub ProcessID3v2($$$);
24
24
  sub ProcessPrivate($$$);
@@ -1408,7 +1408,7 @@ sub ProcessID3($$)
1408
1408
  $$et{DoneID3} = 1;
1409
1409
 
1410
1410
  # allow this to be called with either RAF or DataPt
1411
- my $raf = $$dirInfo{RAF} || new File::RandomAccess($$dirInfo{DataPt});
1411
+ my $raf = $$dirInfo{RAF} || File::RandomAccess->new($$dirInfo{DataPt});
1412
1412
  my ($buff, %id3Header, %id3Trailer, $hBuff, $tBuff, $eBuff, $tagTablePtr);
1413
1413
  my $rtnVal = 0;
1414
1414
  my $hdrEnd = 0;
@@ -12,7 +12,7 @@ require Exporter;
12
12
 
13
13
  use vars qw($VERSION @ISA @EXPORT_OK);
14
14
 
15
- $VERSION = '1.10';
15
+ $VERSION = '1.11';
16
16
  @ISA = qw(Exporter);
17
17
  @EXPORT_OK = qw(ReadCSV ReadJSON);
18
18
 
@@ -38,13 +38,13 @@ sub ReadCSV($$;$$)
38
38
  $raf = $file;
39
39
  $file = 'CSV file';
40
40
  } elsif (ref $file eq 'GLOB') {
41
- $raf = new File::RandomAccess($file);
41
+ $raf = File::RandomAccess->new($file);
42
42
  $file = 'CSV file';
43
43
  } else {
44
44
  open CSVFILE, $file or return "Error opening CSV file '${file}'";
45
45
  binmode CSVFILE;
46
46
  $openedFile = 1;
47
- $raf = new File::RandomAccess(\*CSVFILE);
47
+ $raf = File::RandomAccess->new(\*CSVFILE);
48
48
  }
49
49
  $delim = ',' unless defined $delim;
50
50
  # set input record separator by first newline found in the file
@@ -253,13 +253,13 @@ sub ReadJSON($$;$$)
253
253
  $raf = $file;
254
254
  $file = 'JSON file';
255
255
  } elsif (ref $file eq 'GLOB') {
256
- $raf = new File::RandomAccess($file);
256
+ $raf = File::RandomAccess->new($file);
257
257
  $file = 'JSON file';
258
258
  } else {
259
259
  open JSONFILE, $file or return "Error opening JSON file '${file}'";
260
260
  binmode JSONFILE;
261
261
  $openedFile = 1;
262
- $raf = new File::RandomAccess(\*JSONFILE);
262
+ $raf = File::RandomAccess->new(\*JSONFILE);
263
263
  }
264
264
  my $obj = ReadJSONObject($raf);
265
265
  close JSONFILE if $openedFile;
@@ -14,7 +14,7 @@ use vars qw($VERSION);
14
14
  use Image::ExifTool qw(:DataAccess :Utils);
15
15
  use Image::ExifTool::Import;
16
16
 
17
- $VERSION = '1.06';
17
+ $VERSION = '1.07';
18
18
 
19
19
  sub ProcessJSON($$);
20
20
  sub ProcessTag($$$$%);
@@ -120,7 +120,7 @@ sub ProcessJSON($$)
120
120
  my $buff = substr(${$$dirInfo{DataPt}}, $$dirInfo{DirStart}, $$dirInfo{DirLen});
121
121
  $dataPt = \$buff;
122
122
  }
123
- $raf = new File::RandomAccess($dataPt);
123
+ $raf = File::RandomAccess->new($dataPt);
124
124
  # extract as a block if requested
125
125
  my $blockName = $$dirInfo{BlockInfo} ? $$dirInfo{BlockInfo}{Name} : '';
126
126
  my $blockExtract = $et->Options('BlockExtract');