Skip to content

Commit

Permalink
Upgrading to exiftool v12.68
Browse files Browse the repository at this point in the history
  • Loading branch information
morozgrafix committed Oct 26, 2023
1 parent b2dfeda commit 50e3a63
Show file tree
Hide file tree
Showing 24 changed files with 7,306 additions and 6,869 deletions.
25 changes: 23 additions & 2 deletions bin/Changes
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,27 @@ RSS feed: https://exiftool.org/rss.xml
Note: The most recent production release is Version 12.60. (Other versions are
considered development releases, and are not uploaded to MetaCPAN.)

Oct. 16, 2023 - Version 12.68

- Added preliminary read support for XISF images
- Added the ability to delete JUMBF metadata from PNG images
- Added support for writing Canon burst-roll CR3 images
- Added a new Nikon Z9 SubjectDetection value, and improved Zf support
- Added a couple of new PentaxModelID values
- Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
- Added a support for a new XMP-photomech tag
- Added a new Nikon LensID
- Added a new Canon LensType
- Added a new QuickTime ItemList tag
- Support decimal values for FujiFilm ShadowTone and HighlightTone tags
- Decode some new Sony tags (thanks Jos Roost)
- Decode ShutterCount for Canon EOS R6 (thanks gamin)
- Decode QuickTime VideoFullRangeFlag
- Decode JPGCompression for the Nikon D3S
- Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
- Renamed Panasonic HDRShot tag to MergedImages (forum 15298)
- Fixed problem where some NEF files were misidentified as NRW

Sept. 19, 2023 - Version 12.67

- Added a new Pentax LensType (thanks dmont)
Expand Down Expand Up @@ -155,6 +176,8 @@ Apr. 5, 2023 - Version 12.60 (production release)
- Fixed problem where setting the Geotime value didn't work when using an
advanced-formatting expression containing a greater-than symbol (>)

History of older versions (back to Nov. 19, 2003 - Version 1.00) -->

Mar. 28, 2023 - Version 12.59

- COMPATIBILITY WARNING: Changed the calculated ImageDataMD5 for JPEG images
Expand Down Expand Up @@ -343,8 +366,6 @@ Nov. 8, 2022 - Version 12.50 (production release)
- Fixed inconsistent year and time zone for Kenwood dashcam timed GPS in MP4
videos

History of older versions (back to Nov. 19, 2003 - Version 1.00) -->

Oct. 19, 2022 - Version 12.49

- Added read support for Windows ICO and CUR files
Expand Down
5 changes: 5 additions & 0 deletions bin/MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ html/TagNames/VCard.html
html/TagNames/Vorbis.html
html/TagNames/WPG.html
html/TagNames/WTV.html
html/TagNames/XISF.html
html/TagNames/XMP.html
html/TagNames/ZIP.html
html/TagNames/ZISRAW.html
Expand Down Expand Up @@ -432,6 +433,7 @@ lib/Image/ExifTool/WriteQuickTime.pl
lib/Image/ExifTool/WriteRIFF.pl
lib/Image/ExifTool/WriteXMP.pl
lib/Image/ExifTool/Writer.pl
lib/Image/ExifTool/XISF.pm
lib/Image/ExifTool/XMP.pm
lib/Image/ExifTool/XMP2.pl
lib/Image/ExifTool/XMPStruct.pl
Expand Down Expand Up @@ -916,6 +918,8 @@ t/Writer_6.out
t/Writer_60.out
t/Writer_7.out
t/Writer_9.out
t/XISF.t
t/XISF_2.out
t/XMP.t
t/XMP_10.out
t/XMP_11.out
Expand Down Expand Up @@ -1144,6 +1148,7 @@ t/images/Vorbis.ogg
t/images/WPG.wpg
t/images/WTV.wtv
t/images/Writer.jpg
t/images/XISF.xisf
t/images/XMP.inx
t/images/XMP.jpg
t/images/XMP.svg
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.67"
"version" : "12.68"
}
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.67
version: 12.68
14 changes: 7 additions & 7 deletions bin/README
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ supported by ExifTool (r = read, w = write, c = create):
DCP r/w | ICO r | MPG r | PSB r/w | WV r
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
DFONT r | IDML r | MQV r/w | PSP r | XCF r
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
DOC r | INX r | NKSC r/w | RAM r |
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
DLL r | INSP r/w | MXF r | RA r | XLSX r
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
DOC r | INX r | NKSC r/w | RAM r | ZIP r
DOCX r | ISO r | NRW r/w | RAR r |

