exiftool_vendored 12.56.0 → 12.58.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +35 -2
  3. data/bin/META.json +1 -1
  4. data/bin/META.yml +1 -1
  5. data/bin/README +2 -2
  6. data/bin/config_files/rotate_regions.config +1 -1
  7. data/bin/exiftool +95 -47
  8. data/bin/lib/Image/ExifTool/AIFF.pm +2 -2
  9. data/bin/lib/Image/ExifTool/APE.pm +2 -2
  10. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +19 -15
  11. data/bin/lib/Image/ExifTool/Canon.pm +26 -6
  12. data/bin/lib/Image/ExifTool/DJI.pm +28 -2
  13. data/bin/lib/Image/ExifTool/Exif.pm +24 -5
  14. data/bin/lib/Image/ExifTool/FlashPix.pm +6 -2
  15. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
  16. data/bin/lib/Image/ExifTool/GPS.pm +7 -2
  17. data/bin/lib/Image/ExifTool/JPEG.pm +14 -2
  18. data/bin/lib/Image/ExifTool/Jpeg2000.pm +5 -5
  19. data/bin/lib/Image/ExifTool/LNK.pm +5 -4
  20. data/bin/lib/Image/ExifTool/MIE.pm +3 -3
  21. data/bin/lib/Image/ExifTool/MPEG.pm +2 -2
  22. data/bin/lib/Image/ExifTool/MakerNotes.pm +2 -2
  23. data/bin/lib/Image/ExifTool/Minolta.pm +6 -7
  24. data/bin/lib/Image/ExifTool/Nikon.pm +998 -903
  25. data/bin/lib/Image/ExifTool/NikonCustom.pm +2 -2
  26. data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  27. data/bin/lib/Image/ExifTool/Olympus.pm +3 -1
  28. data/bin/lib/Image/ExifTool/Pentax.pm +8 -5
  29. data/bin/lib/Image/ExifTool/Photoshop.pm +38 -7
  30. data/bin/lib/Image/ExifTool/QuickTime.pm +23 -7
  31. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +3 -1
  32. data/bin/lib/Image/ExifTool/README +19 -2
  33. data/bin/lib/Image/ExifTool/RIFF.pm +3 -3
  34. data/bin/lib/Image/ExifTool/Rawzor.pm +2 -2
  35. data/bin/lib/Image/ExifTool/Sigma.pm +5 -4
  36. data/bin/lib/Image/ExifTool/Sony.pm +23 -1
  37. data/bin/lib/Image/ExifTool/TagLookup.pm +4670 -4628
  38. data/bin/lib/Image/ExifTool/TagNames.pod +261 -89
  39. data/bin/lib/Image/ExifTool/Validate.pm +5 -5
  40. data/bin/lib/Image/ExifTool/WriteExif.pl +42 -0
  41. data/bin/lib/Image/ExifTool/Writer.pl +39 -17
  42. data/bin/lib/Image/ExifTool/XMP.pm +2 -2
  43. data/bin/lib/Image/ExifTool.pm +94 -33
  44. data/bin/lib/Image/ExifTool.pod +4 -4
  45. data/bin/perl-Image-ExifTool.spec +1 -1
  46. data/lib/exiftool_vendored/version.rb +1 -1
  47. metadata +2 -2
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 26374 tags, with 16843 unique tag names.
15
+ They contain a total of 26381 tags, with 16854 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -28,7 +28,8 @@ gives the order of values for a serial data stream.
28
28
  A B<Tag Name> is the handle by which the information is accessed in
29
29
  ExifTool. In some instances, more than one name may correspond to a single
30
30
  tag ID. In these cases, the actual name used depends on the context in
31
- which the information is found. Case is not significant for tag names. A
31
+ which the information is found. Valid characters in a tag name are A-Z,
32
+ a-z, 0-9, hyphen (-) and underline (_). Case is not significant. A
32
33
  question mark (C<?>) after a tag name indicates that the information is
33
34
  either not understood, not verified, or not very useful -- these tags are
34
35
  not extracted by ExifTool unless the Unknown (-u) option is enabled. Be
@@ -124,6 +125,8 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
124
125
  FPXR FlashPix
125
126
  InfiRayFactory InfiRay Factory
126
127
  ThermalParams DJI ThermalParams
128
+ ThermalParams2 DJI ThermalParams2
129
+ ThermalParams3 DJI ThermalParams3
127
130
  PreviewImage no
128
131
  'APP5' RMETA Ricoh RMETA
