Skip to content

Commit

Permalink
Upgrading to exiftool v12.92
Browse files Browse the repository at this point in the history
  • Loading branch information
morozgrafix committed Jul 29, 2024
1 parent fc02884 commit 391e6f4
Show file tree
Hide file tree
Showing 18 changed files with 232 additions and 60 deletions.
28 changes: 25 additions & 3 deletions bin/Changes
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,28 @@ RSS feed: https://exiftool.org/rss.xml
Note: The most recent production release is Version 12.76. (Other versions are
considered development releases, and are not uploaded to MetaCPAN.)

July 24, 2024 - Version 12.92

- Removed -w from exiftool shebang

July 24, 2024 - Version 12.91

- Fixed 2 test files that were causing failed tests (ExifTool itself is
unchanged)

July 24, 2024 - Version 12.90

- Added support for reading Samsung trailer from PNG images
- Decode two more formats of timed GPS from MP4 videos
- Decode a few more Samung trailer tags (thanks Neal Krawetz)
- Decode Canon AntiFlicker tag
- Drop Nikon ShotInfo record when copying MakerNotes from NEF to JPG if it is
larger than 50000 bytes (then MakerNotes would be too large for a single
JPEG segment)
- Changed exiftool shebang from "#!/usr/bin/perl" to "#!/usr/bin/env perl"
- Revert change of 12.84 to iterate through sub-documents with the -p option
only if -ee is used

July 12, 2024 - Version 12.89

- Added new Sony lenses and updated decoding of some tags (thanks Jos Roost)
Expand All @@ -15,9 +37,7 @@ July 12, 2024 - Version 12.89

July 11, 2024 - Version 12.88 - "New Windows/MacOS packages"

-

NOTE: The install procedure for the Windows executable has changed!
- NOTE: The install procedure for the Windows executable has changed!
- Windows EXE version now uses Oliver Betz's bundle with Strawberry Perl and
comes in 32- and 64-bit versions
- MacOS distribution now uses a flattened package
Expand Down Expand Up @@ -105,6 +125,8 @@ Apr. 23, 2024 - Version 12.84
cities
- Allow coordinates to be entered without comma separator for the Geolocation
feature as long as both coordinates have a decimal point
- Changed -p option to iterate through sub-documents if they exist even if -ee
isn't used
- Fixed long-standing bug in Windows version that didn't properly handle dates
older than 50 years when writing FileModifyDate or FileCreateDate
- Fixed API TimeZone option to work in Windows
Expand Down
2 changes: 1 addition & 1 deletion bin/META.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,5 @@
}
},
"release_status" : "stable",
"version" : "12.89"
"version" : "12.92"
}
2 changes: 1 addition & 1 deletion bin/META.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ recommends:
Time::HiRes: '0'
requires:
perl: '5.004'
version: '12.89'
version: '12.92'
4 changes: 2 additions & 2 deletions bin/README
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:

cd ~/Desktop
gzip -dc Image-ExifTool-12.89.tar.gz | tar -xf -
cd Image-ExifTool-12.89
gzip -dc Image-ExifTool-12.92.tar.gz | tar -xf -
cd Image-ExifTool-12.92
./exiftool t/images/ExifTool.jpg

Note: These commands extract meta information from one of the test images.
Expand Down
2 changes: 1 addition & 1 deletion bin/build_geolocation
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!/usr/bin/env perl
#-------------------------------------------------------------------------------
# File: build_geolocation
#
Expand Down
10 changes: 5 additions & 5 deletions bin/exiftool
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/perl -w
#!/usr/bin/env perl
#------------------------------------------------------------------------------
# File: exiftool
#
Expand All @@ -11,7 +11,7 @@ use strict;
use warnings;
require 5.004;

my $version = '12.89';
my $version = '12.92';

# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exePath;
Expand Down Expand Up @@ -2310,8 +2310,8 @@ sub GetImageInfo($$)
# output using print format file (-p) option
my ($type, $doc, $grp, $lastDoc, $cache);
$fileTrailer = '';
# repeat for each sub-document if necessary
if ($$et{DOC_COUNT}) {
# repeat for each embedded document if necessary (only if -ee used)
if ($et->Options('ExtractEmbedded')) {
# (cache tag keys if there are sub-documents)
$lastDoc = $$et{DOC_COUNT} and $cache = { };
} else {
Expand Down Expand Up @@ -5684,7 +5684,7 @@ with this command:
produces output like this:
-- Generated by ExifTool 12.89 --
-- Generated by ExifTool 12.92 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
Expand Down
2 changes: 1 addition & 1 deletion bin/lib/Image/ExifTool.pm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
%static_vars $advFmtSelf);

$VERSION = '12.89';
$VERSION = '12.92';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
Expand Down
20 changes: 13 additions & 7 deletions bin/lib/Image/ExifTool/Canon.pm
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
sub ProcessExifInfo($$$);
sub SwapWords($);

$VERSION = '4.78';
$VERSION = '4.79';

# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
Expand Down Expand Up @@ -6403,6 +6403,8 @@ my %ciMaxFocal = (
12 => 'Flexizone Multi (9 point)', #PH (750D, 9 points)
13 => 'Flexizone Single', #PH (EOS M default, live view) (R7 calls this '1-point AF', ref github268)
14 => 'Large Zone AF', #PH/forum6237 (7DmkII)
16 => 'Large Zone AF (vertical)', #forum16223
17 => 'Large Zone AF (horizontal)', #forum16223
19 => 'Flexible Zone AF 1', #github268 (R7)
20 => 'Flexible Zone AF 2', #github268 (R7)
21 => 'Flexible Zone AF 3', #github268 (R7)
Expand Down Expand Up @@ -6921,6 +6923,10 @@ my %ciMaxFocal = (
Name => 'FlashExposureLock',
PrintConv => \%offOn,
},
32 => { #forum16257
Name => 'AntiFlicker',
PrintConv => \%offOn,
},
0x3d => { #IB
Name => 'RFLensType',
Format => 'int16u',
Expand Down Expand Up @@ -9123,19 +9129,19 @@ my %filterConv = (
2 => 'Disable',
},
},
18 => { #52
18 => { #52/forum16223
Name => 'AFStatusViewfinder',
Condition => '$$self{Model} =~ /1D X/',
Notes => '1D X only',
Condition => '$$self{Model} =~ /EOS-1D X|EOS R/',
Notes => '1D X and R models',
PrintConv => {
0 => 'Show in Field of View',
1 => 'Show Outside View',
},
},
19 => { #52
19 => { #52/forum16223
Name => 'InitialAFPointInServo',
Condition => '$$self{Model} =~ /1D X/',
Notes => '1D X only',
Condition => '$$self{Model} =~ /EOS-1D X|EOS R/',
Notes => '1D X and R models',
PrintConv => {
0 => 'Initial AF Point Selected',
1 => 'Manual AF Point',
Expand Down
35 changes: 34 additions & 1 deletion bin/lib/Image/ExifTool/Nikon.pm
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
use Image::ExifTool::XMP;

$VERSION = '4.35';
$VERSION = '4.36';

sub LensIDConv($$$);
sub ProcessNikonAVI($$$);
Expand Down Expand Up @@ -2495,6 +2495,7 @@ my %base64coord = (
{ # D7100=0227
Condition => '$$valPt =~ /^0[28]/',
Name => 'ShotInfo02xx',
Drop => 50000, # drop if too large (>64k for Z6iii)
SubDirectory => {
TagTable => 'Image::ExifTool::Nikon::ShotInfo',
ProcessProc => \&ProcessNikonEncrypted,
Expand Down Expand Up @@ -5635,6 +5636,38 @@ my %nikonFocalConversions = (
Notes => 'P6000',
PrintConv => \%offOn,
},
# for Nikon Z6iii JPG and RAW images (version 0809),
# the offset table starts at 0x24 and is as follows
# JPG Offset Size NEF Offset Size
# 0) 0x0000 0 0) 0x009c 21604
# 1) 0x0000 0 1) 0x5500 6008
# 2) 0x009c 2528 2) 0x6c78 2528
# 3) 0x0a7c 200 3) 0x7658 200
# 4) 0x0b44 2488 4) 0x7720 2488
# 5) 0x14fc 1468 5) 0x80d8 1468
# 6) 0x1ab8 1032 6) 0x8694 1032
# 7) 0x1ec0 256 7) 0x8a9c 256
# 8) 0x1fc0 800 8) 0x8b9c 800
# 9) 0x22e0 144 9) 0x8ebc 144
# 10) 0x2370 64 10) 0x8f4c 64
# 11) 0x0000 0 11) 0x0000 0
# 12) 0x23b0 5009 12) 0x8f8c 5009
# 13) 0x3741 1536 13) 0xa31d 1536
# 14) 0x3d41 11928 14) 0xa91d 11928
# 15) 0x6bd9 5937 15) 0xd7b5 5937
# 16) 0x830a 500 16) 0xeee6 500
# 17) 0x84fe 160 17) 0xf0da 160
# 18) 0x859e 464 18) 0xf17a 464
# 19) 0x876e 8 19) 0xf34a 8
# 20) 0x8776 64 20) 0xf352 64
# 21) 0x87b6 6 21) 0xf392 6
# 22) 0x87bc 48 22) 0xf398 48
# 23) 0x87ec 20 23) 0xf3c8 20
# 24) 0x8800 108 24) 0xf3dc 108
# 25) 0x886c 8 25) 0xf448 8
# 26) 0x8874 2420 26) 0xf450 2420
# 27) 0x0000 0 27) 0x0000 0
# 28) 0x0000 0 28) 0x0000 0
0x66 => {
Name => 'VR_0x66',
Condition => '$$self{ShotInfoVersion} eq "0204"',
Expand Down
12 changes: 10 additions & 2 deletions bin/lib/Image/ExifTool/PNG.pm
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ use strict;
use vars qw($VERSION $AUTOLOAD %stdCase);
use Image::ExifTool qw(:DataAccess :Utils);

$VERSION = '1.67';
$VERSION = '1.68';

sub ProcessPNG_tEXt($$$);
sub ProcessPNG_iTXt($$$);
Expand Down Expand Up @@ -1400,7 +1400,7 @@ sub ProcessPNG($$)
my $fastScan = $et->Options('FastScan');
my $hash = $$et{ImageDataHash};
my ($n, $sig, $err, $hbuf, $dbuf, $cbuf);
my ($wasHdr, $wasEnd, $wasDat, $doTxt, @txtOffset);
my ($wasHdr, $wasEnd, $wasDat, $doTxt, @txtOffset, $wasTrailer);

# check to be sure this is a valid PNG/MNG/JNG image
return 0 unless $raf->Read($sig,8) == 8 and $pngLookup{$sig};
Expand Down Expand Up @@ -1461,6 +1461,7 @@ sub ProcessPNG($$)
if ($wasEnd) {
last unless $n; # stop now if normal end of PNG
$et->WarnOnce("Trailer data after $fileType $endChunk chunk", 1);
$wasTrailer = 1;
last if $n < 8;
$$et{SET_GROUP1} = 'Trailer';
} elsif ($n != 8) {
Expand Down Expand Up @@ -1654,6 +1655,13 @@ sub ProcessPNG($$)
}
}
delete $$et{SET_GROUP1};
# read Samsung trailer if it exists
if ($wasTrailer and not $outfile and $raf->Seek(-8, 2) and
$raf->Read($dbuf,8) and $dbuf =~ /\0\0(QDIOBS|SEFT)$/) # (have only seen SEFT type)
{
require Image::ExifTool::Samsung;
Image::ExifTool::Samsung::ProcessSamsung($et, { DirName => 'Samsung', RAF => $raf });
}
return -1 if $outfile and ($err or not $wasEnd);
return 1; # this was a valid PNG/MNG/JNG image
}
Expand Down
9 changes: 7 additions & 2 deletions bin/lib/Image/ExifTool/QuickTime.pm
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::GPS;

$VERSION = '2.98';
$VERSION = '2.99';

sub ProcessMOV($$;$);
sub ProcessKeys($$$);
Expand Down Expand Up @@ -9737,7 +9737,7 @@ sub ProcessMOV($$;$)
if ($size > 0x2000000) { # start to get worried above 32 MiB
# check for RIFF trailer (written by Auto-Vox dashcam)
if ($buff =~ /^(gpsa|gps0|gsen|gsea)...\0/s) { # (yet seen only gpsa as first record)
$et->VPrint(0, "Found RIFF trailer");
$et->VPrint(0, sprintf("Found RIFF trailer at offset 0x%x",$lastPos));
if ($et->Options('ExtractEmbedded')) {
$raf->Seek(-8, 1) or last; # seek back to start of trailer
my $tbl = GetTagTable('Image::ExifTool::QuickTime::Stream');
Expand All @@ -9746,6 +9746,11 @@ sub ProcessMOV($$;$)
EEWarn($et);
}
last;
} elsif ($buff eq 'CCCCCCCC') {
$et->VPrint(0, sprintf("Found Kenwood trailer at offset 0x%x",$lastPos));
my $tbl = GetTagTable('Image::ExifTool::QuickTime::Stream');
ProcessKenwoodTrailer($et, { RAF => $raf }, $tbl);
last;
}
$ignore = 1;
if ($tagInfo and not $$tagInfo{Unknown} and not $eeTag) {
Expand Down
Loading

0 comments on commit 391e6f4

Please sign in to comment.