exiftool_vendored 12.67.0 → 12.68.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.
- checksums.yaml +4 -4
- data/bin/Changes +23 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +7 -7
- data/bin/exiftool +21 -16
- data/bin/lib/Image/ExifTool/Canon.pm +20 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +17 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +16 -11
- data/bin/lib/Image/ExifTool/Nikon.pm +25 -5
- data/bin/lib/Image/ExifTool/PNG.pm +14 -7
- data/bin/lib/Image/ExifTool/Panasonic.pm +8 -8
- data/bin/lib/Image/ExifTool/Pentax.pm +6 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +2 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +61 -51
- data/bin/lib/Image/ExifTool/Sony.pm +66 -21
- data/bin/lib/Image/ExifTool/TagLookup.pm +6729 -6710
- data/bin/lib/Image/ExifTool/TagNames.pod +69 -5
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -0
- data/bin/lib/Image/ExifTool/XISF.pm +185 -0
- data/bin/lib/Image/ExifTool.pm +16 -8
- data/bin/lib/Image/ExifTool.pod +5 -5
- data/bin/perl-Image-ExifTool.spec +6 -6
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8775a6c495517ead6255debf3b1c804d3e5648d563bea48171176632cfb5043b
|
|
4
|
+
data.tar.gz: 305d08e52e2ef9b75538fe0305093dad86581448d56a21d66503863b11321a6f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aa79d6fa82ae949030c90fc5e07c0271eb837336e9ee8675a1bb468b1f4f5b430b0ce78678a75e5025520a1118b7defd21a8f06242ad019d2001e10d1f270e54
|
|
7
|
+
data.tar.gz: ac7c7da4ef3ba52118a9bea9c0ccdc6a85f4d247e622e75c4e40567d582f0ca062eb68ad796a1a3745c5631c9800e243f45599a52cc8a2bfc99daf00af9cd928
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,27 @@ RSS feed: https://exiftool.org/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 12.60. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Oct. 16, 2023 - Version 12.68
|
|
11
|
+
|
|
12
|
+
- Added preliminary read support for XISF images
|
|
13
|
+
- Added the ability to delete JUMBF metadata from PNG images
|
|
14
|
+
- Added support for writing Canon burst-roll CR3 images
|
|
15
|
+
- Added a new Nikon Z9 SubjectDetection value, and improved Zf support
|
|
16
|
+
- Added a couple of new PentaxModelID values
|
|
17
|
+
- Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
|
|
18
|
+
- Added a support for a new XMP-photomech tag
|
|
19
|
+
- Added a new Nikon LensID
|
|
20
|
+
- Added a new Canon LensType
|
|
21
|
+
- Added a new QuickTime ItemList tag
|
|
22
|
+
- Support decimal values for FujiFilm ShadowTone and HighlightTone tags
|
|
23
|
+
- Decode some new Sony tags (thanks Jos Roost)
|
|
24
|
+
- Decode ShutterCount for Canon EOS R6 (thanks gamin)
|
|
25
|
+
- Decode QuickTime VideoFullRangeFlag
|
|
26
|
+
- Decode JPGCompression for the Nikon D3S
|
|
27
|
+
- Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
|
|
28
|
+
- Renamed Panasonic HDRShot tag to MergedImages (forum 15298)
|
|
29
|
+
- Fixed problem where some NEF files were misidentified as NRW
|
|
30
|
+
|
|
10
31
|
Sept. 19, 2023 - Version 12.67
|
|
11
32
|
|
|
12
33
|
- Added a new Pentax LensType (thanks dmont)
|
|
@@ -155,6 +176,8 @@ Apr. 5, 2023 - Version 12.60 (production release)
|
|
|
155
176
|
- Fixed problem where setting the Geotime value didn't work when using an
|
|
156
177
|
advanced-formatting expression containing a greater-than symbol (>)
|
|
157
178
|
|
|
179
|
+
History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
|
|
180
|
+
|
|
158
181
|
Mar. 28, 2023 - Version 12.59
|
|
159
182
|
|
|
160
183
|
- COMPATIBILITY WARNING: Changed the calculated ImageDataMD5 for JPEG images
|
|
@@ -343,8 +366,6 @@ Nov. 8, 2022 - Version 12.50 (production release)
|
|
|
343
366
|
- Fixed inconsistent year and time zone for Kenwood dashcam timed GPS in MP4
|
|
344
367
|
videos
|
|
345
368
|
|
|
346
|
-
History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
|
|
347
|
-
|
|
348
369
|
Oct. 19, 2022 - Version 12.49
|
|
349
370
|
|
|
350
371
|
- Added read support for Windows ICO and CUR files
|
data/bin/MANIFEST
CHANGED
|
@@ -179,6 +179,7 @@ html/TagNames/VCard.html
|
|
|
179
179
|
html/TagNames/Vorbis.html
|
|
180
180
|
html/TagNames/WPG.html
|
|
181
181
|
html/TagNames/WTV.html
|
|
182
|
+
html/TagNames/XISF.html
|
|
182
183
|
html/TagNames/XMP.html
|
|
183
184
|
html/TagNames/ZIP.html
|
|
184
185
|
html/TagNames/ZISRAW.html
|
|
@@ -432,6 +433,7 @@ lib/Image/ExifTool/WriteQuickTime.pl
|
|
|
432
433
|
lib/Image/ExifTool/WriteRIFF.pl
|
|
433
434
|
lib/Image/ExifTool/WriteXMP.pl
|
|
434
435
|
lib/Image/ExifTool/Writer.pl
|
|
436
|
+
lib/Image/ExifTool/XISF.pm
|
|
435
437
|
lib/Image/ExifTool/XMP.pm
|
|
436
438
|
lib/Image/ExifTool/XMP2.pl
|
|
437
439
|
lib/Image/ExifTool/XMPStruct.pl
|
|
@@ -916,6 +918,8 @@ t/Writer_6.out
|
|
|
916
918
|
t/Writer_60.out
|
|
917
919
|
t/Writer_7.out
|
|
918
920
|
t/Writer_9.out
|
|
921
|
+
t/XISF.t
|
|
922
|
+
t/XISF_2.out
|
|
919
923
|
t/XMP.t
|
|
920
924
|
t/XMP_10.out
|
|
921
925
|
t/XMP_11.out
|
|
@@ -1144,6 +1148,7 @@ t/images/Vorbis.ogg
|
|
|
1144
1148
|
t/images/WPG.wpg
|
|
1145
1149
|
t/images/WTV.wtv
|
|
1146
1150
|
t/images/Writer.jpg
|
|
1151
|
+
t/images/XISF.xisf
|
|
1147
1152
|
t/images/XMP.inx
|
|
1148
1153
|
t/images/XMP.jpg
|
|
1149
1154
|
t/images/XMP.svg
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -51,11 +51,11 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
51
51
|
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
|
52
52
|
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
|
53
53
|
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
|
54
|
-
DIVX r | IIQ r/w | MRC r | QTIF r/w |
|
|
55
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
|
56
|
-
DLL r | INSP r/w | MXF r | RA r |
|
|
57
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
|
58
|
-
DOC r | INX r | NKSC r/w | RAM r |
|
|
54
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
|
|
55
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
|
|
56
|
+
DLL r | INSP r/w | MXF r | RA r | XLSX r
|
|
57
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
|
|
58
|
+
DOC r | INX r | NKSC r/w | RAM r | ZIP r
|
|
59
59
|
DOCX r | ISO r | NRW r/w | RAR r |
|
|
60
60
|
|
|
61
61
|
Meta Information
|
|
@@ -108,8 +108,8 @@ your home directory, then you would type the following commands in a
|
|
|
108
108
|
terminal window to extract and run ExifTool:
|
|
109
109
|
|
|
110
110
|
cd ~/Desktop
|
|
111
|
-
gzip -dc Image-ExifTool-12.
|
|
112
|
-
cd Image-ExifTool-12.
|
|
111
|
+
gzip -dc Image-ExifTool-12.68.tar.gz | tar -xf -
|
|
112
|
+
cd Image-ExifTool-12.68
|
|
113
113
|
./exiftool t/images/ExifTool.jpg
|
|
114
114
|
|
|
115
115
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '12.
|
|
14
|
+
my $version = '12.68';
|
|
15
15
|
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
17
17
|
my $exePath;
|
|
@@ -4665,11 +4665,11 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
4665
4665
|
DCP r/w | ICO r | MPG r | PSB r/w | WV r
|
|
4666
4666
|
DCR r | ICS r | MPO r/w | PSD r/w | X3F r/w
|
|
4667
4667
|
DFONT r | IDML r | MQV r/w | PSP r | XCF r
|
|
4668
|
-
DIVX r | IIQ r/w | MRC r | QTIF r/w |
|
|
4669
|
-
DJVU r | IND r/w | MRW r/w | R3D r |
|
|
4670
|
-
DLL r | INSP r/w | MXF r | RA r |
|
|
4671
|
-
DNG r/w | INSV r | NEF r/w | RAF r/w |
|
|
4672
|
-
DOC r | INX r | NKSC r/w | RAM r |
|
|
4668
|
+
DIVX r | IIQ r/w | MRC r | QTIF r/w | XISF r
|
|
4669
|
+
DJVU r | IND r/w | MRW r/w | R3D r | XLS r
|
|
4670
|
+
DLL r | INSP r/w | MXF r | RA r | XLSX r
|
|
4671
|
+
DNG r/w | INSV r | NEF r/w | RAF r/w | XMP r/w/c
|
|
4672
|
+
DOC r | INX r | NKSC r/w | RAM r | ZIP r
|
|
4673
4673
|
DOCX r | ISO r | NRW r/w | RAR r |
|
|
4674
4674
|
|
|
4675
4675
|
Meta Information
|
|
@@ -5582,7 +5582,7 @@ with this command:
|
|
|
5582
5582
|
|
|
5583
5583
|
produces output like this:
|
|
5584
5584
|
|
|
5585
|
-
-- Generated by ExifTool 12.
|
|
5585
|
+
-- Generated by ExifTool 12.68 --
|
|
5586
5586
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5587
5587
|
(f/5.6, 1/60s, ISO 100)
|
|
5588
5588
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -6418,10 +6418,14 @@ from the track log, and they are supported by the destination metadata
|
|
|
6418
6418
|
format): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
|
|
6419
6419
|
GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime,
|
|
6420
6420
|
GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection,
|
|
6421
|
-
GPSImgDirectionRef, GPSPitch, GPSRoll, AmbientTemperature
|
|
6422
|
-
CameraElevationAngle. By default, tags are created in
|
|
6423
|
-
XMP only if they already exist.
|
|
6424
|
-
|
|
6421
|
+
GPSImgDirectionRef, GPSPitch, GPSRoll, GPSCoordinates, AmbientTemperature
|
|
6422
|
+
and CameraElevationAngle. By default, in image files tags are created in
|
|
6423
|
+
EXIF, and updated in XMP only if they already exist. In QuickTime-format
|
|
6424
|
+
files GPSCoordinates is created in the preferred location (ItemList by
|
|
6425
|
+
default) as well as in XMP. However, C<EXIF:Geotime>, C<XMP:Geotime> or
|
|
6426
|
+
C<QuickTime:Geotime> may be specified to write to write only to one group.
|
|
6427
|
+
Also, C<ItemList:Geotime>, C<Keys:Geotime> or C<UserData:Geotime> may be
|
|
6428
|
+
used to write to a specific location in QuickTime-format files. Note that
|
|
6425
6429
|
GPSPitch and GPSRoll are non-standard, and require user-defined tags in
|
|
6426
6430
|
order to be written.
|
|
6427
6431
|
|
|
@@ -6544,11 +6548,12 @@ options on the command line.
|
|
|
6544
6548
|
|
|
6545
6549
|
Load specified configuration file instead of the default ".ExifTool_config".
|
|
6546
6550
|
If used, this option must come before all other arguments on the command
|
|
6547
|
-
line and applies to all B<-execute>'d commands.
|
|
6548
|
-
|
|
6549
|
-
|
|
6550
|
-
|
|
6551
|
-
|
|
6551
|
+
line and applies to all B<-execute>'d commands. This file is used to create
|
|
6552
|
+
user-defined tags as well as set default ExifTool options. The I<CFGFILE>
|
|
6553
|
+
must exist relative to the current working directory or the exiftool
|
|
6554
|
+
application directory unless an absolute path is specified. Loading of the
|
|
6555
|
+
default config file may be disabled by setting I<CFGFILE> to an empty string
|
|
6556
|
+
(ie. ""). See L<https://exiftool.org/config.html> and
|
|
6552
6557
|
config_files/example.config in the full ExifTool distribution for details
|
|
6553
6558
|
about the configuration file syntax.
|
|
6554
6559
|
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.69';
|
|
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)
|
|
@@ -490,6 +490,7 @@ $VERSION = '4.68';
|
|
|
490
490
|
'368.11' => 'Sigma 70mm f/2.8 DG Macro', #IB (A018)
|
|
491
491
|
'368.12' => 'Sigma 18-35mm f/1.8 DC HSM | A', #50
|
|
492
492
|
'368.13' => 'Sigma 24-105mm f/4 DG OS HSM | A', #forum3833
|
|
493
|
+
'368.14' => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM | C', #forum15280 (014)
|
|
493
494
|
# Note: LensType 488 (0x1e8) is reported as 232 (0xe8) in 7D CameraSettings
|
|
494
495
|
488 => 'Canon EF-S 15-85mm f/3.5-5.6 IS USM', #PH
|
|
495
496
|
489 => 'Canon EF 70-300mm f/4-5.6L IS USM', #Gerald Kapounek
|
|
@@ -1389,6 +1390,11 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1389
1390
|
Condition => '$$self{Model} =~ /\b(1200D|REBEL T5|Kiss X70)\b/',
|
|
1390
1391
|
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfo60D' },
|
|
1391
1392
|
},
|
|
1393
|
+
{
|
|
1394
|
+
Name => 'CanonCameraInfoR6',
|
|
1395
|
+
Condition => '$$self{Model} =~ /\bEOS R6$/',
|
|
1396
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Canon::CameraInfoR6' },
|
|
1397
|
+
},
|
|
1392
1398
|
{
|
|
1393
1399
|
Name => 'CanonCameraInfoPowerShot',
|
|
1394
1400
|
# valid if format is int32u[138] or int32u[148]
|
|
@@ -4695,6 +4701,19 @@ my %ciMaxFocal = (
|
|
|
4695
4701
|
},
|
|
4696
4702
|
);
|
|
4697
4703
|
|
|
4704
|
+
%Image::ExifTool::Canon::CameraInfoR6 = (
|
|
4705
|
+
%binaryDataAttrs,
|
|
4706
|
+
FIRST_ENTRY => 0,
|
|
4707
|
+
PRIORITY => 0,
|
|
4708
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
4709
|
+
NOTES => 'CameraInfo tags for the EOS R6.',
|
|
4710
|
+
0x0af1 => { #forum15210
|
|
4711
|
+
Name => 'ShutterCount',
|
|
4712
|
+
Format => 'int32u',
|
|
4713
|
+
Notes => 'includes electronic + mechanical shutter',
|
|
4714
|
+
},
|
|
4715
|
+
);
|
|
4716
|
+
|
|
4698
4717
|
# Canon camera information for 70D (MakerNotes tag 0x0d) (ref PH)
|
|
4699
4718
|
%Image::ExifTool::Canon::CameraInfo70D = (
|
|
4700
4719
|
%binaryDataAttrs,
|
|
@@ -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.
|
|
34
|
+
$VERSION = '1.90';
|
|
35
35
|
|
|
36
36
|
sub ProcessFujiDir($$$);
|
|
37
37
|
sub ProcessFaceRec($$$);
|
|
@@ -428,6 +428,14 @@ my %faceCategories = (
|
|
|
428
428
|
Name => 'ShadowTone',
|
|
429
429
|
Writable => 'int32s',
|
|
430
430
|
PrintConv => {
|
|
431
|
+
OTHER => sub {
|
|
432
|
+
my ($val, $inv) = @_;
|
|
433
|
+
if ($inv) {
|
|
434
|
+
return int(-$val * 16);
|
|
435
|
+
} else {
|
|
436
|
+
return -$val / 16;
|
|
437
|
+
}
|
|
438
|
+
},
|
|
431
439
|
-64 => '+4 (hardest)',
|
|
432
440
|
-48 => '+3 (very hard)',
|
|
433
441
|
-32 => '+2 (hard)',
|
|
@@ -441,6 +449,14 @@ my %faceCategories = (
|
|
|
441
449
|
Name => 'HighlightTone',
|
|
442
450
|
Writable => 'int32s',
|
|
443
451
|
PrintConv => {
|
|
452
|
+
OTHER => sub {
|
|
453
|
+
my ($val, $inv) = @_;
|
|
454
|
+
if ($inv) {
|
|
455
|
+
return int(-$val * 16);
|
|
456
|
+
} else {
|
|
457
|
+
return -$val / 16;
|
|
458
|
+
}
|
|
459
|
+
},
|
|
444
460
|
-64 => '+4 (hardest)',
|
|
445
461
|
-48 => '+3 (very hard)',
|
|
446
462
|
-32 => '+2 (hard)',
|
|
@@ -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.
|
|
32
|
+
$VERSION = '1.73';
|
|
33
33
|
|
|
34
34
|
sub JITTER() { return 2 } # maximum time jitter
|
|
35
35
|
|
|
@@ -1196,24 +1196,29 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
|
1196
1196
|
# write GPSDateStamp if date included in track log, otherwise delete it
|
|
1197
1197
|
$gpsDate = sprintf('%.2d:%.2d:%.2d', $t[5]+1900, $t[4]+1, $t[3]) unless $noDate;
|
|
1198
1198
|
# write GPSAltitude tags if altitude included in track log, otherwise delete them
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
$gpsAltRef = ($$fix{alt} < 0 ? 1 : 0);
|
|
1202
|
-
} elsif ($$has{alt} and defined $iExt) {
|
|
1199
|
+
my $alt = $$fix{alt};
|
|
1200
|
+
if (not defined $alt and $$has{alt} and defined $iExt) {
|
|
1203
1201
|
my $tFix = FindFix($et,'alt',$times,$points,$iExt,$iDir,$geoMaxExtSecs);
|
|
1204
|
-
if
|
|
1205
|
-
$gpsAlt = abs $$tFix{alt};
|
|
1206
|
-
$gpsAltRef = ($$tFix{alt} < 0 ? 1 : 0);
|
|
1207
|
-
}
|
|
1202
|
+
$alt = $$tFix{alt} if $tFix;
|
|
1208
1203
|
}
|
|
1209
1204
|
# set new GPS tag values (EXIF, or XMP if write group is 'xmp')
|
|
1210
|
-
my ($xmp, $exif, @r);
|
|
1205
|
+
my ($xmp, $exif, $qt, @r);
|
|
1211
1206
|
my %opts = ( Type => 'ValueConv' ); # write ValueConv values
|
|
1212
1207
|
if ($writeGroup) {
|
|
1213
1208
|
$opts{Group} = $writeGroup;
|
|
1214
1209
|
$xmp = ($writeGroup =~ /xmp/i);
|
|
1215
1210
|
$exif = ($writeGroup =~ /^(exif|gps)$/i);
|
|
1211
|
+
$qt = $writeGroup =~ /^(quicktime|keys|itemlist|userdata)$/i;
|
|
1212
|
+
}
|
|
1213
|
+
# set QuickTime GPSCoordinates
|
|
1214
|
+
my $coords = "$$fix{lat} $$fix{lon}";
|
|
1215
|
+
if (defined $alt) {
|
|
1216
|
+
$gpsAlt = abs $alt;
|
|
1217
|
+
$gpsAltRef = ($alt < 0 ? 1 : 0);
|
|
1218
|
+
$coords .= " $alt";
|
|
1216
1219
|
}
|
|
1220
|
+
@r = $et->SetNewValue(GPSCoordinates => $coords, %opts);
|
|
1221
|
+
return $err if $qt; # all done if writing to QuickTime only
|
|
1217
1222
|
# (capture error messages by calling SetNewValue in list context)
|
|
1218
1223
|
@r = $et->SetNewValue(GPSLatitude => $$fix{lat}, %opts);
|
|
1219
1224
|
@r = $et->SetNewValue(GPSLongitude => $$fix{lon}, %opts);
|
|
@@ -1288,7 +1293,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
|
1288
1293
|
GPSAltitude GPSAltitudeRef GPSDateStamp GPSTimeStamp GPSDateTime
|
|
1289
1294
|
GPSTrack GPSTrackRef GPSSpeed GPSSpeedRef GPSImgDirection
|
|
1290
1295
|
GPSImgDirectionRef GPSPitch GPSRoll CameraElevationAngle
|
|
1291
|
-
AmbientTemperature))
|
|
1296
|
+
AmbientTemperature GPSCoordinates))
|
|
1292
1297
|
{
|
|
1293
1298
|
my @r = $et->SetNewValue($_, undef, %opts);
|
|
1294
1299
|
}
|
|
@@ -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.
|
|
68
|
+
$VERSION = '4.26';
|
|
69
69
|
|
|
70
70
|
sub LensIDConv($$$);
|
|
71
71
|
sub ProcessNikonAVI($$$);
|
|
@@ -676,6 +676,7 @@ sub GetAFPointGrid($$;$);
|
|
|
676
676
|
'07 40 30 45 2D 35 03 02.2' => 'Voigtlander Ultragon 19-35mm F3.5-4.5 VMV', #NJ
|
|
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
|
+
'FD 00 44 44 18 18 DF 00' => 'Voigtlander APO-Lanthar 35mm F2', #30
|
|
679
680
|
#
|
|
680
681
|
'00 40 2D 2D 2C 2C 00 00' => 'Carl Zeiss Distagon T* 3.5/18 ZF.2',
|
|
681
682
|
'00 48 27 27 24 24 00 00' => 'Carl Zeiss Distagon T* 2.8/15 ZF.2', #MykytaKozlov
|
|
@@ -1188,6 +1189,7 @@ my %subjectDetectionZ9 = (
|
|
|
1188
1189
|
2 => 'People',
|
|
1189
1190
|
3 => 'Animals',
|
|
1190
1191
|
4 => 'Vehicles',
|
|
1192
|
+
5 => 'Birds',
|
|
1191
1193
|
6 => 'Airplanes',
|
|
1192
1194
|
);
|
|
1193
1195
|
|
|
@@ -2421,8 +2423,8 @@ my %base64coord = (
|
|
|
2421
2423
|
},
|
|
2422
2424
|
},
|
|
2423
2425
|
{ # (Z6_2 firmware version 1.00 and Z7II firmware versions 1.00 & 1.01, ref 28)
|
|
2424
|
-
# 0800=Z6/Z7 0801=Z50 0802=Z5 0803=Z6II/Z7II 0804=Zfc 0807=Z30
|
|
2425
|
-
Condition => '$$valPt =~ /^080[
|
|
2426
|
+
# 0800=Z6/Z7 0801=Z50 0802=Z5 0803=Z6II/Z7II 0804=Zfc 0807=Z30 0808=Zf
|
|
2427
|
+
Condition => '$$valPt =~ /^080[0123478]/',
|
|
2426
2428
|
Name => 'ShotInfoZ7II',
|
|
2427
2429
|
SubDirectory => {
|
|
2428
2430
|
TagTable => 'Image::ExifTool::Nikon::ShotInfoZ7II',
|
|
@@ -2481,7 +2483,7 @@ my %base64coord = (
|
|
|
2481
2483
|
},
|
|
2482
2484
|
0x0094 => { Name => 'SaturationAdj', Writable => 'int16s' },
|
|
2483
2485
|
0x0095 => { Name => 'NoiseReduction', Writable => 'string' }, # ("Off" or "FPNR"=long exposure NR)
|
|
2484
|
-
0x0096 => {
|
|
2486
|
+
0x0096 => { # (not found in NRW files, but also not in all NEF's)
|
|
2485
2487
|
Name => 'NEFLinearizationTable', # same table as DNG LinearizationTable (ref JD)
|
|
2486
2488
|
Writable => 'undef',
|
|
2487
2489
|
Flags => [ 'Binary', 'Protected' ],
|
|
@@ -6056,6 +6058,24 @@ my %nikonFocalConversions = (
|
|
|
6056
6058
|
Format => 'int32u',
|
|
6057
6059
|
Priority => 0,
|
|
6058
6060
|
},
|
|
6061
|
+
671.1 => { # 0x29f
|
|
6062
|
+
Name => 'JPGCompression',
|
|
6063
|
+
Mask => 0x40,
|
|
6064
|
+
PrintConv => {
|
|
6065
|
+
0 => 'Size Priority',
|
|
6066
|
+
1 => 'Optimal Quality',
|
|
6067
|
+
},
|
|
6068
|
+
},
|
|
6069
|
+
# this works for one set of D3S samples, but is 0 in some others
|
|
6070
|
+
#671.2 => { # 0x29f
|
|
6071
|
+
# Name => 'Quality',
|
|
6072
|
+
# Mask => 0x03,
|
|
6073
|
+
# PrintConv => {
|
|
6074
|
+
# 1 => 'Fine',
|
|
6075
|
+
# 2 => 'Normal',
|
|
6076
|
+
# 3 => 'Basic',
|
|
6077
|
+
# },
|
|
6078
|
+
#},
|
|
6059
6079
|
0x2ce => { #(NC)
|
|
6060
6080
|
Name => 'CustomSettingsD3S',
|
|
6061
6081
|
Format => 'undef[27]',
|
|
@@ -8848,7 +8868,7 @@ my %nikonFocalConversions = (
|
|
|
8848
8868
|
%binaryDataAttrs,
|
|
8849
8869
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
8850
8870
|
DATAMEMBER => [ 90, 176, 180, 328, 352, 858 ],
|
|
8851
|
-
NOTES => 'These tags are used by the Z5, Z6, Z7, Z6II, Z7II, Z50 and
|
|
8871
|
+
NOTES => 'These tags are used by the Z5, Z6, Z7, Z6II, Z7II, Z50, Zfc and Zf.',
|
|
8852
8872
|
#48 SelfTimer' #0=> no 1=> yes works for Z7II firmware 1.40, but not 1.30. Follow-up required.
|
|
8853
8873
|
90 => {
|
|
8854
8874
|
Name => 'SingleFrame', #0=> Single Frame 1=> one of the continuous modes
|
|
@@ -36,7 +36,7 @@ use strict;
|
|
|
36
36
|
use vars qw($VERSION $AUTOLOAD %stdCase);
|
|
37
37
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
38
38
|
|
|
39
|
-
$VERSION = '1.
|
|
39
|
+
$VERSION = '1.65';
|
|
40
40
|
|
|
41
41
|
sub ProcessPNG_tEXt($$$);
|
|
42
42
|
sub ProcessPNG_iTXt($$$);
|
|
@@ -973,13 +973,20 @@ sub FoundPNG($$$$;$$$$)
|
|
|
973
973
|
undef $processProc if $wasCompressed and $processProc and $processProc eq \&ProcessPNG_Compressed;
|
|
974
974
|
# rewrite this directory if necessary (but always process TextualData normally)
|
|
975
975
|
if ($outBuff and not $processProc and $subTable ne \%Image::ExifTool::PNG::TextualData) {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
976
|
+
# allow JUMBF to be deleted (may want to expand this for other types too?)
|
|
977
|
+
if ($dirName eq 'JUMBF' and $$et{DEL_GROUP}{$dirName}) {
|
|
978
|
+
$$outBuff = '';
|
|
979
|
+
++$$et{CHANGED};
|
|
980
|
+
$et->VPrint(0, " Deleting $dirName");
|
|
981
|
+
} else {
|
|
982
|
+
return 1 unless $$et{EDIT_DIRS}{$dirName};
|
|
983
|
+
$$outBuff = $et->WriteDirectory(\%subdirInfo, $subTable);
|
|
984
|
+
if ($tagName eq 'XMP' and $$outBuff) {
|
|
985
|
+
# make sure the XMP is marked as read-only
|
|
986
|
+
Image::ExifTool::XMP::ValidateXMP($outBuff,'r');
|
|
987
|
+
}
|
|
988
|
+
DoneDir($et, $dirName, $outBuff, $$tagInfo{NonStandard});
|
|
981
989
|
}
|
|
982
|
-
DoneDir($et, $dirName, $outBuff, $$tagInfo{NonStandard});
|
|
983
990
|
} else {
|
|
984
991
|
$processed = $et->ProcessDirectory(\%subdirInfo, $subTable, $processProc);
|
|
985
992
|
}
|
|
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
|
|
|
37
37
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
38
38
|
use Image::ExifTool::Exif;
|
|
39
39
|
|
|
40
|
-
$VERSION = '2.
|
|
40
|
+
$VERSION = '2.19';
|
|
41
41
|
|
|
42
42
|
sub ProcessLeicaLEIC($$$);
|
|
43
43
|
sub WhiteBalanceConv($;$$);
|
|
@@ -1070,18 +1070,18 @@ my %shootingMode = (
|
|
|
1070
1070
|
},
|
|
1071
1071
|
},
|
|
1072
1072
|
# 0x71 - undef[128] (maybe text stamp text?)
|
|
1073
|
+
# 0x72,0x73,0x74,0x75,0x77,0x78: 0
|
|
1074
|
+
# 0x76: 0, (3 for G6 with HDR on, ref 18)
|
|
1075
|
+
0x76 => { #18/21/forum15298
|
|
1076
|
+
Name => 'MergedImages',
|
|
1077
|
+
Writable => 'int16u',
|
|
1078
|
+
Notes => 'number of images in HDR or Live View Composite picture',
|
|
1079
|
+
},
|
|
1073
1080
|
0x77 => { #18
|
|
1074
1081
|
Name => 'BurstSpeed',
|
|
1075
1082
|
Writable => 'int16u',
|
|
1076
1083
|
Notes => 'images per second',
|
|
1077
1084
|
},
|
|
1078
|
-
# 0x72,0x73,0x74,0x75,0x77,0x78: 0
|
|
1079
|
-
# 0x76: 0, (3 for G6 with HDR on, ref 18)
|
|
1080
|
-
0x76 => { #18/21
|
|
1081
|
-
Name => 'HDRShot',
|
|
1082
|
-
Writable => 'int16u',
|
|
1083
|
-
PrintConv => { 0 => 'Off', 3 => 'On' },
|
|
1084
|
-
},
|
|
1085
1085
|
0x79 => { #PH (GH2)
|
|
1086
1086
|
Name => 'IntelligentD-Range',
|
|
1087
1087
|
Writable => 'int16u',
|
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
|
58
58
|
use Image::ExifTool::GPS;
|
|
59
59
|
use Image::ExifTool::HP;
|
|
60
60
|
|
|
61
|
-
$VERSION = '3.
|
|
61
|
+
$VERSION = '3.44';
|
|
62
62
|
|
|
63
63
|
sub CryptShutterCount($$);
|
|
64
64
|
sub PrintFilter($$$);
|
|
@@ -556,6 +556,8 @@ my %pentaxModelID = (
|
|
|
556
556
|
0x13240 => 'K-1 Mark II', # (Ricoh)
|
|
557
557
|
0x13254 => 'K-3 Mark III', #IB (Ricoh)
|
|
558
558
|
0x13290 => 'WG-70', # (Ricoh)
|
|
559
|
+
0x1329a => 'GR IIIx', # (Ricoh)
|
|
560
|
+
0x132d6 => 'K-3 Mark III Monochrome', #github226 (Ricoh)
|
|
559
561
|
);
|
|
560
562
|
|
|
561
563
|
# Pentax city codes - (PH, Optio WP)
|
|
@@ -971,6 +973,7 @@ my %binaryDataAttrs = (
|
|
|
971
973
|
5 => 'Premium', #PH (K20D)
|
|
972
974
|
7 => 'RAW (pixel shift enabled)', #forum6536 (K-3 II)
|
|
973
975
|
8 => 'Dynamic Pixel Shift', #IB
|
|
976
|
+
9 => 'Monochrome', #github226
|
|
974
977
|
65535 => 'n/a', #PH (Q MOV video)
|
|
975
978
|
},
|
|
976
979
|
},
|
|
@@ -2144,6 +2147,7 @@ my %binaryDataAttrs = (
|
|
|
2144
2147
|
11 => 'Flat', #31 (K-70)
|
|
2145
2148
|
# 256 - seen for GR III
|
|
2146
2149
|
# 262 - seen for GR III
|
|
2150
|
+
32768 => 'n/a',
|
|
2147
2151
|
},
|
|
2148
2152
|
},
|
|
2149
2153
|
0x0050 => { #PH
|
|
@@ -2230,6 +2234,7 @@ my %binaryDataAttrs = (
|
|
|
2230
2234
|
18 => '18 (KP)', #PH
|
|
2231
2235
|
19 => '19 (GR III)', #PH
|
|
2232
2236
|
20 => '20 (K-3III)', #PH
|
|
2237
|
+
21 => '21 (K-3IIIMonochrome)', #github226
|
|
2233
2238
|
},
|
|
2234
2239
|
},
|
|
2235
2240
|
0x0067 => { #PH (K-5)
|
|
@@ -15,7 +15,7 @@ use Image::ExifTool::Exif;
|
|
|
15
15
|
use Image::ExifTool::IPTC;
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.07';
|
|
19
19
|
|
|
20
20
|
sub ProcessPhotoMechanic($$);
|
|
21
21
|
|
|
@@ -138,6 +138,7 @@ my %rawCropConv = (
|
|
|
138
138
|
ValueConv => 'Image::ExifTool::Exif::ExifTime($val)',
|
|
139
139
|
ValueConvInv => 'Image::ExifTool::IPTC::IptcTime($val)',
|
|
140
140
|
},
|
|
141
|
+
CreatorIdentity => { },
|
|
141
142
|
);
|
|
142
143
|
|
|
143
144
|
#------------------------------------------------------------------------------
|