129
132
  SamsungUniqueID Samsung APP5
@@ -140,6 +143,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
140
143
  Huawei Unknown
141
144
  Qualcomm Qualcomm
142
145
  InfiRayOpMode InfiRay OpMode
146
+ DJI-DBG DJI Info
143
147
  'APP8' SPIFF JPEG SPIFF
144
148
  InfiRayIsothermal InfiRay Isothermal
145
149
  'APP9' MediaJukebox JPEG MediaJukebox
@@ -7082,6 +7086,9 @@ Tags extracted from Photoshop layer information.
7082
7086
  '_xnam' LayerNames no+
7083
7087
  '_xopc' LayerOpacities no+
7084
7088
  '_xrct' LayerRectangles no+
7089
+ '_xvis' LayerVisible no+
7090
+ 'lclr' LayerColors no+
7091
+ 'lsct' LayerSections no+
7085
7092
  'luni' LayerUnicodeNames no+
7086
7093
  'lyid' LayerIDs? no+
7087
7094
  'shmd' LayerModifyDates no+
@@ -10863,6 +10870,30 @@ Thermal parameters extracted from APP4 of DJI RJPEG files from the ZH20T.
10863
10870
  86 DB no
10864
10871
  88 KK no
10865
10872
 
10873
+ =head3 DJI ThermalParams2 Tags
10874
+
10875
+ Thermal parameters extracted from APP4 of DJI M3T RJPEG files.
10876
+
10877
+ Index1 Tag Name Writable
10878
+ ------ -------- --------
10879
+ 0 AmbientTemperature no
10880
+ 4 ObjectDistance no
10881
+ 8 Emissivity no
10882
+ 12 RelativeHumidity no
10883
+ 16 ReflectedTemperature no
10884
+ 101 IDString no
10885
+
10886
+ =head3 DJI ThermalParams3 Tags
10887
+
10888
+ Thermal parameters extracted from APP4 of some DJI RJPEG files.
10889
+
10890
+ Index1 Tag Name Writable
10891
+ ------ -------- --------
10892
+ 4 RelativeHumidity no
10893
+ 6 ObjectDistance no
10894
+ 8 Emissivity no
10895
+ 10 ReflectedTemperature no
10896
+
10866
10897
  =head2 FLIR Tags
10867
10898
 
10868
10899
  Information extracted from the maker notes of JPEG images from thermal
@@ -13704,6 +13735,8 @@ DiMAGE X and Xt.
13704
13735
  ShotInfoD300b Nikon ShotInfoD300b
13705
13736
  ShotInfoD300S Nikon ShotInfoD300S
13706
13737
  ShotInfoD700 Nikon ShotInfoD700
13738
+ ShotInfoD780 Nikon ShotInfoD780
13739
+ ShotInfoD7500 Nikon ShotInfoD7500
13707
13740
  ShotInfoD800 Nikon ShotInfoD800
13708
13741
  ShotInfoD810 Nikon ShotInfoD810
13709
13742
  ShotInfoD850 Nikon ShotInfoD850
@@ -13713,7 +13746,6 @@ DiMAGE X and Xt.
13713
13746
  ShotInfoD7000 Nikon ShotInfoD7000
13714
13747
  ShotInfoD4 Nikon ShotInfoD4
13715
13748
  ShotInfoD4S Nikon ShotInfoD4S
13716
- ShotInfoD5 Nikon ShotInfoD500
13717
13749
  ShotInfoD500 Nikon ShotInfoD500
13718
13750
  ShotInfoD6 Nikon ShotInfoD6
13719
13751
  ShotInfoD610 Nikon ShotInfoD610
@@ -14244,6 +14276,34 @@ firmware 1.02f.
14244
14276
  647 ShutterCount int32u
14245
14277
  804 CustomSettingsD700 NikonCustom SettingsD700
14246
14278
 
