exiftool-vendored.pl 13.32.0 → 13.34.1
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.
- package/README.md +2 -2
- package/bin/Changes +43 -4
- package/bin/MANIFEST +5 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +100 -83
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -2
- package/bin/lib/Image/ExifTool/Canon.pm +15 -2
- package/bin/lib/Image/ExifTool/Exif.pm +6 -5
- package/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- package/bin/lib/Image/ExifTool/FujiFilm.pm +11 -3
- package/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- package/bin/lib/Image/ExifTool/GoPro.pm +14 -2
- package/bin/lib/Image/ExifTool/LNK.pm +4 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- package/bin/lib/Image/ExifTool/Nikon.pm +69 -35
- package/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- package/bin/lib/Image/ExifTool/Olympus.pm +253 -34
- package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- package/bin/lib/Image/ExifTool/Pentax.pm +168 -14
- package/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- package/bin/lib/Image/ExifTool/README +2 -1
- package/bin/lib/Image/ExifTool/Sony.pm +43 -17
- package/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- package/bin/lib/Image/ExifTool/TagLookup.pm +4375 -4267
- package/bin/lib/Image/ExifTool/TagNames.pod +244 -16
- package/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- package/bin/lib/Image/ExifTool/Writer.pl +12 -12
- package/bin/lib/Image/ExifTool.pm +12 -4
- package/bin/lib/Image/ExifTool.pod +50 -44
- package/bin/perl-Image-ExifTool.spec +46 -45
- package/index.js +2 -2
- package/package.json +9 -7
- package/bin/windows_exiftool.txt +0 -2936
|
@@ -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 28636 tags, with 17834 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
|
|
@@ -8050,6 +8050,7 @@ boot, not including standby time.
|
|
|
8050
8050
|
41 ManualFlashOutput int16s
|
|
8051
8051
|
42 ColorTone int16s
|
|
8052
8052
|
46 SRAWQuality int16s
|
|
8053
|
+
50 FocusBracketing int16s
|
|
8053
8054
|
51 Clarity int16s
|
|
8054
8055
|
52 HDR-PQ int16s
|
|
8055
8056
|
|
|
@@ -10338,6 +10339,7 @@ Information about creative filter settings.
|
|
|
10338
10339
|
18 AFStatusViewfinder int32s
|
|
10339
10340
|
19 InitialAFPointInServo int32s
|
|
10340
10341
|
20 SubjectToDetect int32s
|
|
10342
|
+
21 SubjectSwitching int32s
|
|
10341
10343
|
24 EyeDetection int32s
|
|
10342
10344
|
|
|
10343
10345
|
=head3 Canon RawBurstInfo Tags
|
|
@@ -12188,6 +12190,9 @@ Tags extracted from FLIR Public image Format (FPF) files.
|
|
|
12188
12190
|
0x1446 FlickerReduction int32u
|
|
12189
12191
|
0x1447 FujiModel string
|
|
12190
12192
|
0x1448 FujiModel2 string
|
|
12193
|
+
0x144a WBRed int16u
|
|
12194
|
+
0x144b WBGreen int16u
|
|
12195
|
+
0x144c WBBlue int16u
|
|
12191
12196
|
0x144d RollAngle rational64s
|
|
12192
12197
|
0x3803 VideoRecordingMode int32u
|
|
12193
12198
|
0x3804 PeripheralLighting int16u
|
|
@@ -15995,13 +16000,11 @@ These tags are used by the Z8 firmware 2.00 and 2.10.
|
|
|
15995
16000
|
1812 NonCPULens1MaxAperture? int32u~
|
|
15996
16001
|
1816 NonCPULens2MaxAperture? int32u~
|
|
15997
16002
|
1820 NonCPULens3MaxAperture? int32u~
|
|
15998
|
-
1824
|
|
16003
|
+
1824 NonCPULens4MaxAperture? int32u~
|
|
15999
16004
|
1828 NonCPULens5MaxAperture? int32u~
|
|
16000
16005
|
1832 NonCPULens6MaxAperture? int32u~
|
|
16001
16006
|
1836 NonCPULens7MaxAperture? int32u~
|
|
16002
16007
|
1840 NonCPULens8MaxAperture? int32u~
|
|
16003
|
-
1842 AirplaneMode? int8u
|
|
16004
|
-
1843 EmptySlotRelease? int8u
|
|
16005
16008
|
1844 NonCPULens9MaxAperture? int32u~
|
|
16006
16009
|
1848 NonCPULens10MaxAperture? int32u~
|
|
16007
16010
|
1852 NonCPULens11MaxAperture? int32u~
|
|
@@ -16011,12 +16014,15 @@ These tags are used by the Z8 firmware 2.00 and 2.10.
|
|
|
16011
16014
|
1868 NonCPULens15MaxAperture? int32u~
|
|
16012
16015
|
1872 NonCPULens16MaxAperture? int32u~
|
|
16013
16016
|
1876 NonCPULens17MaxAperture? int32u~
|
|
16014
|
-
1878 EnergySavingMode? int8u
|
|
16015
16017
|
1880 NonCPULens18MaxAperture? int32u~
|
|
16016
16018
|
1884 NonCPULens19MaxAperture? int32u~
|
|
16017
16019
|
1888 NonCPULens20MaxAperture? int32u~
|
|
16018
|
-
|
|
16019
|
-
|
|
16020
|
+
1904 HDMIOutputResolution int8u
|
|
16021
|
+
1922 AirplaneMode? int8u
|
|
16022
|
+
1923 EmptySlotRelease? int8u
|
|
16023
|
+
1958 EnergySavingMode? int8u
|
|
16024
|
+
1986 USBPowerDelivery? int8u
|
|
16025
|
+
1995 SensorShield? int8u
|
|
16020
16026
|
2046 PixelShiftShooting int8u
|
|
16021
16027
|
2048 PixelShiftNumberShots int8u
|
|
16022
16028
|
2050 PixelShiftDelay int8u
|
|
@@ -16027,6 +16033,9 @@ These tags are used by the Z8 firmware 2.00 and 2.10.
|
|
|
16027
16033
|
2060 LensFunc2ButtonPlaybackMode int8u
|
|
16028
16034
|
2062 PlaybackButtonPlaybackMode int8u
|
|
16029
16035
|
2064 BracketButtonPlaybackMode int8u
|
|
16036
|
+
2206 MaximumApertureLV? int8u
|
|
16037
|
+
2208 ReleaseModeButton int8u
|
|
16038
|
+
2216 ReleaseModeButtonPlaybackMode int8u
|
|
16030
16039
|
|
|
16031
16040
|
=head3 Nikon ShotInfoZ9 Tags
|
|
16032
16041
|
|
|
@@ -16836,7 +16845,7 @@ Z6, Z6ii, Z7, Z7ii, Z50 and Zfc.
|
|
|
16836
16845
|
=head3 Nikon AFInfo2V0400 Tags
|
|
16837
16846
|
|
|
16838
16847
|
AF information for Nikon cameras with the Expeed 7 processor: The Zf, Z6_3,
|
|
16839
|
-
Z8, Z9 and
|
|
16848
|
+
Z8, Z9, Z50_2 and Z5_2.
|
|
16840
16849
|
|
|
16841
16850
|
Index1 Tag Name Writable
|
|
16842
16851
|
------ -------- --------
|
|
@@ -18560,6 +18569,7 @@ Custom settings for the Z8.
|
|
|
18560
18569
|
263 AutoFocusModeRestrictions? int8u
|
|
18561
18570
|
267 CHModeShootingSpeed int8u
|
|
18562
18571
|
273 FlashBurstPriority? int8u
|
|
18572
|
+
281 Func3Button int8u
|
|
18563
18573
|
335 LimitAF-AreaModeSelDynamic_S? int8u
|
|
18564
18574
|
336 LimitAF-AreaModeSelDynamic_M? int8u
|
|
18565
18575
|
337 LimitAF-AreaModeSelDynamic_L? int8u
|
|
@@ -18581,7 +18591,6 @@ Custom settings for the Z8.
|
|
|
18581
18591
|
465 SubCommandDialVideoPlaybackMode? int8u
|
|
18582
18592
|
467 FocusPointLock? int8u
|
|
18583
18593
|
469 ControlRingResponse int8u
|
|
18584
|
-
515 MovieAFAreaMode? int8u
|
|
18585
18594
|
529 ZebraPatternToneRange? int8u
|
|
18586
18595
|
531 MovieZebraPattern? int8u
|
|
18587
18596
|
533 MovieHighlightDisplayThreshold? int8u
|
|
@@ -18881,7 +18890,6 @@ Custom settings for the Z9.
|
|
|
18881
18890
|
493 ControlRingResponse int8u
|
|
18882
18891
|
505 VerticalMovieFuncButton? int8u
|
|
18883
18892
|
529 VerticalMovieAFOnButton? int8u
|
|
18884
|
-
539 MovieAFAreaMode? int8u
|
|
18885
18893
|
551 HDMIViewAssist? int8u
|
|
18886
18894
|
553 ZebraPatternToneRange? int8u
|
|
18887
18895
|
555 MovieZebraPattern? int8u
|
|
@@ -19343,6 +19351,8 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19343
19351
|
0x0307 AFFineTuneAdj int16s[3]
|
|
19344
19352
|
0x0308 FocusBracketStepSize int8u
|
|
19345
19353
|
0x0309 AISubjectTrackingMode int16u
|
|
19354
|
+
0x030a AFTargetInfo Olympus AFTargetInfo
|
|
19355
|
+
0x030b SubjectDetectInfo Olympus SubjectDetectInfo
|
|
19346
19356
|
0x0400 FlashMode int16u
|
|
19347
19357
|
0x0401 FlashExposureComp rational64s
|
|
19348
19358
|
0x0403 FlashRemoteControl int16u
|
|
@@ -19387,6 +19397,7 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19387
19397
|
0x0603 ImageQuality2 int16u
|
|
19388
19398
|
0x0604 ImageStabilization int32u
|
|
19389
19399
|
0x0804 StackedImage int32u[2]
|
|
19400
|
+
0x0821 ISOAutoSettings int16u[2]
|
|
19390
19401
|
0x0900 ManometerPressure int16u
|
|
19391
19402
|
0x0901 ManometerReading int32s[2]
|
|
19392
19403
|
0x0902 ExtendedWBDetect int16u
|
|
@@ -19394,6 +19405,31 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19394
19405
|
0x0904 PitchAngle int16s[2]
|
|
19395
19406
|
0x0908 DateTimeUTC string
|
|
19396
19407
|
|
|
19408
|
+
=head3 Olympus AFTargetInfo Tags
|
|
19409
|
+
|
|
19410
|
+
Position and size of selected AF Area and focus areas for OM cameras.
|
|
19411
|
+
|
|
19412
|
+
Index2 Tag Name Writable
|
|
19413
|
+
------ -------- --------
|
|
19414
|
+
0 AFFrameSize int16u[2]
|
|
19415
|
+
2 AFFocusArea int16u[4]
|
|
19416
|
+
6 AFSelectedArea int16u[4]
|
|
19417
|
+
|
|
19418
|
+
=head3 Olympus SubjectDetectInfo Tags
|
|
19419
|
+
|
|
19420
|
+
Subject Detection data for OM cameras. These tags contain the areas of a
|
|
19421
|
+
subject and its elements detected by Subject Detection, or the main face and
|
|
19422
|
+
eyes detected by Face Detection. These elements can be either L1 details
|
|
19423
|
+
(level 1, such as head, chassis, airplane nose, etc.) or L2 details (level
|
|
19424
|
+
2, such as eye, driver, airplane cockpit, etc.).
|
|
19425
|
+
|
|
19426
|
+
Index2 Tag Name Writable
|
|
19427
|
+
------ -------- --------
|
|
19428
|
+
0 SubjectDetectFrameSize int16u[2]
|
|
19429
|
+
2 SubjectDetectArea int16u[4]
|
|
19430
|
+
6 SubjectDetectDetail int16u[4]
|
|
19431
|
+
10 SubjectDetectStatus int16u
|
|
19432
|
+
|
|
19397
19433
|
=head3 Olympus RawDevelopment Tags
|
|
19398
19434
|
|
|
19399
19435
|
Tag ID Tag Name Writable
|
|
@@ -19441,6 +19477,13 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19441
19477
|
0x0119 RawDevAutoGradation int16u
|
|
19442
19478
|
0x0120 RawDevPMNoiseFilter int16u
|
|
19443
19479
|
0x0121 RawDevArtFilter int16u[4]
|
|
19480
|
+
0x8000 RawDevSubIFD Olympus RawDevSubIFD
|
|
19481
|
+
|
|
19482
|
+
=head3 Olympus RawDevSubIFD Tags
|
|
19483
|
+
|
|
19484
|
+
Tag ID Tag Name Writable
|
|
19485
|
+
------ -------- --------
|
|
19486
|
+
[no tags known]
|
|
19444
19487
|
|
|
19445
19488
|
=head3 Olympus ImageProcessing Tags
|
|
19446
19489
|
|
|
@@ -19509,6 +19552,7 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19509
19552
|
0x1900 KeystoneCompensation int8u[2]
|
|
19510
19553
|
0x1901 KeystoneDirection int8u[2]
|
|
19511
19554
|
0x1906 KeystoneValue int16s[3]
|
|
19555
|
+
0x2110 GNDFilterType int8u
|
|
19512
19556
|
|
|
19513
19557
|
=head3 Olympus FocusInfo Tags
|
|
19514
19558
|
|
|
@@ -19537,12 +19581,13 @@ any information found here will be extracted, even if the tag is not listed.
|
|
|
19537
19581
|
0x120a MacroLED int16u
|
|
19538
19582
|
0x1500 SensorTemperature int16s
|
|
19539
19583
|
0x1600 ImageStabilization undef~
|
|
19584
|
+
0x2100 AntiShockWaitingTime yes
|
|
19540
19585
|
|
|
19541
19586
|
=head3 Olympus AFInfo Tags
|
|
19542
19587
|
|
|
19543
19588
|
Index1 Tag Name Writable
|
|
19544
19589
|
------ -------- --------
|
|
19545
|
-
|
|
19590
|
+
1580 CAFSensitivity no
|
|
19546
19591
|
|
|
19547
19592
|
=head3 Olympus FE Tags
|
|
19548
19593
|
|
|
@@ -20363,6 +20408,7 @@ These tags are used in Pentax/Asahi cameras.
|
|
|
20363
20408
|
0x0402 ToneCurve yes~
|
|
20364
20409
|
0x0403 ToneCurves yes~
|
|
20365
20410
|
0x0405 UnknownBlock? undef
|
|
20411
|
+
0x040b FaceInfoK3III Pentax FaceInfoK3III
|
|
20366
20412
|
0x040c AFInfoK3III Pentax AFInfoK3III
|
|
20367
20413
|
0x0e00 PrintIM PrintIM
|
|
20368
20414
|
|
|
@@ -20681,10 +20727,16 @@ Flash information tags for the K10D, K20D and K200D.
|
|
|
20681
20727
|
7 AFIntegrationTime int8u
|
|
20682
20728
|
11 AFPointsInFocus int8u
|
|
20683
20729
|
20 AFPointValues? no
|
|
20684
|
-
298 AFPointsSelected int8u[
|
|
20685
|
-
399 AFPointsUnknown? int8u[
|
|
20730
|
+
298 AFPointsSelected int8u[101]~
|
|
20731
|
+
399 AFPointsUnknown? int8u[101]~
|
|
20686
20732
|
506 LiveView int8u
|
|
20687
20733
|
509 AFHold int8u
|
|
20734
|
+
543 FirstFrameActionInAFC int8u
|
|
20735
|
+
544 ActionInAFCCont int8u
|
|
20736
|
+
545 AFCHold int8u & 0x03
|
|
20737
|
+
545.1 AFCSensitivity int8u & 0x0c
|
|
20738
|
+
545.2 AFCPointTracking int8u & 0x70
|
|
20739
|
+
2400 SubjectRecognition int8u
|
|
20688
20740
|
|
|
20689
20741
|
=head3 Pentax KelvinWB Tags
|
|
20690
20742
|
|
|
@@ -20926,6 +20978,7 @@ sensors are located in the camera.
|
|
|
20926
20978
|
|
|
20927
20979
|
Index1 Tag Name Writable
|
|
20928
20980
|
------ -------- --------
|
|
20981
|
+
10 ShotNumber no
|
|
20929
20982
|
12 SensorTemperature int16s
|
|
20930
20983
|
14 SensorTemperature2 int16s
|
|
20931
20984
|
20 CameraTemperature4 int16s
|
|
@@ -20938,6 +20991,76 @@ sensors are located in the camera.
|
|
|
20938
20991
|
------ -------- --------
|
|
20939
20992
|
[no tags known]
|
|
20940
20993
|
|
|
20994
|
+
=head3 Pentax FaceInfoK3III Tags
|
|
20995
|
+
|
|
20996
|
+
Index4 Tag Name Writable
|
|
20997
|
+
------ -------- --------
|
|
20998
|
+
0 FaceImageSize int32u[2]
|
|
20999
|
+
0.1 FaceInfoK3III? int32u[$size/4]
|
|
21000
|
+
2 CAFArea int32u[4]
|
|
21001
|
+
6 FacesDetectedA int32u
|
|
21002
|
+
8 FacesDetectedB int32u
|
|
21003
|
+
10 Face1AArea int32u[4]
|
|
21004
|
+
14 Face1AEye1 int32u[4]
|
|
21005
|
+
18 Face1AEye2 int32u[4]
|
|
21006
|
+
30 Face2AArea int32u[4]
|
|
21007
|
+
34 Face2AEye1 int32u[4]
|
|
21008
|
+
38 Face2AEye2 int32u[4]
|
|
21009
|
+
50 Face3AArea int32u[4]
|
|
21010
|
+
54 Face3AEye1 int32u[4]
|
|
21011
|
+
58 Face3AEye2 int32u[4]
|
|
21012
|
+
70 Face4AArea int32u[4]
|
|
21013
|
+
74 Face4AEye1 int32u[4]
|
|
21014
|
+
78 Face4AEye2 int32u[4]
|
|
21015
|
+
90 Face5AArea int32u[4]
|
|
21016
|
+
94 Face5AEye1 int32u[4]
|
|
21017
|
+
98 Face5AEye2 int32u[4]
|
|
21018
|
+
110 Face6AArea int32u[4]
|
|
21019
|
+
114 Face6AEye1 int32u[4]
|
|
21020
|
+
118 Face6AEye2 int32u[4]
|
|
21021
|
+
130 Face7AArea int32u[4]
|
|
21022
|
+
134 Face7AEye1 int32u[4]
|
|
21023
|
+
138 Face7AEye2 int32u[4]
|
|
21024
|
+
150 Face8AArea int32u[4]
|
|
21025
|
+
154 Face8AEye1 int32u[4]
|
|
21026
|
+
158 Face8AEye2 int32u[4]
|
|
21027
|
+
170 Face9AArea int32u[4]
|
|
21028
|
+
174 Face9AEye1 int32u[4]
|
|
21029
|
+
178 Face9AEye2 int32u[4]
|
|
21030
|
+
190 Face10AArea int32u[4]
|
|
21031
|
+
194 Face10AEye1 int32u[4]
|
|
21032
|
+
198 Face10AEye2 int32u[4]
|
|
21033
|
+
210 Face1BArea int32u[4]
|
|
21034
|
+
214 Face1BEye1 int32u[4]
|
|
21035
|
+
218 Face1BEye2 int32u[4]
|
|
21036
|
+
230 Face2BArea int32u[4]
|
|
21037
|
+
234 Face2BEye1 int32u[4]
|
|
21038
|
+
238 Face2BEye2 int32u[4]
|
|
21039
|
+
250 Face3BArea int32u[4]
|
|
21040
|
+
254 Face3BEye1 int32u[4]
|
|
21041
|
+
258 Face3BEye2 int32u[4]
|
|
21042
|
+
270 Face4BArea int32u[4]
|
|
21043
|
+
274 Face4BEye1 int32u[4]
|
|
21044
|
+
278 Face4BEye2 int32u[4]
|
|
21045
|
+
290 Face5BArea int32u[4]
|
|
21046
|
+
294 Face5BEye1 int32u[4]
|
|
21047
|
+
298 Face5BEye2 int32u[4]
|
|
21048
|
+
310 Face6BArea int32u[4]
|
|
21049
|
+
314 Face6BEye1 int32u[4]
|
|
21050
|
+
318 Face6BEye2 int32u[4]
|
|
21051
|
+
330 Face7BArea int32u[4]
|
|
21052
|
+
334 Face7BEye1 int32u[4]
|
|
21053
|
+
338 Face7BEye2 int32u[4]
|
|
21054
|
+
350 Face8BArea int32u[4]
|
|
21055
|
+
354 Face8BEye1 int32u[4]
|
|
21056
|
+
358 Face8BEye2 int32u[4]
|
|
21057
|
+
370 Face9BArea int32u[4]
|
|
21058
|
+
374 Face9BEye1 int32u[4]
|
|
21059
|
+
378 Face9BEye2 int32u[4]
|
|
21060
|
+
390 Face10BArea int32u[4]
|
|
21061
|
+
394 Face10BEye1 int32u[4]
|
|
21062
|
+
398 Face10BEye2 int32u[4]
|
|
21063
|
+
|
|
20941
21064
|
=head3 Pentax AFInfoK3III Tags
|
|
20942
21065
|
|
|
20943
21066
|
AF tags written by the K-3 Mark III, GR III and GR IIIx.
|
|
@@ -23505,11 +23628,11 @@ E-mount models.
|
|
|
23505
23628
|
|
|
23506
23629
|
=head3 Sony Tag9416 Tags
|
|
23507
23630
|
|
|
23508
|
-
Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30,
|
|
23631
|
+
Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX2/FX3/FX30,
|
|
23632
|
+
ZV-E1/E10M2.
|
|
23509
23633
|
|
|
23510
23634
|
Index1 Tag Name Writable
|
|
23511
23635
|
------ -------- --------
|
|
23512
|
-
0 Tag9416_0000 no
|
|
23513
23636
|
4 SonyISO no
|
|
23514
23637
|
6 StopsAboveBaseISO no
|
|
23515
23638
|
10 SonyExposureTime2 no
|
|
@@ -31690,7 +31813,8 @@ the config file.
|
|
|
31690
31813
|
'RMKN' RicohRMKN EXIF
|
|
31691
31814
|
'RTHU' PreviewImage no
|
|
31692
31815
|
'SDLN' PlayMode string
|
|
31693
|
-
'SIGM'
|
|
31816
|
+
'SIGM' SigmaEXIF EXIF
|
|
31817
|
+
PreviewImage string
|
|
31694
31818
|
'SNum' SerialNumber string/
|
|
31695
31819
|
'SelO' PlaySelection int8u
|
|
31696
31820
|
'TAGS' FujiFilmTags FujiFilm MOV
|
|
@@ -36401,6 +36525,110 @@ Tags with index 54 and greater are conditional based on the StreamType.
|
|
|
36401
36525
|
58 AudioSampleRate no
|
|
36402
36526
|
ImageHeight no
|
|
36403
36527
|
|
|
36528
|
+
=head2 TNEF Tags
|
|
36529
|
+
|
|
36530
|
+
Information extracted from Transport Neutral Encapsulation Format (TNEF)
|
|
36531
|
+
files (eg. winmail.dat). But note that the exiftool application doesn't
|
|
36532
|
+
process files with a .DAT extension by default when a directory name is
|
|
36533
|
+
given, so in this case either specify the .DAT file(s) by name or add
|
|
36534
|
+
C<-ext+ dat> to the command.
|
|
36535
|
+
|
|
36536
|
+
Tag ID Tag Name Writable
|
|
36537
|
+
------ -------- --------
|
|
36538
|
+
0x8000 From no
|
|
36539
|
+
0x18004 Subject no
|
|
36540
|
+
0x18009 MessageID no
|
|
36541
|
+
0x18010 AttachTitle no
|
|
36542
|
+
0x2800c MessageBody no
|
|
36543
|
+
0x30006 StartDate no
|
|
36544
|
+
0x30007 EndDate no
|
|
36545
|
+
0x38005 SentDate no
|
|
36546
|
+
0x38006 ReceivedDate no
|
|
36547
|
+
0x38012 AttachCreateDate no
|
|
36548
|
+
0x38013 AttachModifyDate no
|
|
36549
|
+
0x38020 MessageModifyDate no
|
|
36550
|
+
0x40009 ResponseRequested no
|
|
36551
|
+
0x4800d Priority no
|
|
36552
|
+
0x50008 OwnerAppointmentID no
|
|
36553
|
+
0x60000 Owner no
|
|
36554
|
+
0x60001 SentFor no
|
|
36555
|
+
0x60002 Delegate no
|
|
36556
|
+
0x68007 MessageStatus no
|
|
36557
|
+
0x6800f AttachData no
|
|
36558
|
+
0x68011 AttachMetaFile no
|
|
36559
|
+
0x69001 AttachTransportFilename no
|
|
36560
|
+
0x69002 AttachRenderingData no
|
|
36561
|
+
0x69003 MessageProps TNEF MsgProps
|
|
36562
|
+
0x69004 RecipientTable no
|
|
36563
|
+
0x69005 AttachInfo TNEF AttachInfo
|
|
36564
|
+
0x69007 CodePage no
|
|
36565
|
+
0x70600 OriginalMessageClass no
|
|
36566
|
+
0x78008 MessageClass no
|
|
36567
|
+
0x89006 TNEFVersion no
|
|
36568
|
+
|
|
36569
|
+
=head3 TNEF MsgProps Tags
|
|
36570
|
+
|
|
36571
|
+
Tag ID Tag Name Writable
|
|
36572
|
+
------ -------- --------
|
|
36573
|
+
0x0002 AlternateRecipientAllowed no
|
|
36574
|
+
0x0039 ClientSubmitTime no
|
|
36575
|
+
0x0040 ReceivedByName no
|
|
36576
|
+
0x0044 ReceivedRepresentingName no
|
|
36577
|
+
0x004d OriginalAuthorName no
|
|
36578
|
+
0x0055 OriginalDeliveryTime no
|
|
36579
|
+
0x0070 Subject no
|
|
36580
|
+
0x0075 ReceivedByAddressType no
|
|
36581
|
+
0x0076 ReceivedByEmailAddress no
|
|
36582
|
+
0x0077 ReceivedRepresentingAddressType no
|
|
36583
|
+
0x0078 ReceivedRepresentingEmailAddress no
|
|
36584
|
+
0x007f CorrelationKey no
|
|
36585
|
+
0x0c1a SenderName no
|
|
36586
|
+
0x0c1d SenderSearchKey no
|
|
36587
|
+
0x0e06 MessageDeliveryTime no
|
|
36588
|
+
0x0e1d NormalizedSubject no
|
|
36589
|
+
0x0e28 PrimarySendAccount no
|
|
36590
|
+
0x0e29 NextSendAccount no
|
|
36591
|
+
0x0f02 DeliveryOrRenewTime no
|
|
36592
|
+
0x1000 MessageBodyText no
|
|
36593
|
+
0x1007 SyncBodyCount no
|
|
36594
|
+
0x1008 SyncBodyData no
|
|
36595
|
+
0x1009 MessageBodyRTF no
|
|
36596
|
+
0x1013 MessageBodyHTML no
|
|
36597
|
+
0x1035 InternetMessageID no
|
|
36598
|
+
0x10f4 Hidden no
|
|
36599
|
+
0x10f6 ReadOnly no
|
|
36600
|
+
0x3007 CreateDate no
|
|
36601
|
+
0x3008 ModifyDate no
|
|
36602
|
+
0x3fde InternetCodePage no
|
|
36603
|
+
0x3ff1 LocalUserID no
|
|
36604
|
+
0x3ff8 CreatorName no
|
|
36605
|
+
0x3ffa LastModifierName no
|
|
36606
|
+
0x3ffd MessageCodePage no
|
|
36607
|
+
0x4076 SpamConfidenceLevel no
|
|
36608
|
+
'00020329_Author' Author no
|
|
36609
|
+
'00020329_LastAuthor' LastAuthor no
|
|
36610
|
+
'00062004_0000801A' HomeAddress no
|
|
36611
|
+
'00062004_000080DA' HomeAddressCountryCode no
|
|
36612
|
+
'00062008_00008554' AppVersion no
|
|
36613
|
+
|
|
36614
|
+
=head3 TNEF AttachInfo Tags
|
|
36615
|
+
|
|
36616
|
+
Tag ID Tag Name Writable
|
|
36617
|
+
------ -------- --------
|
|
36618
|
+
0x0e20 AttachSize no
|
|
36619
|
+
0x0e21 AttachNum no
|
|
36620
|
+
0x0ff8 MappingSignature? no
|
|
36621
|
+
0x3001 AttachFileName no
|
|
36622
|
+
0x3701 AttachBinary no
|
|
36623
|
+
0x3703 AttachFileExtension no
|
|
36624
|
+
0x3705 AttachMethod no
|
|
36625
|
+
0x3707 AttachLongFileName no
|
|
36626
|
+
0x3708 AttachPathName no
|
|
36627
|
+
0x370d AttachLongPathName no
|
|
36628
|
+
0x370e AttachMIMEType no
|
|
36629
|
+
0x7ffb ExceptionStartTime? no
|
|
36630
|
+
0x7ffc ExceptionEndTime? no
|
|
36631
|
+
|
|
36404
36632
|
=head2 WTV Tags
|
|
36405
36633
|
|
|
36406
36634
|
Tags found in Windows recorded TV (WTV) videos.
|
|
@@ -49,7 +49,7 @@ my %mandatory = (
|
|
|
49
49
|
0x0000 => '2 3 0 0',# GPSVersionID
|
|
50
50
|
},
|
|
51
51
|
InteropIFD => {
|
|
52
|
-
0x0002 => '0100', # InteropVersion
|
|
52
|
+
0x0002 => '0100', # InteropVersion (from the DCF spec, not the EXIF spec)
|
|
53
53
|
},
|
|
54
54
|
);
|
|
55
55
|
|
|
@@ -2529,17 +2529,19 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2529
2529
|
}
|
|
2530
2530
|
if ($$tagInfo{Name} eq 'PreviewImageStart') {
|
|
2531
2531
|
if ($$et{FILE_TYPE} eq 'JPEG' and not $$tagInfo{MakerPreview}) {
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
$$
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2532
|
+
if ($size) {
|
|
2533
|
+
# hold onto the PreviewImage until we can determine if it fits
|
|
2534
|
+
$$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
|
|
2535
|
+
Data => $buff,
|
|
2536
|
+
Fixup => Image::ExifTool::Fixup->new,
|
|
2537
|
+
};
|
|
2538
|
+
if ($$tagInfo{IsOffset} and $$tagInfo{IsOffset} eq '2') {
|
|
2539
|
+
$$et{PREVIEW_INFO}{NoBaseShift} = 1;
|
|
2540
|
+
}
|
|
2541
|
+
if ($offset >= 0 and $offset+$size <= $dataLen) {
|
|
2542
|
+
# set flag indicating this preview wasn't in a trailer
|
|
2543
|
+
$$et{PREVIEW_INFO}{WasContained} = 1;
|
|
2544
|
+
}
|
|
2543
2545
|
}
|
|
2544
2546
|
$buff = '';
|
|
2545
2547
|
} elsif ($$et{TIFF_TYPE} eq 'ARW' and $$et{Model} eq 'DSLR-A100') {
|
|
@@ -695,12 +695,11 @@ TAG: foreach $tagInfo (@matchingTags) {
|
|
|
695
695
|
my $src = GetTagTable($$table{SRC_TABLE});
|
|
696
696
|
$writeProc = $$src{WRITE_PROC} unless $writeProc;
|
|
697
697
|
}
|
|
698
|
-
{
|
|
698
|
+
if ($writeProc) {
|
|
699
699
|
# make sure module is loaded if the writeProc is a string
|
|
700
700
|
unless (ref $writeProc) {
|
|
701
701
|
my $module = $writeProc;
|
|
702
|
-
$module =~ s/::\w
|
|
703
|
-
eval "require $module";
|
|
702
|
+
$module =~ s/::\w+$// and eval "require $module";
|
|
704
703
|
}
|
|
705
704
|
no strict 'refs';
|
|
706
705
|
next unless $writeProc and &$writeProc();
|
|
@@ -3203,7 +3202,7 @@ sub InsertTagValues($$;$$$$)
|
|
|
3203
3202
|
my ($docNum, $tag);
|
|
3204
3203
|
|
|
3205
3204
|
if ($docGrp) {
|
|
3206
|
-
$docNum = $docGrp =~ /(\d+)$/ ? $1 : 0;
|
|
3205
|
+
$docNum = $docGrp =~ /(\d+(-\d+)*)$/ ? $1 : 0;
|
|
3207
3206
|
} else {
|
|
3208
3207
|
undef $cache; # no cache if no document groups
|
|
3209
3208
|
}
|
|
@@ -3271,25 +3270,25 @@ sub InsertTagValues($$;$$$$)
|
|
|
3271
3270
|
# (similar to code in BuildCompositeTags(), but this is case-insensitive)
|
|
3272
3271
|
my $cacheTag = $$cache{$lcTag};
|
|
3273
3272
|
unless ($cacheTag) {
|
|
3274
|
-
$cacheTag = $$cache{$lcTag} =
|
|
3273
|
+
$cacheTag = $$cache{$lcTag} = { };
|
|
3275
3274
|
# find all matching keys, organize into groups, and store in cache
|
|
3276
3275
|
my $ex = $$self{TAG_EXTRA};
|
|
3277
3276
|
my @matches = grep /^$tag(\s|$)/i, @$foundTags;
|
|
3278
3277
|
@matches = $self->GroupMatches($group, \@matches) if defined $group;
|
|
3279
3278
|
foreach (@matches) {
|
|
3280
3279
|
my $doc = $$ex{$_}{G3} || 0;
|
|
3281
|
-
if (defined $$cacheTag
|
|
3282
|
-
next unless $$cacheTag
|
|
3280
|
+
if (defined $$cacheTag{$doc}) {
|
|
3281
|
+
next unless $$cacheTag{$doc} =~ / \((\d+)\)$/;
|
|
3283
3282
|
my $cur = $1;
|
|
3284
3283
|
# keep the most recently extracted tag
|
|
3285
3284
|
next if / \((\d+)\)$/ and $1 < $cur;
|
|
3286
3285
|
}
|
|
3287
|
-
$$cacheTag
|
|
3286
|
+
$$cacheTag{$doc} = $_;
|
|
3288
3287
|
}
|
|
3289
3288
|
}
|
|
3290
|
-
my $doc = $lcTag =~ /\b(main|doc(\d+)):/ ? ($2 || 0) : $docNum;
|
|
3291
|
-
if ($$cacheTag
|
|
3292
|
-
$tag = $$cacheTag
|
|
3289
|
+
my $doc = $lcTag =~ /\b(main|doc(\d+(-\d+)*)):/ ? ($2 || 0) : $docNum;
|
|
3290
|
+
if ($$cacheTag{$doc}) {
|
|
3291
|
+
$tag = $$cacheTag{$doc};
|
|
3293
3292
|
$val = $self->GetValue($tag, $type);
|
|
3294
3293
|
}
|
|
3295
3294
|
} else {
|
|
@@ -3405,7 +3404,7 @@ sub InsertTagValues($$;$$$$)
|
|
|
3405
3404
|
undef $advFmtSelf;
|
|
3406
3405
|
$didExpr = 1; # set flag indicating an expression was evaluated
|
|
3407
3406
|
}
|
|
3408
|
-
unless (defined $val) {
|
|
3407
|
+
unless (defined $val or (ref $opt and $$self{OPTIONS}{UndefTags})) {
|
|
3409
3408
|
$val = $$self{OPTIONS}{MissingTagValue};
|
|
3410
3409
|
unless (defined $val) {
|
|
3411
3410
|
my $g3 = ($docGrp and $var !~ /\b(main|doc\d+):/i) ? $docGrp . ':' : '';
|
|
@@ -5053,6 +5052,7 @@ TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
|
|
5053
5052
|
last;
|
|
5054
5053
|
}
|
|
5055
5054
|
if (not $lib) {
|
|
5055
|
+
last unless $$self{OPTIONS}{StrictDate};
|
|
5056
5056
|
warn $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n";
|
|
5057
5057
|
return undef;
|
|
5058
5058
|
} elsif ($lib eq 'POSIX::strptime') {
|
|
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.34';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -152,8 +152,8 @@ sub ReadValue($$$;$$$);
|
|
|
152
152
|
APE::OldHeader Audible MPC MPEG::Audio MPEG::Video MPEG::Xing M2TS QuickTime
|
|
153
153
|
QuickTime::ImageFile QuickTime::Stream QuickTime::Tags360Fly Matroska
|
|
154
154
|
Matroska::StdTag MOI MXF DV Flash Flash::FLV Real::Media Real::Audio
|
|
155
|
-
Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS XISF MIE JSON HTML
|
|
156
|
-
Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
|
|
155
|
+
Real::Metafile Red RIFF AIFF ASF TNEF WTV DICOM FITS XISF MIE JSON HTML
|
|
156
|
+
XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
|
|
157
157
|
EXE::DebugRSDS EXE::DebugNB10 EXE::Misc EXE::MachO EXE::PEF EXE::ELF EXE::AR
|
|
158
158
|
EXE::CHM LNK PCAP Font VCard Text VCard::VCalendar VCard::VNote RSRC Rawzor
|
|
159
159
|
ZIP ZIP::GZIP ZIP::RAR ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF FLIR::FPF
|
|
@@ -200,7 +200,7 @@ $defaultLang = 'en'; # default language
|
|
|
200
200
|
RAR 7Z BZ2 CZI TAR EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font
|
|
201
201
|
JUMBF RSRC M2TS MacOS PHP PCX DCX DWF DWG DXF WTV Torrent VCard
|
|
202
202
|
LRI R3D AA PDB PFM2 MRC LIF JXL MOI ISO ALIAS PCAP JSON MP3
|
|
203
|
-
DICOM PCD NKA ICO TXT AAC);
|
|
203
|
+
TNEF DICOM PCD NKA ICO TXT AAC);
|
|
204
204
|
|
|
205
205
|
# file types that we can write (edit)
|
|
206
206
|
my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
|
|
@@ -536,6 +536,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
536
536
|
THMX => [['ZIP','FPX'], 'Office Open XML Theme'],
|
|
537
537
|
TIF => 'TIFF',
|
|
538
538
|
TIFF => ['TIFF', 'Tagged Image File Format'],
|
|
539
|
+
TNEF => ['TNEF', 'Transport Neural Encapsulation Format'], # (actual extension is .DAT)
|
|
539
540
|
TORRENT => ['Torrent', 'BitTorrent description file'],
|
|
540
541
|
TS => 'M2TS',
|
|
541
542
|
TTC => ['Font', 'True Type Font Collection'],
|
|
@@ -802,6 +803,7 @@ my %fileDescription = (
|
|
|
802
803
|
TAR => 'application/x-tar',
|
|
803
804
|
THMX => 'application/vnd.ms-officetheme',
|
|
804
805
|
TIFF => 'image/tiff',
|
|
806
|
+
TNEF => 'application/vnd.ms-tnef',
|
|
805
807
|
Torrent => 'application/x-bittorrent',
|
|
806
808
|
TTC => 'application/font-ttf',
|
|
807
809
|
TTF => 'application/font-ttf',
|
|
@@ -1012,6 +1014,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
|
|
|
1012
1014
|
RWZ => 'rawzor',
|
|
1013
1015
|
SWF => '[FC]WS[^\0]',
|
|
1014
1016
|
TAR => '.{257}ustar( )?\0', # (this doesn't catch old-style tar files)
|
|
1017
|
+
TNEF => '\x78\x9f\x3e\x22..\x01\x06\x90\x08\0',
|
|
1015
1018
|
TXT => '(\xff\xfe|(\0\0)?\xfe\xff|(\xef\xbb\xbf)?[\x07-\x0d\x20-\x7e\x80-\xfe]*$)',
|
|
1016
1019
|
TIFF => '(II|MM)', # don't test magic number (some raw formats are different)
|
|
1017
1020
|
VCard=> '(?i)BEGIN:(VCARD|VCALENDAR|VNOTE)\r\n',
|
|
@@ -1178,6 +1181,7 @@ my @availableOptions = (
|
|
|
1178
1181
|
[ 'SystemTags', undef, 'extract additional File System tags' ],
|
|
1179
1182
|
[ 'TextOut', \*STDOUT, 'file for Verbose/HtmlDump output' ],
|
|
1180
1183
|
[ 'TimeZone', undef, 'local time zone' ],
|
|
1184
|
+
[ 'UndefTags', undef, 'leave undef tags in -if conditions when -m or -f are used' ],
|
|
1181
1185
|
[ 'Unknown', 0, 'flag to get values of unknown tags (0-2)' ],
|
|
1182
1186
|
[ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
|
|
1183
1187
|
[ 'Validate', undef, 'perform additional validation' ],
|
|
@@ -4292,6 +4296,7 @@ sub Init($)
|
|
|
4292
4296
|
$$self{LOW_PRIORITY_DIR} = { PreviewIFD => 1 }; # names of priority 0 directories
|
|
4293
4297
|
$$self{TIFF_TYPE} = ''; # type of TIFF data (APP1, TIFF, NEF, etc...)
|
|
4294
4298
|
$$self{FMT_EXPR} = undef; # current advanced formatting expression
|
|
4299
|
+
$$self{HAS_DOC} = { }; # lookup for all document numbers in this file
|
|
4295
4300
|
$$self{Make} = ''; # camera make
|
|
4296
4301
|
$$self{Model} = ''; # camera model
|
|
4297
4302
|
$$self{CameraType} = ''; # Olympus camera type
|
|
@@ -6582,6 +6587,8 @@ sub ConvertDateTime($$)
|
|
|
6582
6587
|
}
|
|
6583
6588
|
$a[5] -= 1900; # strftime year starts from 1900
|
|
6584
6589
|
$date = POSIX::strftime($fmt, @a); # generate the formatted date/time
|
|
6590
|
+
# apparently strftime can set the UTF-8 flag (argh!), so reset this if necessary
|
|
6591
|
+
$self->Sanitize(\$date) if $fmt =~ /[\x80-\xff]/;
|
|
6585
6592
|
} elsif ($$self{OPTIONS}{StrictDate}) {
|
|
6586
6593
|
undef $date;
|
|
6587
6594
|
}
|
|
@@ -9480,6 +9487,7 @@ sub FoundTag($$$;@)
|
|
|
9480
9487
|
$$self{TAG_EXTRA}{$tag}{G1} = $grps[1] if $grps[1];
|
|
9481
9488
|
if ($$self{DOC_NUM}) {
|
|
9482
9489
|
$$self{TAG_EXTRA}{$tag}{G3} = $$self{DOC_NUM};
|
|
9490
|
+
$$self{HAS_DOC}{$$self{DOC_NUM}} = 1;
|
|
9483
9491
|
if ($$self{DOC_NUM} =~ /^(\d+)/) {
|
|
9484
9492
|
# keep track of maximum 1st-level sub-document number
|
|
9485
9493
|
$$self{DOC_COUNT} = $1 unless $$self{DOC_COUNT} >= $1;
|