exiftool_vendored 12.73.0 → 12.75.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 (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');