14279
+ =head3 Nikon ShotInfoD780 Tags
14280
+
14281
+ These tags are extracted from encrypted data in images from the D780.
14282
+
14283
+ Index Tag Name Writable
14284
+ ----- -------- --------
14285
+ 0 ShotInfoVersion no
14286
+ 4 FirmwareVersion no
14287
+ 156 OrientOffset Nikon OrientationInfo
14288
+
14289
+ =head3 Nikon OrientationInfo Tags
14290
+
14291
+ Index1 Tag Name Writable
14292
+ ------ -------- --------
14293
+ 0 RollAngle fixed32u
14294
+ 4 PitchAngle fixed32u
14295
+ 8 YawAngle fixed32u
14296
+
14297
+ =head3 Nikon ShotInfoD7500 Tags
14298
+
14299
+ These tags are extracted from encrypted data in images from the D7500.
14300
+
14301
+ Index Tag Name Writable
14302
+ ----- -------- --------
14303
+ 0 ShotInfoVersion no
14304
+ 4 FirmwareVersion no
14305
+ 160 OrientOffset Nikon OrientationInfo
14306
+
14247
14307
  =head3 Nikon ShotInfoD800 Tags
14248
14308
 
14249
14309
  These tags are extracted from encrypted data in images from the D800.
@@ -14264,24 +14324,38 @@ These tags are extracted from encrypted data in images from the D800.
14264
14324
 
14265
14325
  =head3 Nikon ShotInfoD810 Tags
14266
14326
 
14267
- These tags are extracted from encrypted data in images from the D810. Note
14268
- that the indices listed below are for firmware version 1.0, but they may be
14269
- different for other firmware versions.
14327
+ These tags are extracted from encrypted data in images from the D810.
14270
14328
 
14271
14329
  Index Tag Name Writable
14272
14330
  ----- -------- --------
14273
14331
  0 ShotInfoVersion no
14274
14332
  4 FirmwareVersion no
14275
- 464 SecondarySlotFunction int8u & 0x03
14276
- 5974 AEBracketingSteps int8u & 0xff
14277
- 5975 WBBracketingSteps int8u & 0xff
14278
- 5982 NikonMeteringMode int8u & 0x03
14279
- 6236 ISOAutoShutterTime int8u & 0x3f
14280
- 6237 ISOAutoHiLimit int8u & 0xff
14281
- 6315 CustomSettingsD810 NikonCustom SettingsD810
14282
- 14068 RollAngle fixed32u
14283
- 14072 PitchAngle fixed32u
14284
- 14076 YawAngle fixed32u
14333
+ 16 SettingsOffset Nikon SettingsInfoD810
14334
+ 36 BracketingOffset Nikon BracketingInfoD810
14335
+ 56 ISOAutoOffset Nikon ISOAutoInfoD810
14336
+ 64 CustomSettingsOffset NikonCustom SettingsD810
14337
+ 132 OrientationOffset Nikon OrientationInfo
14338
+
14339
+ =head3 Nikon SettingsInfoD810 Tags
14340
+
14341
+ Index1 Tag Name Writable
14342
+ ------ -------- --------
14343
+ 316 SecondarySlotFunction int8u & 0x03
14344
+
14345
+ =head3 Nikon BracketingInfoD810 Tags
14346
+
14347
+ Index1 Tag Name Writable
14348
+ ------ -------- --------
14349
+ 15 AEBracketingSteps int8u & 0xff
14350
+ 16 WBBracketingSteps int8u & 0xff
14351
+ 23 NikonMeteringMode int8u & 0x03
14352
+
14353
+ =head3 Nikon ISOAutoInfoD810 Tags
14354
+
14355
+ Index1 Tag Name Writable
14356
+ ------ -------- --------
14357
+ 4 ISOAutoShutterTime int8u & 0x3f
14358
+ 5 ISOAutoHiLimit int8u & 0xff
14285
14359
 
14286
14360
  =head3 Nikon ShotInfoD850 Tags
14287
14361
 
@@ -14291,13 +14365,23 @@ These tags are extracted from encrypted data in images from the D850.
14291
14365
  ----- -------- --------
14292
14366
  0 ShotInfoVersion no
14293
14367
  4 FirmwareVersion no
14294
- 1937 PhotoShootingMenuBankImageArea int8u & 0x07
14295
- 4029 PhotoShootingMenuBank int8u & 0x03
14296
- 4031 PrimarySlot int8u & 0x80
14297
- 4152 CustomSettingsD850 NikonCustom SettingsD850
14298
- 12027 RollAngle fixed32u
14299
- 12031 PitchAngle fixed32u
14300
- 12035 YawAngle fixed32u
14368
+ 16 MenuSettingsOffset Nikon MenuSettingsD850
14369
+ 76 MoreSettingsOffset Nikon MoreSettingsD850
14370
+ 88 CustomSettingsOffset NikonCustom SettingsD850
14371
+ 160 OrientationOffset Nikon OrientationInfo
14372
+
14373
+ =head3 Nikon MenuSettingsD850 Tags
14374
+
14375
+ Index1 Tag Name Writable
14376
+ ------ -------- --------
14377
+ 1757 PhotoShootingMenuBankImageArea int8u & 0x07
14378
+
14379
+ =head3 Nikon MoreSettingsD850 Tags
14380
+
14381
+ Index1 Tag Name Writable
14382
+ ------ -------- --------
14383
+ 36 PhotoShootingMenuBank int8u & 0x03
14384
+ 37 PrimarySlot int8u & 0x80
14301
14385
 