Meta Information
Expand Down Expand Up @@ -108,8 +108,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.67.tar.gz | tar -xf -
cd Image-ExifTool-12.67
gzip -dc Image-ExifTool-12.68.tar.gz | tar -xf -
cd Image-ExifTool-12.68
./exiftool t/images/ExifTool.jpg

Note: These commands extract meta information from one of the test images.
Expand Down
37 changes: 21 additions & 16 deletions bin/exiftool
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use strict;
use warnings;
require 5.004;

my $version = '12.67';
my $version = '12.68';

# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exePath;
Expand Down Expand Up @@ -4665,11 +4665,11 @@ supported by ExifTool (r = read, w = write, c = create):
DCP r/w | ICO r | MPG r | PSB r/w | WV r
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
DFONT r | IDML r | MQV r/w | PSP r | XCF r
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
DOC r | INX r | NKSC r/w | RAM r |
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
DLL r | INSP r/w | MXF r | RA r | XLSX r
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
DOC r | INX r | NKSC r/w | RAM r | ZIP r
DOCX r | ISO r | NRW r/w | RAR r |
Meta Information
Expand Down Expand Up @@ -5582,7 +5582,7 @@ with this command:
produces output like this:
-- Generated by ExifTool 12.67 --
-- Generated by ExifTool 12.68 --
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 Expand Up @@ -6418,10 +6418,14 @@ from the track log, and they are supported by the destination metadata
format): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime,
GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection,
GPSImgDirectionRef, GPSPitch, GPSRoll, AmbientTemperature and
CameraElevationAngle. By default, tags are created in EXIF, and updated in
XMP only if they already exist. However, C<EXIF:Geotime> or C<XMP:Geotime>
may be specified to write only EXIF or XMP tags respectively. Note that
GPSImgDirectionRef, GPSPitch, GPSRoll, GPSCoordinates, AmbientTemperature
and CameraElevationAngle. By default, in image files tags are created in
EXIF, and updated in XMP only if they already exist. In QuickTime-format
files GPSCoordinates is created in the preferred location (ItemList by
default) as well as in XMP. However, C<EXIF:Geotime>, C<XMP:Geotime> or
C<QuickTime:Geotime> may be specified to write to write only to one group.
Also, C<ItemList:Geotime>, C<Keys:Geotime> or C<UserData:Geotime> may be
used to write to a specific location in QuickTime-format files. Note that
GPSPitch and GPSRoll are non-standard, and require user-defined tags in
order to be written.
Expand Down Expand Up @@ -6544,11 +6548,12 @@ options on the command line.
Load specified configuration file instead of the default ".ExifTool_config".
If used, this option must come before all other arguments on the command
line and applies to all B<-execute>'d commands. The I<CFGFILE> must exist
relative to the current working directory or the exiftool application
directory unless an absolute path is specified. Loading of the default
config file may be disabled by setting I<CFGFILE> to an empty string (ie.
""). See L<https://exiftool.org/config.html> and
line and applies to all B<-execute>'d commands. This file is used to create
user-defined tags as well as set default ExifTool options. The I<CFGFILE>
must exist relative to the current working directory or the exiftool
application directory unless an absolute path is specified. Loading of the
default config file may be disabled by setting I<CFGFILE> to an empty string
(ie. ""). See L<https://exiftool.org/config.html> and
config_files/example.config in the full ExifTool distribution for details
about the configuration file syntax.
Expand Down
24 changes: 16 additions & 8 deletions 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);

