exiftool_vendored 12.67.0 → 12.68.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a6389f7140433c97eea74b3a6b428d8c5d940dc4d295741a9a69027ee561079
4
- data.tar.gz: b28eb642d02cf914b516e1e5e2a40588548b7ab77158a1cf78ee6b76334ad682
3
+ metadata.gz: 8775a6c495517ead6255debf3b1c804d3e5648d563bea48171176632cfb5043b
4
+ data.tar.gz: 305d08e52e2ef9b75538fe0305093dad86581448d56a21d66503863b11321a6f
5
5
  SHA512:
6
- metadata.gz: 0b6f0e36a66b21a6e6d9635484cba7d0ad9f94aabfede322548a0f7e31e100aa0c75766f4c0248fba3be575e734ef698b270086b5a35ba3c5164118090cc02f6
7
- data.tar.gz: 15859db49991094833a0e8cb4ac64604b8235abc48fdb0baea28f4d4c6a1260c9b241be4e4b4ceabc4ca840eb4da9386546f843913702488109ab2393fb1465f
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
@@ -50,5 +50,5 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "12.67"
53
+ "version" : "12.68"
54
54
  }
data/bin/META.yml CHANGED
@@ -31,4 +31,4 @@ recommends:
31
31
  Time::HiRes: 0
32
32
  requires:
33
33
  perl: 5.004
34
- version: 12.67
34
+ version: 12.68
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 | XLS r
55
- DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
56
- DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
57
- DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
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.67.tar.gz | tar -xf -
112
- cd Image-ExifTool-12.67
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.67';
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 | XLS r
4669
- DJVU r | IND r/w | MRW r/w | R3D r | XLSX r
4670
- DLL r | INSP r/w | MXF r | RA r | XMP r/w/c
4671
- DNG r/w | INSV r | NEF r/w | RAF r/w | ZIP r
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.67 --
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 and
6422
- CameraElevationAngle. By default, tags are created in EXIF, and updated in
6423
- XMP only if they already exist. However, C<EXIF:Geotime> or C<XMP:Geotime>
6424
- may be specified to write only EXIF or XMP tags respectively. Note that
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. The I<CFGFILE> must exist
6548
- relative to the current working directory or the exiftool application
6549
- directory unless an absolute path is specified. Loading of the default
6550
- config file may be disabled by setting I<CFGFILE> to an empty string (ie.
6551
- ""). See L<https://exiftool.org/config.html> and
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.68';
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.89';
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.72';
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
- if (defined $$fix{alt}) {
1200
- $gpsAlt = abs $$fix{alt};
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 ($tFix) {
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.25';
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[012347]/',
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 Zfc.',
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.64';
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
- return 1 unless $$et{EDIT_DIRS}{$dirName};
977
- $$outBuff = $et->WriteDirectory(\%subdirInfo, $subTable);
978
- if ($tagName eq 'XMP' and $$outBuff) {
979
- # make sure the XMP is marked as read-only
980
- Image::ExifTool::XMP::ValidateXMP($outBuff,'r');
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.18';
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.43';
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.06';
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
  #------------------------------------------------------------------------------