14302
14386
  =head3 Nikon ShotInfoD5000 Tags
14303
14387
 
@@ -14369,9 +14453,7 @@ These tags are extracted from encrypted data in images from the D4S.
14369
14453
  6378 ISOAutoShutterTime int8u & 0x3f
14370
14454
  6379 ISOAutoHiLimit int8u & 0xff
14371
14455
  6461 CustomSettingsD4S NikonCustom SettingsD4
14372
- 13579 RollAngle fixed32u
14373
- 13583 PitchAngle fixed32u
14374
- 13587 YawAngle fixed32u
14456
+ 13579 OrientationInfo Nikon OrientationInfo
14375
14457
  13971 Rotation int8u & 0x30
14376
14458
 
14377
14459
  =head3 Nikon ShotInfoD500 Tags
@@ -14382,27 +14464,61 @@ These tags are extracted from encrypted data in images from the D5 and D500.
14382
14464
  ----- -------- --------
14383
14465
  0 ShotInfoVersion no
14384
14466
  4 FirmwareVersion no
14385
- 202 Rotation int8u & 0x03
14386
- 208 Interval int8u~
14387
- 212 IntervalFrame int8u~
14388
- 1506 FlickerReductionIndicator int8u & 0x01
14389
- 2004 JPGCompression int8u & 0x01
14390
- 2171 AEBracketingSteps int8u & 0xff
14391
- 2172 WBBracketingSteps int8u & 0xff
14392
- 2179 ADLBracketingStep int8u & 0xf0
14393
- 2180 ADLBracketingType int8u & 0x0f
14394
- 3709 PhotoShootingMenuBank int8u & 0x03
14395
- 3711 PrimarySlot int8u & 0x80
14396
- 3713 ISOAutoShutterTime int8u & 0x3f
14397
- 3714 ISOAutoHiLimit int8u & 0xff
14398
- 3716 FlickerReduction int8u & 0x20
14399
- 3716.1 PhotoShootingMenuBankImageArea int8u & 0x07
14400
- 3819 CustomSettingsD5 NikonCustom SettingsD5
14467
+ 16 RotationInfoOffset Nikon RotationInfoD500
14468
+ 20 JPGInfoOffset Nikon JPGInfoD500
14469
+ 44 BracketingOffset Nikon BracketingInfoD500
14470
+ 80 ShootingMenuOffset Nikon ShootingMenuD500
14471
+ 88 CustomSettingsOffset Nikon CustomSettingsD500
14472
+ 160 OrientationOffset Nikon OrientationInfo
14473
+ 168 OtherOffset Nikon OtherInfoD500
14474
+
14475
+ =head3 Nikon RotationInfoD500 Tags
14476
+
14477
+ Index1 Tag Name Writable
14478
+ ------ -------- --------
14479
+ 26 Rotation int8u & 0x03
14480
+ 32 Interval int8u~
14481
+ 36 IntervalFrame int8u~
14482
+ 1330 FlickerReductionIndicator int8u & 0x01
14483
+
14484
+ =head3 Nikon JPGInfoD500 Tags
14485
+
14486
+ Index1 Tag Name Writable
14487
+ ------ -------- --------
14488
+ 36 JPGCompression int8u & 0x01
14489
+
14490
+ =head3 Nikon BracketingInfoD500 Tags
14491
+
14492
+ Index1 Tag Name Writable
14493
+ ------ -------- --------
14494
+ 15 AEBracketingSteps int8u & 0xff
14495
+ 16 WBBracketingSteps int8u & 0xff
14496
+ 23 ADLBracketingStep int8u & 0xf0
14497
+ 24 ADLBracketingType int8u & 0x0f
14498
+
14499
+ =head3 Nikon ShootingMenuD500 Tags
14500
+
14501
+ Index1 Tag Name Writable
14502
+ ------ -------- --------
14503
+ 0 PhotoShootingMenuBank int8u & 0x03
14504
+ 2 PrimarySlot int8u & 0x80
14505
+ 4 ISOAutoShutterTime int8u & 0x3f
14506
+ 5 ISOAutoHiLimit int8u & 0xff
14507
+ 7 FlickerReduction int8u & 0x20
14508
+ 7.1 PhotoShootingMenuBankImageArea int8u & 0x07
14509
+
14510
+ =head3 Nikon CustomSettingsD500 Tags
14511
+
14512
+ Index1 Tag Name Writable
14513
+ ------ -------- --------
14514
+ 0 CustomSettingsD5 NikonCustom SettingsD5
14401
14515
  CustomSettingsD500 NikonCustom SettingsD500