$VERSION = '12.67';
$VERSION = '12.68';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
Expand Down Expand Up @@ -149,8 +149,8 @@ sub ReadValue($$$;$$$);
FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC MPEG::Audio
MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile QuickTime::Stream
QuickTime::Tags360Fly Matroska Matroska::StdTag MOI MXF DV Flash Flash::FLV
Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE
JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS XISF
MIE JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
EXE::PEString EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard
Text VCard::VCalendar VCard::VNote RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR
ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF FLIR::FPF MacOS MacOS::MDItem
Expand Down Expand Up @@ -193,10 +193,11 @@ $defaultLang = 'en'; # default language
@fileTypes = qw(JPEG EXV CRW DR4 TIFF GIF MRW RAF X3F JP2 PNG MIE MIFF PS PDF
PSD XMP BMP WPG BPG PPM RIFF AIFF ASF MOV MPEG Real SWF PSP FLV
OGG FLAC APE MPC MKV MXF DV PMP IND PGF ICC ITC FLIR FLIF FPF
LFP HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR
7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC
M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI R3D AA
PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO TXT);
LFP HTML VRD RTF FITS XISF XCF DSS QTIF FPX PICT ZIP GZIP PLIST
RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard LRI
R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS JSON MP3 DICOM PCD ICO
TXT);

