exiftool_vendored 12.62.0 → 12.64.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 +50 -1
- data/bin/MANIFEST +4 -0
- data/bin/META.json +4 -1
- data/bin/META.yml +4 -1
- data/bin/Makefile.PL +7 -1
- data/bin/README +50 -46
- data/bin/config_files/guano.config +161 -0
- data/bin/exiftool +88 -62
- data/bin/lib/Image/ExifTool/7Z.pm +793 -0
- data/bin/lib/Image/ExifTool/Apple.pm +6 -3
- data/bin/lib/Image/ExifTool/Canon.pm +1 -0
- data/bin/lib/Image/ExifTool/CanonRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -1
- data/bin/lib/Image/ExifTool/Exif.pm +31 -14
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -3
- data/bin/lib/Image/ExifTool/GPS.pm +5 -2
- data/bin/lib/Image/ExifTool/Geotag.pm +4 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +226 -28
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1467 -202
- data/bin/lib/Image/ExifTool/MPF.pm +2 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +16 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +419 -5
- data/bin/lib/Image/ExifTool/NikonCustom.pm +13 -3
- data/bin/lib/Image/ExifTool/PDF.pm +9 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +8 -1
- data/bin/lib/Image/ExifTool/PNG.pm +6 -6
- data/bin/lib/Image/ExifTool/PhaseOne.pm +5 -5
- data/bin/lib/Image/ExifTool/QuickTime.pm +74 -21
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +20 -19
- data/bin/lib/Image/ExifTool/README +2 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +11 -9
- data/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/Sony.pm +103 -8
- data/bin/lib/Image/ExifTool/TagLookup.pm +4738 -4630
- data/bin/lib/Image/ExifTool/TagNames.pod +249 -5
- data/bin/lib/Image/ExifTool/Validate.pm +17 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +9 -7
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
- data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +28 -10
- data/bin/lib/Image/ExifTool/XMP.pm +14 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +32 -0
- data/bin/lib/Image/ExifTool/XMPStruct.pl +96 -28
- data/bin/lib/Image/ExifTool/ZIP.pm +5 -5
- data/bin/lib/Image/ExifTool.pm +67 -39
- data/bin/lib/Image/ExifTool.pod +83 -52
- data/bin/perl-Image-ExifTool.spec +44 -44
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -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
|
15
|
+
They contain a total of 26591 tags, with 16966 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
|
@@ -798,6 +798,13 @@ for the official EXIF 2.32 specification.
|
|
798
798
|
0xa433 LensMake ExifIFD string
|
799
799
|
0xa434 LensModel ExifIFD string
|
800
800
|
0xa435 LensSerialNumber ExifIFD string
|
801
|
+
0xa436 Title ExifIFD string/
|
802
|
+
0xa437 Photographer ExifIFD string
|
803
|
+
0xa438 ImageEditor ExifIFD string
|
804
|
+
0xa439 CameraFirmware ExifIFD string
|
805
|
+
0xa43a RAWDevelopingSoftware ExifIFD string
|
806
|
+
0xa43b ImageEditingSoftware ExifIFD string
|
807
|
+
0xa43c MetadataEditingSoftware ExifIFD string
|
801
808
|
0xa460 CompositeImage ExifIFD int16u
|
802
809
|
0xa461 CompositeImageCount ExifIFD int16u[2]
|
803
810
|
0xa462 CompositeImageExposureTimes ExifIFD undef
|
@@ -1306,6 +1313,7 @@ L<http://www.adobe.com/devnet/xmp/> for the official XMP specification.
|
|
1306
1313
|
GPano XMP GPano
|
1307
1314
|
GSpherical XMP GSpherical
|
1308
1315
|
hdr XMP hdr
|
1316
|
+
hdrgm XMP hdrgm
|
1309
1317
|
ics XMP ics
|
1310
1318
|
iptcCore XMP iptcCore
|
1311
1319
|
iptcExt XMP iptcExt
|
@@ -1319,6 +1327,7 @@ L<http://www.adobe.com/devnet/xmp/> for the official XMP specification.
|
|
1319
1327
|
mwg-kw MWG Keywords
|
1320
1328
|
mwg-rs MWG Regions
|
1321
1329
|
nine Nikon nine
|
1330
|
+
panorama XMP panorama
|
1322
1331
|
pdf XMP pdf
|
1323
1332
|
pdfx XMP pdfx
|
1324
1333
|
photomech PhotoMechanic XMP
|
@@ -4047,6 +4056,8 @@ These tags belong to the ExifTool XMP-et family 1 group.
|
|
4047
4056
|
|
4048
4057
|
Tag Name Writable
|
4049
4058
|
-------- --------
|
4059
|
+
OriginalImageHash string
|
4060
|
+
OriginalImageHashType string
|
4050
4061
|
OriginalImageMD5 string
|
4051
4062
|
|
4052
4063
|
=head3 XMP exif Tags
|
@@ -4498,6 +4509,24 @@ These tags belong to the ExifTool XMP-hdr family 1 group.
|
|
4498
4509
|
CCVWhiteXY string
|
4499
4510
|
SceneReferred boolean
|
4500
4511
|
|
4512
|
+
=head3 XMP hdrgm Tags
|
4513
|
+
|
4514
|
+
Tags used in Adobe gain map images.
|
4515
|
+
|
4516
|
+
These tags belong to the ExifTool XMP-hdrgm family 1 group.
|
4517
|
+
|
4518
|
+
Tag Name Writable
|
4519
|
+
-------- --------
|
4520
|
+
BaseRenditionIsHDR boolean
|
4521
|
+
GainMapMax real+
|
4522
|
+
GainMapMin real+
|
4523
|
+
Gamma real/+
|
4524
|
+
HDRCapacityMax real
|
4525
|
+
HDRCapacityMin real
|
4526
|
+
OffsetHDR real+
|
4527
|
+
OffsetSDR real+
|
4528
|
+
Version string/
|
4529
|
+
|
4501
4530
|
=head3 XMP ics Tags
|
4502
4531
|
|
4503
4532
|
Tags used by IDimager. Nested TagStructure structures are unrolled to an
|
@@ -5127,6 +5156,19 @@ These tags belong to the ExifTool XMP-mediapro family 1 group.
|
|
5127
5156
|
Status string
|
5128
5157
|
UserFields string+
|
5129
5158
|
|
5159
|
+
=head3 XMP panorama Tags
|
5160
|
+
|
5161
|
+
Adobe Photoshop Panorama-profile tags.
|
5162
|
+
|
5163
|
+
These tags belong to the ExifTool XMP-panorama family 1 group.
|
5164
|
+
|
5165
|
+
Tag Name Writable
|
5166
|
+
-------- --------
|
5167
|
+
Transformation string
|
5168
|
+
VirtualFocalLength real
|
5169
|
+
VirtualImageXCenter real
|
5170
|
+
VirtualImageYCenter real
|
5171
|
+
|
5130
5172
|
=head3 XMP pdf Tags
|
5131
5173
|
|
5132
5174
|
Adobe PDF namespace tags. The official XMP specification defines only
|
@@ -7157,6 +7199,7 @@ Tags extracted from the maker notes of iPhone images.
|
|
7157
7199
|
0x0025 SceneFlags? int32s
|
7158
7200
|
0x0026 SignalToNoiseRatioType? int32s
|
7159
7201
|
0x0027 SignalToNoiseRatio rational64s
|
7202
|
+
0x002b PhotoIdentifier string
|
7160
7203
|
0x002f FocusPosition int32s
|
7161
7204
|
0x0030 HDRGain rational64s
|
7162
7205
|
0x0038 AFMeasuredDepth int32s
|
@@ -14673,6 +14716,7 @@ These tags are extracted from encrypted data in images from the Z9.
|
|
14673
14716
|
4 FirmwareVersion no
|
14674
14717
|
48 SequenceOffset Nikon SeqInfoZ9
|
14675
14718
|
88 Offset13 Nikon Offset13InfoZ9
|
14719
|
+
128 AutoCaptureOffset Nikon AutoCaptureInfo
|
14676
14720
|
132 OrientOffset Nikon OrientationInfo
|
14677
14721
|
140 MenuOffset Nikon MenuInfoZ9
|
14678
14722
|
|
@@ -14692,6 +14736,21 @@ These tags are extracted from encrypted data in images from the Z9.
|
|
14692
14736
|
3050 AFAreaInitialWidth no
|
14693
14737
|
3051 AFAreaInitialHeight no
|
14694
14738
|
|
14739
|
+
=head3 Nikon AutoCaptureInfo Tags
|
14740
|
+
|
14741
|
+
Index1 Tag Name Writable
|
14742
|
+
------ -------- --------
|
14743
|
+
1 AutoCaptureCriteria int8u~
|
14744
|
+
55 AutoCaptureRecordingTime int8u
|
14745
|
+
56 AutoCaptureWaitTime int8u
|
14746
|
+
74 AutoCaptureDistanceFar int8u~
|
14747
|
+
78 AutoCaptureDistanceNear int8u~
|
14748
|
+
95 AutoCaptureCriteriaMotionDirection int8u~
|
14749
|
+
99 AutoCaptureCriteriaMotionSpeed int8u
|
14750
|
+
100 AutoCaptureCriteriaMotionSize int8u
|
14751
|
+
105 AutoCaptureCriteriaSubjectSize int8u
|
14752
|
+
106 AutoCaptureCriteriaSubjectType int8u
|
14753
|
+
|
14695
14754
|
=head3 Nikon MenuInfoZ9 Tags
|
14696
14755
|
|
14697
14756
|
Index1 Tag Name Writable
|
@@ -14699,6 +14758,8 @@ These tags are extracted from encrypted data in images from the Z9.
|
|
14699
14758
|
16 MenuSettingsOffsetZ9 Nikon MenuSettingsZ9
|
14700
14759
|
MenuSettingsOffsetZ9v3 -
|
14701
14760
|
Nikon MenuSettingsZ9v3
|
14761
|
+
-
|
14762
|
+
Nikon MenuSettingsZ9v4
|
14702
14763
|
|
14703
14764
|
=head3 Nikon MenuSettingsZ9 Tags
|
14704
14765
|
|
@@ -14858,6 +14919,144 @@ These tags are used by the Z9 firmware 3.00.
|
|
14858
14919
|
1810 PreReleaseBurstLength int8u
|
14859
14920
|
1812 PostReleaseBurstLength int8u
|
14860
14921
|
|
14922
|
+
=head3 Nikon MenuSettingsZ9v4 Tags
|
14923
|
+
|
14924
|
+
These tags are used by the Z9 firmware 3.00.
|
14925
|
+
|
14926
|
+
Index1 Tag Name Writable
|
14927
|
+
--------------- --------
|
14928
|
+
72 HighFrameRate int8u
|
14929
|
+
154 MultipleExposureMode int8u
|
14930
|
+
156 MultiExposureShots int8u
|
14931
|
+
204 Intervals int32u
|
14932
|
+
208 ShotsPerInterval int32u
|
14933
|
+
248 FocusShiftNumberShots int8u
|
14934
|
+
252 FocusShiftStepWidth int8u
|
14935
|
+
256 FocusShiftInterval int8u~
|
14936
|
+
260 FocusShiftExposureLock? int8u
|
14937
|
+
290 PhotoShootingMenuBank int8u
|
14938
|
+
292 ExtendedMenuBanks int8u
|
14939
|
+
328 PhotoShootingMenuBankImageArea int8u
|
14940
|
+
342 AutoISO int8u
|
14941
|
+
344 ISOAutoHiLimit? int16u
|
14942
|
+
346 ISOAutoFlashLimit? int16u
|
14943
|
+
354 ISOAutoShutterTime no
|
14944
|
+
436 MovieVignetteControl? int8u
|
14945
|
+
438 DiffractionCompensation int8u
|
14946
|
+
440 FlickerReductionShooting int8u
|
14947
|
+
444 FlashControlMode int8u
|
14948
|
+
446 FlashMasterCompensation? int8s
|
14949
|
+
450 FlashGNDistance? no
|
14950
|
+
454 FlashOutput? int8u
|
14951
|
+
548 AFAreaMode int8u
|
14952
|
+
550 VRMode int8u
|
14953
|
+
554 BracketSet int8u
|
14954
|
+
556 BracketProgram int8u
|
14955
|
+
558 BracketIncrement int8u
|
14956
|
+
576 SecondarySlotFunction int8u
|
14957
|
+
586 Slot2JpgSize? int8u
|
14958
|
+
592 DXCropAlert int8u
|
14959
|
+
594 SubjectDetection int8u
|
14960
|
+
596 DynamicAFAreaSize int8u
|
14961
|
+
636 HighFrequencyFlickerReductionShooting? int8u
|
14962
|
+
646 MovieImageArea? int8u & 0x01
|
14963
|
+
656 MovieType? int8u
|
14964
|
+
658 MovieISOAutoHiLimit? int16u
|
14965
|
+
660 MovieISOAutoControlManualMode? int8u
|
14966
|
+
662 MovieISOAutoManualMode? int16u
|
14967
|
+
736 MovieActiveD-Lighting? int8u
|
14968
|
+
738 MovieHighISONoiseReduction? int8u
|
14969
|
+
744 MovieFlickerReduction int8u
|
14970
|
+
746 MovieMeteringMode? int8u
|
14971
|
+
748 MovieFocusMode? int8u
|
14972
|
+
750 MovieAFAreaMode int8u
|
14973
|
+
752 MovieVRMode? int8u
|
14974
|
+
756 MovieElectronicVR? int8u
|
14975
|
+
758 MovieSoundRecording? int8u
|
14976
|
+
760 MicrophoneSensitivity? int8u
|
14977
|
+
762 MicrophoneAttenuator? int8u
|
14978
|
+
764 MicrophoneFrequencyResponse? int8u
|
14979
|
+
766 WindNoiseReduction? int8u
|
14980
|
+
788 MovieToneMap? int8u
|
14981
|
+
794 MovieFrameSize? int8u
|
14982
|
+
796 MovieFrameRate? int8u
|
14983
|
+
802 MicrophoneJackPower? int8u
|
14984
|
+
803 MovieDXCropAlert? int8u
|
14985
|
+
804 MovieSubjectDetection? int8u
|
14986
|
+
812 MovieHighResZoom? int8u
|
14987
|
+
847 CustomSettingsZ9 NikonCustom SettingsZ9
|
14988
|
+
1474 Language? int8u
|
14989
|
+
1476 TimeZone int8u
|
14990
|
+
1482 MonitorBrightness? int8u
|
14991
|
+
1504 AFFineTune? int8u
|
14992
|
+
1532 NonCPULens1FocalLength? int16s~
|
14993
|
+
1536 NonCPULens2FocalLength? int16s~
|
14994
|
+
1540 NonCPULens3FocalLength? int16s~
|
14995
|
+
1544 NonCPULens4FocalLength? int16s~
|
14996
|
+
1548 NonCPULens5FocalLength? int16s~
|
14997
|
+
1552 NonCPULens6FocalLength? int16s~
|
14998
|
+
1556 NonCPULens7FocalLength? int16s~
|
14999
|
+
1560 NonCPULens8FocalLength? int16s~
|
15000
|
+
1564 NonCPULens9FocalLength? int16s~
|
15001
|
+
1568 NonCPULens10FocalLength? int16s~
|
15002
|
+
1572 NonCPULens11FocalLength? int16s~
|
15003
|
+
1576 NonCPULens21FocalLength? int16s~
|
15004
|
+
1580 NonCPULens13FocalLength? int16s~
|
15005
|
+
1584 NonCPULens14FocalLength? int16s~
|
15006
|
+
1588 NonCPULens15FocalLength? int16s~
|
15007
|
+
1592 NonCPULens16FocalLength? int16s~
|
15008
|
+
1596 NonCPULens17FocalLength? int16s~
|
15009
|
+
1600 NonCPULens18FocalLength? int16s~
|
15010
|
+
1604 NonCPULens19FocalLength? int16s~
|
15011
|
+
1608 NonCPULens20FocalLength? int16s~
|
15012
|
+
1612 NonCPULens1MaxAperture? int16s~
|
15013
|
+
1616 NonCPULens2MaxAperture? int16s~
|
15014
|
+
1620 NonCPULens3MaxAperture? int16s~
|
15015
|
+
1624 NonCPULens4MaxAperture? int16s~
|
15016
|
+
1628 NonCPULens5MaxAperture? int16s~
|
15017
|
+
1632 NonCPULens6MaxAperture? int16s~
|
15018
|
+
1636 NonCPULens7MaxAperture? int16s~
|
15019
|
+
1640 NonCPULens8MaxAperture? int16s~
|
15020
|
+
1644 NonCPULens9MaxAperture? int16s~
|
15021
|
+
1648 NonCPULens10MaxAperture? int16s~
|
15022
|
+
1652 NonCPULens11MaxAperture? int16s~
|
15023
|
+
1656 NonCPULens12MaxAperture? int16s~
|
15024
|
+
1660 NonCPULens13MaxAperture? int16s~
|
15025
|
+
1664 NonCPULens14MaxAperture? int16s~
|
15026
|
+
1668 NonCPULens15MaxAperture? int16s~
|
15027
|
+
1672 NonCPULens16MaxAperture? int16s~
|
15028
|
+
1676 NonCPULens17MaxAperture? int16s~
|
15029
|
+
1680 NonCPULens18MaxAperture? int16s~
|
15030
|
+
1684 NonCPULens19MaxAperture? int16s~
|
15031
|
+
1688 NonCPULens20MaxAperture? int16s~
|
15032
|
+
1704 HDMIOutputResolution int8u
|
15033
|
+
1717 SetClockFromLocationData? int8u
|
15034
|
+
1724 AirplaneMode? int8u
|
15035
|
+
1725 EmptySlotRelease? int8u
|
15036
|
+
1760 EnergySavingMode? int8u
|
15037
|
+
1784 RecordLocationData? int8u
|
15038
|
+
1788 USBPowerDelivery? int8u
|
15039
|
+
1797 SensorShield? int8u
|
15040
|
+
1862 AutoCapturePreset int8u
|
15041
|
+
1864 FocusShiftAutoReset? int8u
|
15042
|
+
1922 PreReleaseBurstLength int8u
|
15043
|
+
1924 PostReleaseBurstLength int8u
|
15044
|
+
1938 VerticalISOButton int8u
|
15045
|
+
1940 ExposureCompensationButton int8u
|
15046
|
+
1942 ISOButton int8u
|
15047
|
+
2002 ViewModeShowEffectsOfSettings? int8u
|
15048
|
+
2004 DispButton int8u
|
15049
|
+
2048 ExposureDelay fixed32u~
|
15050
|
+
2056 PlaybackButton int8u
|
15051
|
+
2058 WBButton int8u
|
15052
|
+
2060 BracketButton int8u
|
15053
|
+
2062 FlashModeButton int8u
|
15054
|
+
2064 LensFunc1ButtonPlaybackMode int8u
|
15055
|
+
2066 LensFunc2ButtonPlaybackMode int8u
|
15056
|
+
2068 PlaybackButtonPlaybackMode int8u
|
15057
|
+
2070 BracketButtonPlaybackMode int8u
|
15058
|
+
2072 FlashModeButtonPlaybackMode int8u
|
15059
|
+
|
14861
15060
|
=head3 Nikon ShotInfo Tags
|
14862
15061
|
|
14863
15062
|
This information is encrypted for ShotInfoVersion 02xx, and some tags are
|
@@ -20439,6 +20638,8 @@ WX300, but not for panorama images.
|
|
20439
20638
|
6294 LensType int16u
|
20440
20639
|
6296 DistortionCorrParamsPresent int8u
|
20441
20640
|
6297 DistortionCorrParamsNumber int8u
|
20641
|
+
6444 AspectRatio int8u
|
20642
|
+
6792 AspectRatio int8u
|
20442
20643
|
|
20443
20644
|
=head3 Sony Tag2010f Tags
|
20444
20645
|
|
@@ -20469,6 +20670,7 @@ Valid for DSC-RX100M2, DSC-QX10/QX100.
|
|
20469
20670
|
4406 MinFocalLength int16u
|
20470
20671
|
4408 MaxFocalLength int16u
|
20471
20672
|
4412 SonyISO int16u
|
20673
|
+
6444 AspectRatio int8u
|
20472
20674
|
|
20473
20675
|
=head3 Sony Tag2010g Tags
|
20474
20676
|
|
@@ -20507,6 +20709,7 @@ ILCE-7/7R/7S/7M2/5000/5100/6000/QX1, ILCA-68/77M2.
|
|
20507
20709
|
6338 LensType int16u
|
20508
20710
|
6340 DistortionCorrParamsPresent int8u
|
20509
20711
|
6341 DistortionCorrParamsNumber int8u
|
20712
|
+
6488 AspectRatio int8u
|
20510
20713
|
|
20511
20714
|
=head3 Sony Tag2010h Tags
|
20512
20715
|
|
@@ -20546,6 +20749,7 @@ ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.
|
|
20546
20749
|
6386 LensType int16u
|
20547
20750
|
6388 DistortionCorrParamsPresent int8u
|
20548
20751
|
6389 DistortionCorrParamsNumber int8u
|
20752
|
+
6444 AspectRatio int8u
|
20549
20753
|
|
20550
20754
|
=head3 Sony Tag2010i Tags
|
20551
20755
|
|
@@ -20584,6 +20788,7 @@ RX100M5A/RX100M7/HX99.
|
|
20584
20788
|
6134 LensType int16u
|
20585
20789
|
6136 DistortionCorrParamsPresent int8u
|
20586
20790
|
6137 DistortionCorrParamsNumber int8u
|
20791
|
+
6284 AspectRatio int8u
|
20587
20792
|
|
20588
20793
|
=head3 Sony MeterInfo9 Tags
|
20589
20794
|
|
@@ -20825,6 +21030,9 @@ WX350/WX500, ILCE-1/7/7C/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/7SM3/9/9M2/5000/
|
|
20825
21030
|
42 Quality2 int8u
|
20826
21031
|
71 SonyImageHeight int16u~
|
20827
21032
|
83 ModelReleaseYear int8u~
|
21033
|
+
307 ShutterType int8u
|
21034
|
+
313 ShutterType int8u
|
21035
|
+
319 ShutterType int8u
|
20828
21036
|
|
20829
21037
|
=head3 Sony Tag9401 Tags
|
20830
21038
|
|
@@ -20836,6 +21044,7 @@ WX350/WX500, ILCE-1/7/7C/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/7SM3/9/9M2/5000/
|
|
20836
21044
|
1181 ISOInfo Sony ISOInfo
|
20837
21045
|
1185 ISOInfo Sony ISOInfo
|
20838
21046
|
1186 ISOInfo Sony ISOInfo
|
21047
|
+
1210 ISOInfo Sony ISOInfo
|
20839
21048
|
1437 ISOInfo Sony ISOInfo
|
20840
21049
|
1588 ISOInfo Sony ISOInfo
|
20841
21050
|
1590 ISOInfo Sony ISOInfo
|
@@ -24104,7 +24313,10 @@ chunk.
|
|
24104
24313
|
|
24105
24314
|
The tags below are found in JPEG 2000 images and the JUMBF metadata in JPEG
|
24106
24315
|
images, but not all of these are extracted. Note that ExifTool currently
|
24107
|
-
writes only EXIF, IPTC and XMP tags in Jpeg2000 images
|
24316
|
+
writes only EXIF, IPTC and XMP tags in Jpeg2000 images, and EXIF and XMP in
|
24317
|
+
JXL images. ExifTool will read/write Brotli-compressed EXIF and XMP in JXL
|
24318
|
+
images, but the API Compress option must be set to create new EXIF and XMP
|
24319
|
+
in compressed format.
|
24108
24320
|
|
24109
24321
|
Tag ID Tag Name Writable
|
24110
24322
|
------ -------- --------
|
@@ -24114,6 +24326,9 @@ writes only EXIF, IPTC and XMP tags in Jpeg2000 images.
|
|
24114
24326
|
'bfil' BinaryFilter no
|
24115
24327
|
'bidb' BinaryData no
|
24116
24328
|
'bpcc' BitsPerComponent no
|
24329
|
+
'brob' BrotliXMP XMP
|
24330
|
+
BrotliEXIF EXIF
|
24331
|
+
BrotliJUMB Jpeg2000
|
24117
24332
|
'c2sh' C2PASaltHash no
|
24118
24333
|
'cbor' CBORData CBOR
|
24119
24334
|
'cdef' ComponentDefinition no
|
@@ -24132,6 +24347,7 @@ writes only EXIF, IPTC and XMP tags in Jpeg2000 images.
|
|
24132
24347
|
'ftbl' FragmentTable no
|
24133
24348
|
'ftyp' FileType Jpeg2000 FileType
|
24134
24349
|
'gtso' GraphicsTechnologyStandardOutput no
|
24350
|
+
'hrgm' GainMapImage no
|
24135
24351
|
'ihdr' ImageHeader Jpeg2000 ImageHeader
|
24136
24352
|
'inst' InstructionSet no
|
24137
24353
|
'jP ' JP2Signature no
|
@@ -24145,6 +24361,7 @@ writes only EXIF, IPTC and XMP tags in Jpeg2000 images.
|
|
24145
24361
|
'jumb' JUMBFBox Jpeg2000
|
24146
24362
|
'jumd' JUMBFDescr Jpeg2000 JUMD
|
24147
24363
|
'jxlc' JXLCodestream no
|
24364
|
+
'jxlp' PartialJXLCodestream no
|
24148
24365
|
'lbl ' Label no
|
24149
24366
|
'mdat' MediaData no
|
24150
24367
|
'mp7b' MPEG7Binary no
|
@@ -28588,6 +28805,7 @@ and are not currently writable.
|
|
28588
28805
|
'auxC' AuxiliaryImageType no
|
28589
28806
|
'av1C' AV1Configuration QuickTime AV1Config
|
28590
28807
|
'clap' CleanAperture no
|
28808
|
+
'clli' ContentLightLevel QuickTime ContentLightLevel
|
28591
28809
|
'colr' ICC_Profile ICC_Profile
|
28592
28810
|
ColorRepresentation QuickTime ColorRep
|
28593
28811
|
'hvcC' HEVCConfiguration QuickTime HEVCConfig
|
@@ -28611,6 +28829,13 @@ and are not currently writable.
|
|
28611
28829
|
2.4 ChromaSamplePosition no
|
28612
28830
|
3 InitialDelaySamples? no
|
28613
28831
|
|
28832
|
+
=head3 QuickTime ContentLightLevel Tags
|
28833
|
+
|
28834
|
+
Index2 Tag Name Writable
|
28835
|
+
------ -------- --------
|
28836
|
+
0 MaxContentLightLevel no
|
28837
|
+
1 MaxPicAverageLightLevel no
|
28838
|
+
|
28614
28839
|
=head3 QuickTime ColorRep Tags
|
28615
28840
|
|
28616
28841
|
Index1 Tag Name Writable
|
@@ -28846,12 +29071,27 @@ atoms.
|
|
28846
29071
|
24 AudioChannels no
|
28847
29072
|
26 AudioBitsPerSample no
|
28848
29073
|
32 AudioSampleRate no
|
29074
|
+
'SA3D' SpatialAudio QuickTime SpatialAudio
|
28849
29075
|
'chan' AudioChannelLayout QuickTime ChannelLayout
|
28850
29076
|
'damr' DecodeConfig QuickTime DecodeConfig
|
28851
29077
|
'pinf' PurchaseInfo QuickTime ProtectionInfo
|
28852
29078
|
'sinf' ProtectionInfo QuickTime ProtectionInfo
|
28853
29079
|
'wave' Wave QuickTime Wave
|
28854
29080
|
|
29081
|
+
=head3 QuickTime SpatialAudio Tags
|
29082
|
+
|
29083
|
+
Spatial Audio tags.
|
29084
|
+
|
29085
|
+
Index1 Tag Name Writable
|
29086
|
+
------ -------- --------
|
29087
|
+
0 SpatialAudioVersion no
|
29088
|
+
1 AmbisonicType no
|
29089
|
+
2 AmbisonicOrder no
|
29090
|
+
6 AmbisonicChannelOrdering no
|
29091
|
+
7 AmbisonicNormalization no
|
29092
|
+
8 AmbisonicChannels no
|
29093
|
+
12 AmbisonicChannelMap no
|
29094
|
+
|
28855
29095
|
=head3 QuickTime ChannelLayout Tags
|
28856
29096
|
|
28857
29097
|
Audio channel layout.
|
@@ -29607,6 +29847,7 @@ metadata to WEBP images, but can't yet write to other RIFF-based formats.
|
|
29607
29847
|
'fmt ' AudioFormat RIFF AudioFormat
|
29608
29848
|
'gps0' GPSTrack QuickTime Stream
|
29609
29849
|
'gsen' GSensor QuickTime Stream
|
29850
|
+
'guan' Guano no
|
29610
29851
|
'iXML' IXML XMP XML
|
29611
29852
|
'id3 ' ID3 ID3
|
29612
29853
|
'inst' Instrument RIFF Instrument
|
@@ -31129,6 +31370,7 @@ L<https://www.matroska.org/technical/tagging.html>).
|
|
31129
31370
|
'SCREENPLAY_BY' ScreenplayBy no
|
31130
31371
|
'SORT_WITH' SortWith no
|
31131
31372
|
'SOUND_ENGINEER' SoundEngineer no
|
31373
|
+
'SPHERICAL-VIDEO' SphericalVideoXML XMP
|
31132
31374
|
'SUBJECT' Subject no
|
31133
31375
|
'SUBTITLE' Subtitle no
|
31134
31376
|
'SUMMARY' Summary no
|
@@ -31142,6 +31384,7 @@ L<https://www.matroska.org/technical/tagging.html>).
|
|
31142
31384
|
'TVDB' TVDB no
|
31143
31385
|
'URL' URL no
|
31144
31386
|
'WRITTEN_BY' WrittenBy no
|
31387
|
+
'spherical-video' SphericalVideoXML XMP
|
31145
31388
|
|
31146
31389
|
=head2 MOI Tags
|
31147
31390
|
|
@@ -37740,15 +37983,15 @@ These tags are extracted from RAR archive files.
|
|
37740
37983
|
|
37741
37984
|
=head3 ZIP RAR5 Tags
|
37742
37985
|
|
37743
|
-
These tags are extracted from RAR v5 archive files.
|
37986
|
+
These tags are extracted from RAR v5 and 7z archive files.
|
37744
37987
|
|
37745
37988
|
Tag Name Writable
|
37746
37989
|
-------- --------
|
37747
37990
|
ArchivedFileName no
|
37748
37991
|
CompressedSize no
|
37992
|
+
FileVersion no
|
37749
37993
|
ModifyDate no
|
37750
37994
|
OperatingSystem no
|
37751
|
-
RARVersion no
|
37752
37995
|
UncompressedSize no
|
37753
37996
|
|
37754
37997
|
=head2 RTF Tags
|
@@ -38167,7 +38410,7 @@ FileName.
|
|
38167
38410
|
ICC_Profile ICC_Profile yes!
|
38168
38411
|
ID3Size File no
|
38169
38412
|
IPTC IPTC yes!
|
38170
|
-
|
38413
|
+
ImageDataHash File no
|
38171
38414
|
ImageHeight File no
|
38172
38415
|
ImageWidth File no
|
38173
38416
|
JPEGDigest File no
|
@@ -38627,6 +38870,7 @@ for more details.
|
|
38627
38870
|
IFD0:XPAuthor
|
38628
38871
|
IFD0:XPKeywords
|
38629
38872
|
IFD0:XPSubject
|
38873
|
+
ImageDataMD5 ImageDataHash yes
|
38630
38874
|
LargeTags CanonVRD yes
|
38631
38875
|
DLOData
|
38632
38876
|
EXIF
|
@@ -17,7 +17,7 @@ package Image::ExifTool::Validate;
|
|
17
17
|
use strict;
|
18
18
|
use vars qw($VERSION %exifSpec);
|
19
19
|
|
20
|
-
$VERSION = '1.
|
20
|
+
$VERSION = '1.21';
|
21
21
|
|
22
22
|
use Image::ExifTool qw(:Utils);
|
23
23
|
use Image::ExifTool::Exif;
|
@@ -56,6 +56,15 @@ use Image::ExifTool::Exif;
|
|
56
56
|
0x212 => 1, 0x9204 => 1, 0xa210 => 1, 0xa500 => 221,
|
57
57
|
0x213 => 1, 0x9205 => 1, 0xa214 => 1,
|
58
58
|
0x214 => 1, 0x9206 => 1, 0xa215 => 1,
|
59
|
+
|
60
|
+
# new Exif 3.0 tags
|
61
|
+
0xa436 => 300,
|
62
|
+
0xa437 => 300,
|
63
|
+
0xa438 => 300,
|
64
|
+
0xa439 => 300,
|
65
|
+
0xa43a => 300,
|
66
|
+
0xa43b => 300,
|
67
|
+
0xa43c => 300,
|
59
68
|
);
|
60
69
|
|
61
70
|
# GPSVersionID numbers when each tag was introduced
|
@@ -147,6 +156,13 @@ my %stdFormat = (
|
|
147
156
|
0xc68d => 'int(16|32)u', 0xc791 => 'int(16|32)u',
|
148
157
|
0xc68e => 'int(16|32)u', 0xc792 => 'int(16|32)u',
|
149
158
|
0xc6d2 => '', 0xc793 => '(int16u|int32u|rational64u)',
|
159
|
+
# Exif 3.0 spec
|
160
|
+
0x10e => 'string|utf8', 0xa430 => 'string|utf8', 0xa439 => 'string|utf8',
|
161
|
+
0x10f => 'string|utf8', 0xa433 => 'string|utf8', 0xa43a => 'string|utf8',
|
162
|
+
0x110 => 'string|utf8', 0xa434 => 'string|utf8', 0xa43b => 'string|utf8',
|
163
|
+
0x131 => 'string|utf8', 0xa436 => 'string|utf8', 0xa43c => 'string|utf8',
|
164
|
+
0x13b => 'string|utf8', 0xa437 => 'string|utf8', 0xa43a => 'string|utf8',
|
165
|
+
0x8298 => 'string|utf8', 0xa438 => 'string|utf8',
|
150
166
|
},
|
151
167
|
);
|
152
168
|
|
@@ -420,15 +420,15 @@ sub ValidateImageData($$$;$)
|
|
420
420
|
}
|
421
421
|
|
422
422
|
#------------------------------------------------------------------------------
|
423
|
-
# Add specified image data to
|
423
|
+
# Add specified image data to ImageDataHash hash
|
424
424
|
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) lookup for [tagInfo,value] based on tagID
|
425
|
-
sub
|
425
|
+
sub AddImageDataHash($$$)
|
426
426
|
{
|
427
427
|
my ($et, $dirInfo, $offsetInfo) = @_;
|
428
428
|
my ($tagID, $offset, $buff);
|
429
429
|
|
430
430
|
my $verbose = $et->Options('Verbose');
|
431
|
-
my $
|
431
|
+
my $hash = $$et{ImageDataHash};
|
432
432
|
my $raf = $$dirInfo{RAF};
|
433
433
|
|
434
434
|
foreach $tagID (sort keys %$offsetInfo) {
|
@@ -451,12 +451,12 @@ sub AddImageDataMD5($$$)
|
|
451
451
|
my $size = shift @sizes;
|
452
452
|
next unless $offset =~ /^\d+$/ and $size and $size =~ /^\d+$/ and $size;
|
453
453
|
next unless $raf->Seek($offset, 0); # (offset is absolute)
|
454
|
-
$total += $et->
|
454
|
+
$total += $et->ImageDataHash($raf, $size);
|
455
455
|
}
|
456
456
|
if ($verbose) {
|
457
457
|
my $name = "$$dirInfo{DirName}:$$tagInfo{Name}";
|
458
458
|
$name =~ s/Offsets?|Start$//;
|
459
|
-
$et->VPrint(0, "$$et{INDENT}(
|
459
|
+
$et->VPrint(0, "$$et{INDENT}(ImageDataHash: $total bytes of $name data)\n");
|
460
460
|
}
|
461
461
|
}
|
462
462
|
}
|
@@ -780,7 +780,7 @@ Entry: for (;;) {
|
|
780
780
|
$readFormat = $oldFormat = Get16u($dataPt, $entry+2);
|
781
781
|
$readCount = $oldCount = Get32u($dataPt, $entry+4);
|
782
782
|
undef $oldImageData;
|
783
|
-
if ($oldFormat < 1 or $oldFormat > 13 and not ($oldFormat == 16 and $$et{Make} eq 'Apple' and $inMakerNotes)) {
|
783
|
+
if (($oldFormat < 1 or $oldFormat > 13) and $oldFormat != 129 and not ($oldFormat == 16 and $$et{Make} eq 'Apple' and $inMakerNotes)) {
|
784
784
|
my $msg = "Bad format ($oldFormat) for $name entry $index";
|
785
785
|
# patch to preserve invalid directory entries in SubIFD3 of
|
786
786
|
# various Kodak Z-series cameras (Z812, Z1085IS, Z1275)
|
@@ -1277,7 +1277,9 @@ NoWrite: next if $isNew > 0;
|
|
1277
1277
|
$et->Warn("Writing large value for $name",1);
|
1278
1278
|
}
|
1279
1279
|
# re-code if necessary
|
1280
|
-
if ($
|
1280
|
+
if ($newFormName eq 'utf8') {
|
1281
|
+
$newValue = $et->Encode($newValue, 'UTF8');
|
1282
|
+
} elsif ($strEnc and $newFormName eq 'string') {
|
1281
1283
|
$newValue = $et->Encode($newValue, $strEnc);
|
1282
1284
|
}
|
1283
1285
|
} else {
|
@@ -973,16 +973,14 @@ sub WriteQuickTime($$$)
|
|
973
973
|
}
|
974
974
|
} elsif ($tag eq 'CTBO' or $tag eq 'uuid') { # hack for updating CR3 CTBO offsets
|
975
975
|
push @{$$dirInfo{ChunkOffset}}, [ $tag, length($$outfile), length($hdr) + $size ];
|
976
|
-
} elsif (not $flg) {
|
977
|
-
|
978
|
-
$
|
979
|
-
|
976
|
+
} elsif (not $flg or $flg == 1) {
|
977
|
+
# assume "1" if stsd is yet to be read
|
978
|
+
$flg or $$et{AssumedDataRef} = 1;
|
979
|
+
# must update offsets since the data is in this file
|
980
|
+
push @{$$dirInfo{ChunkOffset}}, [ $tag, length($$outfile) + length($hdr), $size ];
|
980
981
|
} elsif ($flg == 3) {
|
981
982
|
$et->Error("Can't write files with mixed internal/external media data");
|
982
983
|
return $rtnVal;
|
983
|
-
} elsif ($flg == 1) {
|
984
|
-
# must update offsets since the data is in this file
|
985
|
-
push @{$$dirInfo{ChunkOffset}}, [ $tag, length($$outfile) + length($hdr), $size ];
|
986
984
|
}
|
987
985
|
}
|
988
986
|
|
@@ -1036,8 +1034,10 @@ sub WriteQuickTime($$$)
|
|
1036
1034
|
|
1037
1035
|
if ($subdir) { # process atoms in this container from a buffer in memory
|
1038
1036
|
|
1039
|
-
|
1040
|
-
|
1037
|
+
if ($tag eq 'trak') {
|
1038
|
+
undef $$et{HandlerType}; # init handler type for this track
|
1039
|
+
delete $$et{AssumedDataRef};
|
1040
|
+
}
|
1041
1041
|
my $subName = $$subdir{DirName} || $$tagInfo{Name};
|
1042
1042
|
my $start = $$subdir{Start} || 0;
|
1043
1043
|
my $base = ($$dirInfo{Base} || 0) + $raf->Tell() - $size;
|
@@ -1103,6 +1103,11 @@ sub WriteQuickTime($$$)
|
|
1103
1103
|
$$et{CHANGED} = $oldChanged;
|
1104
1104
|
undef $newData;
|
1105
1105
|
}
|
1106
|
+
if ($tag eq 'trak' and $$et{AssumedDataRef}) {
|
1107
|
+
my $grp = $$et{CUR_WRITE_GROUP} || $dirName;
|
1108
|
+
$et->Error("Can't locate data reference to update offsets for $grp");
|
1109
|
+
delete $$et{AssumedDataRef};
|
1110
|
+
}
|
1106
1111
|
$$et{CUR_WRITE_GROUP} = $oldWriteGroup;
|
1107
1112
|
SetByteOrder('MM');
|
1108
1113
|
# add back header if necessary
|
@@ -1405,6 +1410,13 @@ sub WriteQuickTime($$$)
|
|
1405
1410
|
$flg = 1; # (this seems to be the case)
|
1406
1411
|
}
|
1407
1412
|
$$et{QtDataFlg} = $flg;
|
1413
|
+
if ($$et{AssumedDataRef}) {
|
1414
|
+
if ($flg != $$et{AssumedDataRef}) {
|
1415
|
+
my $grp = $$et{CUR_WRITE_GROUP} || $parent;
|
1416
|
+
$et->Error("Assumed incorrect data reference for $grp (was $flg)");
|
1417
|
+
}
|
1418
|
+
delete $$et{AssumedDataRef};
|
1419
|
+
}
|
1408
1420
|
}
|
1409
1421
|
if ($tagInfo and $$tagInfo{WriteLast}) {
|
1410
1422
|
$writeLast = ($writeLast || '') . $hdr . $buff;
|
@@ -176,7 +176,7 @@ sub CheckXMP($$$;$)
|
|
176
176
|
require 'Image/ExifTool/XMPStruct.pl';
|
177
177
|
my ($item, $err, $w, $warn);
|
178
178
|
unless (ref $$valPtr) {
|
179
|
-
($$valPtr, $warn) = InflateStruct($valPtr);
|
179
|
+
($$valPtr, $warn) = InflateStruct($et, $valPtr);
|
180
180
|
# expect a structure HASH ref or ARRAY of structures
|
181
181
|
unless (ref $$valPtr) {
|
182
182
|
$$valPtr eq '' and $$valPtr = { }, return undef; # allow empty structures
|
@@ -189,7 +189,7 @@ sub CheckXMP($$$;$)
|
|
189
189
|
$$valPtr = \@copy; # return the copy
|
190
190
|
foreach $item (@copy) {
|
191
191
|
unless (ref $item eq 'HASH') {
|
192
|
-
($item, $w) = InflateStruct(\$item); # deserialize structure
|
192
|
+
($item, $w) = InflateStruct($et, \$item); # deserialize structure
|
193
193
|
$w and $warn = $w;
|
194
194
|
next if ref $item eq 'HASH';
|
195
195
|
$err = 'Improperly formed structure';
|