14402
- 11300 RollAngle fixed32u
14403
- 11304 PitchAngle fixed32u
14404
- 11308 YawAngle fixed32u
14405
- 11940 NikonMeteringMode int8u & 0x03
14516
+
14517
+ =head3 Nikon OtherInfoD500 Tags
14518
+
14519
+ Index1 Tag Name Writable
14520
+ ------ -------- --------
14521
+ 532 NikonMeteringMode int8u & 0x03
14406
14522
 
14407
14523
  =head3 Nikon ShotInfoD6 Tags
14408
14524
 
@@ -14412,28 +14528,38 @@ These tags are extracted from encrypted data in images from the D6.
14412
14528
  ----- -------- --------
14413
14529
  0 ShotInfoVersion no
14414
14530
  4 FirmwareVersion no
14415
- 30220 IntervalShooting int16u~
14416
- 49690 RollAngle fixed32u
14417
- 49694 PitchAngle fixed32u
14418
- 49698 YawAngle fixed32u
14419
- 50190 Intervals int32u
14420
- 50194 ShotsPerInterval int32u
14421
- 50198 IntervalExposureSmoothing int8u
14422
- 50200 IntervalPriority int8u
14423
- 50234 FocusShiftNumberShots int8u
14424
- 50238 FocusShiftStepWidth int8u
14425
- 50242 FocusShiftInterval int8u~
14426
- 50246 FocusShiftExposureLock int8u
14427
- 50336 DiffractionCompensation int8u
14428
- 50342 FlashControlMode int8u
14429
- 50348 FlashGNDistance? no
14430
- 50352 FlashOutput? int8u
14431
- 50362 FlashRemoteControl? int8u
14432
- 50366 FlashMasterControlMode int8u
14433
- 50368 FlashMasterCompensation? int8s
14434
- 50372 FlashMasterOutput? int8u
14435
- 50374 FlashWirelessOption? int8u
14436
- 50524 MovieType? int8u
14531
+ 48 SequenceOffset Nikon SeqInfoD6
14532
+ 156 OrientationOffset Nikon OrientationInfo
14533
+ 164 IntervalOffset Nikon IntervalInfoD6
14534
+
14535
+ =head3 Nikon SeqInfoD6 Tags
14536
+
14537
+ Index1 Tag Name Writable
14538
+ ------ -------- --------
14539
+ 36 IntervalShooting int16u~
14540
+
14541
+ =head3 Nikon IntervalInfoD6 Tags
14542
+
14543
+ Index1 Tag Name Writable
14544
+ ------ -------- --------
14545
+ 380 Intervals int32u
14546
+ 384 ShotsPerInterval int32u
14547
+ 388 IntervalExposureSmoothing int8u
14548
+ 390 IntervalPriority int8u
14549
+ 424 FocusShiftNumberShots int8u
14550
+ 428 FocusShiftStepWidth int8u
14551
+ 432 FocusShiftInterval int8u~
14552
+ 436 FocusShiftExposureLock int8u
14553
+ 526 DiffractionCompensation int8u
14554
+ 532 FlashControlMode int8u
14555
+ 538 FlashGNDistance? no
14556
+ 542 FlashOutput? int8u
14557
+ 552 FlashRemoteControl? int8u
14558
+ 556 FlashMasterControlMode int8u
14559
+ 558 FlashMasterCompensation? int8s
14560
+ 562 FlashMasterOutput? int8u
14561
+ 564 FlashWirelessOption? int8u
14562
+ 714 MovieType? int8u
14437
14563
 
14438
14564
  =head3 Nikon ShotInfoD610 Tags
14439
14565
 
@@ -14453,13 +14579,28 @@ These tags are extracted from encrypted data in images from the Z7II.
14453
14579
  ----- -------- --------
14454
14580
  0 ShotInfoVersion no