# file types that we can write (edit)
my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
Expand Down Expand Up @@ -545,6 +546,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
X3F => ['X3F', 'Sigma RAW format'],
XCF => ['XCF', 'GIMP native image format'],
XHTML=> ['HTML', 'Extensible HyperText Markup Language'],
XISF => ['XISF', 'Extensible Image Serialization Format'],
XLA => ['FPX', 'Microsoft Excel Add-in'],
XLAM => [['ZIP','FPX'], 'Office Open XML Spreadsheet Add-in Macro-enabled'],
XLS => ['FPX', 'Microsoft Excel Spreadsheet'],
Expand Down Expand Up @@ -798,6 +800,7 @@ my %fileDescription = (
WTV => 'video/x-ms-wtv',
X3F => 'image/x-sigma-x3f',
XCF => 'image/x-xcf',
XISF => 'image/x-xisf',
XLA => 'application/vnd.ms-excel',
XLAM => 'application/vnd.ms-excel.addin.macroEnabled.12',
XLS => 'application/vnd.ms-excel',
Expand Down Expand Up @@ -994,6 +997,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
WTV => '\xb7\xd8\x00\x20\x37\x49\xda\x11\xa6\x4e\x00\x07\xe9\x5e\xad\x8d',
X3F => 'FOVb',
XCF => 'gimp xcf ',
XISF => 'XISF0100',
XMP => '\0{0,3}(\xfe\xff|\xff\xfe|\xef\xbb\xbf)?\0{0,3}\s*<',
ZIP => 'PK\x03\x04',
);
Expand Down Expand Up @@ -1581,6 +1585,7 @@ my %systemTagsNotes = (
ImageHeight => { Notes => 'the height of the image in number of pixels' },
XResolution => { Notes => 'the horizontal pixel resolution' },
YResolution => { Notes => 'the vertical pixel resolution' },
NumPlanes => { Notes => 'number of color planes' },
MaxVal => { Notes => 'maximum pixel value in PPM or PGM image' },
EXIF => {
Notes => q{
Expand Down Expand Up @@ -1844,7 +1849,7 @@ my %systemTagsNotes = (
Geotime => {
Writable => 1,
WriteOnly => 1,
AllowGroup => '(exif|gps|xmp|xmp-exif)',
AllowGroup => '(exif|gps|xmp|xmp-exif|quicktime|keys|itemlist|userdata)',
Notes => q{
this write-only tag is used to define a date/time for interpolating a
position in the GPS track specified by the Geotag tag. Writing this tag
Expand Down Expand Up @@ -7940,6 +7945,9 @@ sub DoProcessTIFF($$;$)
}
if ($$self{TIFF_TYPE} eq 'TIFF') {
$self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
} elsif ($$self{TIFF_TYPE} eq 'NRW' and $$self{VALUE}{NEFLinearizationTable}) {
# fix NEF type if misidentified as NRW
$self->OverrideFileType($$self{TIFF_TYPE} = 'NEF');
}
if ($$self{ImageDataHash} and $$self{A100DataOffset} and $raf->Seek($$self{A100DataOffset},0)) {
$self->ImageDataHash($raf, undef, 'A100');
Expand Down
10 changes: 5 additions & 5 deletions bin/lib/Image/ExifTool.pod
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,11 @@ supported by ExifTool (r = read, w = write, c = create):
DCP r/w | ICO r | MPG r | PSB r/w | WV r
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
DFONT r | IDML r | MQV r/w | PSP r | XCF r
DIVX r | IIQ r/w | MRC r | QTIF r/w | XLS r
DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
DOC r | INX r | NKSC r/w | RAM r |
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
DLL r | INSP r/w | MXF r | RA r | XLSX r
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
DOC r | INX r | NKSC r/w | RAM r | ZIP r
DOCX r | ISO r | NRW r/w | RAR r |

Meta Information
Expand Down
21 changes: 20 additions & 1 deletion 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.68';
$VERSION = '4.69';

# 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 @@ -490,6 +490,7 @@ $VERSION = '4.68';
'368.11' => 'Sigma 70mm f/2.8 DG Macro', #IB (A018)
'368.12' => 'Sigma 18-35mm f/1.8 DC HSM | A', #50
'368.13' => 'Sigma 24-105mm f/4 DG OS HSM | A', #forum3833
'368.14' => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM | C', #forum15280 (014)
# Note: LensType 488 (0x1e8) is reported as 232 (0xe8) in 7D CameraSettings
488 => 'Canon EF-S 15-85mm f/3.5-5.6 IS USM', #PH
489 => 'Canon EF 70-300mm f/4-5.6L IS USM', #Gerald Kapounek
Expand Down Expand Up @@ -1389,6 +1390,11 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
Condition => '$$self{Model} =~ /\b(1200D|REBEL T5|Kiss X70)\b/',
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfo60D' },
},
{
Name => 'CanonCameraInfoR6',
Condition => '$$self{Model} =~ /\bEOS R6$/',
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfoR6' },
},
{
Name => 'CanonCameraInfoPowerShot',
# valid if format is int32u[138] or int32u[148]
Expand Down Expand Up @@ -4695,6 +4701,19 @@ my %ciMaxFocal = (
},
);

%Image::ExifTool::Canon::CameraInfoR6 = (
%binaryDataAttrs,
FIRST_ENTRY => 0,
PRIORITY => 0,
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
NOTES => 'CameraInfo tags for the EOS R6.',
0x0af1 => { #forum15210
Name => 'ShutterCount',
Format => 'int32u',
Notes => 'includes electronic + mechanical shutter',
},
);

# Canon camera information for 70D (MakerNotes tag 0x0d) (ref PH)
%Image::ExifTool::Canon::CameraInfo70D = (
%binaryDataAttrs,
Expand Down
18 changes: 17 additions & 1 deletion bin/lib/Image/ExifTool/FujiFilm.pm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;

$VERSION = '1.89';
$VERSION = '1.90';

sub ProcessFujiDir($$$);
sub ProcessFaceRec($$$);
Expand Down Expand Up @@ -428,6 +428,14 @@ my %faceCategories = (
Name => 'ShadowTone',
Writable => 'int32s',
PrintConv => {
OTHER => sub {
my ($val, $inv) = @_;
if ($inv) {
return int(-$val * 16);
} else {
return -$val / 16;
}
},
-64 => '+4 (hardest)',
-48 => '+3 (very hard)',
-32 => '+2 (hard)',
Expand All @@ -441,6 +449,14 @@ my %faceCategories = (
Name => 'HighlightTone',
Writable => 'int32s',
PrintConv => {
OTHER => sub {
my ($val, $inv) = @_;
if ($inv) {
return int(-$val * 16);
} else {
return -$val / 16;
}
},
-64 => '+4 (hardest)',
-48 => '+3 (very hard)',
-32 => '+2 (hard)',
Expand Down
Loading

0 comments on commit 50e3a63

Please sign in to comment.