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 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
  #------------------------------------------------------------------------------