14455
14581
  4 FirmwareVersion no
14456
- 30220 IntervalShooting int16u~
14457
- 32672 PortraitImpressionBalance int8u[2]~
14458
- 52786 RollAngle fixed32u
14459
- 52790 PitchAngle fixed32u
14460
- 52794 YawAngle fixed32u
14461
- 52918 MenuSettingsZ7IIOffset int8u
14462
- 52920 MenuSettingsZ7II Nikon MenuSettingsZ7II
14582
+ 48 IntervalOffset Nikon IntervalInfoZ7II
14583
+ 56 PortraitOffset Nikon PortraitInfoZ7II
14584
+ 152 OrientationOffset Nikon OrientationInfo
14585
+ 160 MenuOffset Nikon MenuInfoZ7II
14586
+
14587
+ =head3 Nikon IntervalInfoZ7II Tags
14588
+
14589
+ Index1 Tag Name Writable
14590
+ ------ -------- --------
14591
+ 36 IntervalShooting int16u~
14592
+
14593
+ =head3 Nikon PortraitInfoZ7II Tags
14594
+
14595
+ Index1 Tag Name Writable
14596
+ ------ -------- --------
14597
+ 160 PortraitImpressionBalance int8u[2]~
14598
+
14599
+ =head3 Nikon MenuInfoZ7II Tags
14600
+
14601
+ Index1 Tag Name Writable
14602
+ ------ -------- --------
14603
+ 16 MenuSettingsOffsetZ7II Nikon MenuSettingsZ7II
14463
14604
 
14464
14605
  =head3 Nikon MenuSettingsZ7II Tags
14465
14606
 
@@ -14467,6 +14608,7 @@ These tags are used by the Z5, Z6, Z7, Z6II, Z7II, Z50 and Zfc.
14467
14608
 
14468
14609
  Index1 Tag Name Writable
14469
14610
  ------ -------- --------
14611
+ 92 ReleaseMode no
14470
14612
  160 IntervalDurationHours int32u
14471
14613
  164 IntervalDurationMinutes int32u
14472
14614
  168 IntervalDurationSeconds int32u
@@ -14513,17 +14655,34 @@ These tags are extracted from encrypted data in images from the Z9.
14513
14655
  ----- -------- --------
14514
14656
  0 ShotInfoVersion no
14515
14657
  4 FirmwareVersion no
14516
- 180 FocusShiftShooting int8u~
14517
- 188 IntervalShooting int16u~
14518
- 17644 MenuSettingsZ9 Nikon MenuSettingsZ9
14519
- -
14520
- Nikon MenuSettingsZ9Firmware3
14521
- 32965 RollAngle fixed32u
14522
- 32969 PitchAngle fixed32u
14523
- 32973 YawAngle fixed32u
14524
- 33317 MenuSettingsZ9 Nikon MenuSettingsZ9
14525
- -
14526
- Nikon MenuSettingsZ9Firmware3
14658
+ 48 SequenceOffset Nikon SeqInfoZ9
14659
+ 88 Offset13 Nikon Offset13InfoZ9
14660
+ 132 OrientOffset Nikon OrientationInfo
14661
+ 140 MenuOffset Nikon MenuInfoZ9
14662
+
14663
+ =head3 Nikon SeqInfoZ9 Tags
14664
+
14665
+ Index1 Tag Name Writable
14666
+ ------ -------- --------
14667
+ 32 FocusShiftShooting int8u~
14668
+ 40 IntervalShooting int16u~
14669
+
14670
+ =head3 Nikon Offset13InfoZ9 Tags
14671
+
14672
+ Index1 Tag Name Writable
14673
+ ------ -------- --------
14674
+ 3048 AFAreaInitialXPosition int8s~
14675
+ 3049 AFAreaInitialYPosition int8s~
14676
+ 3050 AFAreaInitialWidth no
14677
+ 3051 AFAreaInitialHeight no
14678
+
14679
+ =head3 Nikon MenuInfoZ9 Tags
14680
+
14681
+ Index1 Tag Name Writable
14682
+ ------ -------- --------
14683
+ 16 MenuSettingsOffsetZ9 Nikon MenuSettingsZ9
14684
+ MenuSettingsOffsetZ9v3 -
14685
+ Nikon MenuSettingsZ9v3
14527
14686
 
14528
14687
  =head3 Nikon MenuSettingsZ9 Tags
14529
14688
 
@@ -14563,6 +14722,7 @@ These tags are used by the Z9.
14563
14722
  556 SecondarySlotFunction int8u
14564
14723
  572 DXCropAlert int8u
14565
14724
  574 SubjectDetection int8u
14725
+ 576 DynamicAFAreaSize int8u
14566
14726
  604 MovieImageArea? int8u & 0x01
14567
14727
  614 MovieType? int8u
14568
14728
  616 MovieISOAutoHiLimit? int16u
@@ -14601,7 +14761,7 @@ These tags are used by the Z9.
14601
14761
  1636 USBPowerDelivery? int8u
14602
14762
  1645 SensorShield? int8u
14603
14763
 
14604
- =head3 Nikon MenuSettingsZ9Firmware3 Tags
14764
+ =head3 Nikon MenuSettingsZ9v3 Tags
14605
14765
 
14606
14766
  These tags are used by the Z9 firmware 3.00.
14607
14767
 
@@ -14638,6 +14798,7 @@ These tags are used by the Z9 firmware 3.00.
14638
14798
  576 SecondarySlotFunction int8u
14639
14799
  592 DXCropAlert int8u
14640
14800
  594 SubjectDetection int8u
14801
+ 596 DynamicAFAreaSize int8u
14641
14802
  636 HighFrequencyFlickerReductionShooting? int8u
14642
14803
  646 MovieImageArea? int8u & 0x01
14643
14804
  656 MovieType? int8u
@@ -14839,15 +15000,16 @@ Tags found in the encrypted LensData from cameras such as the Z6 and Z7.
14839
15000
  18 MaxApertureAtMaxFocal int8u
14840
15001
  19 MCUVersion int8u
14841
15002
  20 EffectiveMaxAperture int8u
15003
+ 47 NewLensData undef[17]
14842
15004
  48 LensID int16u
14843
- 53 LensMountType? int8u
15005
+ 53 LensMountType int8u
14844
15006
  54 MaxAperture int16u
14845
15007
  56 FNumber int16u
14846
15008
  60 FocalLength int16u
14847
15009
  76 FocusDistanceRangeWidth? int8u
14848
15010
  78 FocusDistance int16u~
14849
15011
  86 LensDriveEnd? int8u
14850
- 90 LensPositionAbsolute? int32s
15012
+ 90 LensPositionAbsolute int32s
14851
15013
 
14852
15014
  =head3 Nikon LensDataUnknown Tags
14853
15015
 
@@ -21977,6 +22139,10 @@ unrecognized Windows Compound Binary file as a FlashPix (FPX) file. See
21977
22139
  L<http://graphcomp.com/info/specs/livepicture/fpx.pdf> for the FlashPix
21978
22140
  specification.
21979
22141
 
22142
+ Note that Microsoft is not consistent with the time zone used for some
22143
+ date/time tags, and it may be either UTC or local time depending on the
22144
+ software used to create the file.
22145
+
21980
22146
  Tag ID Tag Name Writable
21981
22147
  ------ -------- --------
21982
22148
  "\x01CompObj" CompObj FlashPix CompObj
@@ -27705,6 +27871,11 @@ QuickTime-based files; it extracts other track-specific and timed metadata,
27705
27871
  but can not yet edit tags in these locations (with the exception of
27706
27872
  track-level date/time tags).
27707
27873
 
27874
+ Beware that the Keys tags are actually stored inside the ItemList in the
27875
+ file, so deleting the ItemList group as a block (ie. C<-ItemList:all=>) also
27876
+ deletes Keys tags. Instead, to preserve Keys tags the ItemList tags may be
27877
+ deleted individually with C<-QuickTime:ItemList:all=>.
27878
+
27708
27879
  Alternate language tags may be accessed for
27709
27880
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
27710
27881
  L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags> tags by adding
@@ -37947,6 +38118,7 @@ FileName.
37947
38118
  ICC_Profile ICC_Profile yes!
37948
38119
  ID3Size File no
37949
38120
  IPTC IPTC yes!
38121
+ ImageDataMD5 File no
37950
38122
  ImageHeight File no
37951
38123
  ImageWidth File no
37952
38124
  JPEGDigest File no
@@ -17,7 +17,7 @@ package Image::ExifTool::Validate;
17
17
  use strict;
18
18
  use vars qw($VERSION %exifSpec);
19
19
 
20
- $VERSION = '1.19';
20
+ $VERSION = '1.20';
21
21
 
22
22
  use Image::ExifTool qw(:Utils);
23
23
  use Image::ExifTool::Exif;
@@ -437,8 +437,8 @@ sub ValidateExif($$$$$$$$)
437
437
  $et->Warn(sprintf('Wrong IFD for 0x%.4x %s (should be %s not %s)', $tag, $$ti{Name}, $wgp, $ifd));
438
438
  }
439
439
  }
440
- } elsif (not $otherSpec{$$et{VALUE}{FileType}} or
441
- (not $otherSpec{$$et{VALUE}{FileType}}{$tag} and not $otherSpec{$$et{VALUE}{FileType}}{All}))
440
+ } elsif (not $otherSpec{$$et{FileType}} or
441
+ (not $otherSpec{$$et{FileType}}{$tag} and not $otherSpec{$$et{FileType}}{All}))
442
442
  {
443
443
  if ($tagTablePtr eq \%Image::ExifTool::Exif::Main or $$tagInfo{Unknown}) {
444
444
  $et->Warn(sprintf('Non-standard %s tag 0x%.4x %s', $ifd, $tag, $$ti{Name}), 1);
@@ -459,8 +459,8 @@ sub ValidateExif($$$$$$$$)
459
459
  $et->Warn(sprintf('Non-standard count (%d) for %s 0x%.4x %s', $count, $ifd, $tag, $$ti{Name}));
460
460
  }
461
461
  }
462
- } elsif (not $otherSpec{$$et{VALUE}{FileType}} or
463
- (not $otherSpec{$$et{VALUE}{FileType}}{$tag} and not $otherSpec{$$et{VALUE}{FileType}}{All}))
462
+ } elsif (not $otherSpec{$$et{FileType}} or
463
+ (not $otherSpec{$$et{FileType}}{$tag} and not $otherSpec{$$et{FileType}}{All}))
464
464
  {
465
465
  $et->Warn(sprintf('Unknown %s tag 0x%.4x', $ifd, $tag), 1);
466
466
  }
@@ -419,6 +419,48 @@ sub ValidateImageData($$$;$)
419
419
  }
420
420
  }
421
421
 
422
+ #------------------------------------------------------------------------------
423
+ # Add specified image data to ImageDataMD5 hash
424
+ # Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) lookup for [tagInfo,value] based on tagID
425
+ sub AddImageDataMD5($$$)
426
+ {
427
+ my ($et, $dirInfo, $offsetInfo) = @_;
428
+ my ($tagID, $offset, $buff);
429
+
430
+ my $verbose = $et->Options('Verbose');
431
+ my $md5 = $$et{ImageDataMD5};
432
+ my $raf = $$dirInfo{RAF};
433
+ my $base = $$dirInfo{Base} || 0;
434
+
435
+ foreach $tagID (sort keys %$offsetInfo) {
436
+ next unless ref $$offsetInfo{$tagID} eq 'ARRAY'; # ignore scalar tag values used for Validate
437
+ my $tagInfo = $$offsetInfo{$tagID}[0];
438
+ next unless $$tagInfo{IsImageData} and $$tagInfo{OffsetPair}; # only consider image data
439
+ my $sizeID = $$tagInfo{OffsetPair};
440
+ next unless $sizeID and $$offsetInfo{$sizeID};
441
+ my @offsets = split ' ', $$offsetInfo{$tagID}[1];
442
+ my @sizes = split ' ', $$offsetInfo{$sizeID}[1];
443
+ my $total = 0;
444
+ foreach $offset (@offsets) {
445
+ my $size = shift @sizes;
446
+ next unless $offset =~ /^\d+$/ and $size and $size =~ /^\d+$/ and $size;
447
+ next unless $raf->Seek($offset+$base, 0);
448
+ while ($size) {
449
+ my $bytes = $size > 65536 ? 65536 : $size;
450
+ $raf->Read($buff, $bytes) or last;
451
+ $md5->add($buff);
452
+ $total += length($buff);
453
+ $size -= $bytes;
454
+ }
455
+ }
456
+ if ($verbose) {
457
+ my $name = "$$dirInfo{DirName}:$$tagInfo{Name}";
458
+ $name =~ s/Offsets|Start$//;
459
+ $et->VPrint(0, "$$et{INDENT}(ImageDataMD5: $total bytes of $name data)\n");
460
+ }
461
+ }
462
+ }
463
+
422
464
  #------------------------------------------------------------------------------
423
465
  # Handle error while writing EXIF
424
466
  # Inputs: 0) ExifTool ref, 1) error string, 2) tag table ref