exiftool-vendored.pl 13.26.0 → 13.30.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.
- package/README.md +9 -2
- package/bin/Changes +64 -1
- package/bin/META.json +3 -2
- package/bin/META.yml +3 -2
- package/bin/README +2 -2
- package/bin/arg_files/exif2xmp.args +2 -1
- package/bin/arg_files/xmp2exif.args +2 -1
- package/bin/config_files/pix4d.config +9 -8
- package/bin/exiftool +21 -16
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +4 -2
- package/bin/lib/Image/ExifTool/Exif.pm +3 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +2 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/lib/Image/ExifTool/JPEG.pm +20 -8
- package/bin/lib/Image/ExifTool/LigoGPS.pm +16 -2
- package/bin/lib/Image/ExifTool/MPF.pm +5 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +3 -3
- package/bin/lib/Image/ExifTool/Olympus.pm +6 -2
- package/bin/lib/Image/ExifTool/Panasonic.pm +9 -1
- package/bin/lib/Image/ExifTool/Parrot.pm +54 -7
- package/bin/lib/Image/ExifTool/Pentax.pm +151 -11
- package/bin/lib/Image/ExifTool/Plot.pm +36 -15
- package/bin/lib/Image/ExifTool/QuickTime.pm +73 -6
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +80 -14
- package/bin/lib/Image/ExifTool/README +12 -2
- package/bin/lib/Image/ExifTool/Sigma.pm +12 -4
- package/bin/lib/Image/ExifTool/Sony.pm +8 -3
- package/bin/lib/Image/ExifTool/TagLookup.pm +3745 -3729
- package/bin/lib/Image/ExifTool/TagNames.pod +147 -89
- package/bin/lib/Image/ExifTool/WriteExif.pl +2 -0
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +3 -0
- package/bin/lib/Image/ExifTool/Writer.pl +18 -7
- package/bin/lib/Image/ExifTool/XMP.pm +2 -2
- package/bin/lib/Image/ExifTool.pm +12 -7
- package/bin/lib/Image/ExifTool.pod +11 -11
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/windows_exiftool.txt +15 -9
- package/package.json +12 -9
|
@@ -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 28450 tags, with 17673 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
|
|
@@ -154,7 +154,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
|
|
|
154
154
|
InfiRaySensor InfiRay Sensor
|
|
155
155
|
SEAL XMP SEAL
|
|
156
156
|
'APP10' Comment no
|
|
157
|
-
|
|
157
|
+
HDRGainInfo -
|
|
158
158
|
'APP11' JPEG-HDR JPEG HDR
|
|
159
159
|
JUMBF Jpeg2000
|
|
160
160
|
'APP12' PictureInfo APP12 PictureInfo
|
|
@@ -171,6 +171,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
|
|
|
171
171
|
FotoStation FotoStation
|
|
172
172
|
PhotoMechanic PhotoMechanic
|
|
173
173
|
MIE MIE
|
|
174
|
+
MPF MPF
|
|
174
175
|
Samsung Samsung Trailer
|
|
175
176
|
Vivo Trailer Vivo
|
|
176
177
|
OnePlus Trailer OnePlus
|
|
@@ -277,6 +278,13 @@ Tags found in the XML metadata of the APP9 "Media Jukebox" segment.
|
|
|
277
278
|
Tool_Name no
|
|
278
279
|
Tool_Version no
|
|
279
280
|
|
|
281
|
+
=head3 JPEG HDRGainInfo Tags
|
|
282
|
+
|
|
283
|
+
Index1 Tag Name Writable
|
|
284
|
+
------ -------- --------
|
|
285
|
+
6 HDRGainCurveSize no
|
|
286
|
+
10 HDRGainCurve no
|
|
287
|
+
|
|
280
288
|
=head3 JPEG HDR Tags
|
|
281
289
|
|
|
282
290
|
Information extracted from APP11 of a JPEG-HDR image.
|
|
@@ -19903,6 +19911,7 @@ These tags are used in Panasonic/Leica cameras.
|
|
|
19903
19911
|
0x00d1 ISO int32u
|
|
19904
19912
|
0x00d2 MonochromeGrainEffect int16u
|
|
19905
19913
|
0x00d6 NoiseReductionStrength rational64s
|
|
19914
|
+
0x00de AFAreaSize rational64u[2]
|
|
19906
19915
|
0x00e4 LensTypeModel int16u
|
|
19907
19916
|
0x00e8 MinimumISO int32u
|
|
19908
19917
|
0x00e9 AFSubjectDetection int16u
|
|
@@ -20340,6 +20349,7 @@ These tags are used in Pentax/Asahi cameras.
|
|
|
20340
20349
|
0x0230 FirmwareVersion string
|
|
20341
20350
|
0x0231 ContrastDetectAFArea int16u[4]
|
|
20342
20351
|
0x0235 CrossProcessParams undef[10]
|
|
20352
|
+
0x0238 CAFPointInfo Pentax CAFPointInfo
|
|
20343
20353
|
0x0239 LensInfoQ Pentax LensInfoQ
|
|
20344
20354
|
0x023f Model string
|
|
20345
20355
|
0x0243 PixelShiftInfo Pentax PixelShiftInfo
|
|
@@ -20666,6 +20676,9 @@ Flash information tags for the K10D, K20D and K200D.
|
|
|
20666
20676
|
6 AFDefocus int8u
|
|
20667
20677
|
7 AFIntegrationTime int8u
|
|
20668
20678
|
11 AFPointsInFocus int8u
|
|
20679
|
+
20 AFPointValues? no
|
|
20680
|
+
298 AFPointsSelected int8u[41]~
|
|
20681
|
+
399 AFPointsUnknown? int8u[41]~
|
|
20669
20682
|
506 LiveView int8u
|
|
20670
20683
|
509 AFHold int8u
|
|
20671
20684
|
|
|
@@ -20861,6 +20874,17 @@ valid for other models.
|
|
|
20861
20874
|
83 WB_RGGBLevelsUnknown? int16u[4]
|
|
20862
20875
|
92 WB_RGGBLevelsUserSelected int16u[4]
|
|
20863
20876
|
|
|
20877
|
+
=head3 Pentax CAFPointInfo Tags
|
|
20878
|
+
|
|
20879
|
+
Contrast-detect AF-point information for the K-01 and later models.
|
|
20880
|
+
|
|
20881
|
+
Index1 Tag Name Writable
|
|
20882
|
+
------ -------- --------
|
|
20883
|
+
1 NumCAFPoints no
|
|
20884
|
+
1.1 CAFGridSize no
|
|
20885
|
+
2 CAFPointsInFocus no
|
|
20886
|
+
2.1 CAFPointsSelected no
|
|
20887
|
+
|
|
20864
20888
|
=head3 Pentax LensInfoQ Tags
|
|
20865
20889
|
|
|
20866
20890
|
More lens information stored by the Pentax Q.
|
|
@@ -20885,9 +20909,9 @@ AF point information written by the K-1.
|
|
|
20885
20909
|
Index1 Tag Name Writable
|
|
20886
20910
|
------ -------- --------
|
|
20887
20911
|
2 NumAFPoints int16u
|
|
20888
|
-
4 AFPointsInFocus
|
|
20889
|
-
4.1 AFPointsSelected
|
|
20890
|
-
4.2 AFPointsSpecial
|
|
20912
|
+
4 AFPointsInFocus no
|
|
20913
|
+
4.1 AFPointsSelected no
|
|
20914
|
+
4.2 AFPointsSpecial no
|
|
20891
20915
|
|
|
20892
20916
|
=head3 Pentax TempInfo Tags
|
|
20893
20917
|
|
|
@@ -20902,6 +20926,7 @@ sensors are located in the camera.
|
|
|
20902
20926
|
14 SensorTemperature2 int16s
|
|
20903
20927
|
20 CameraTemperature4 int16s
|
|
20904
20928
|
22 CameraTemperature5 int16s
|
|
20929
|
+
42 SensorTemperature int16s
|
|
20905
20930
|
|
|
20906
20931
|
=head3 Pentax UnknownInfo Tags
|
|
20907
20932
|
|
|
@@ -30310,6 +30335,7 @@ for the official QuickTime specification.
|
|
|
30310
30335
|
'gdat' GPSData QuickTime Stream
|
|
30311
30336
|
'gps0' GPSTrack QuickTime Stream
|
|
30312
30337
|
'gsen' GSensor QuickTime Stream
|
|
30338
|
+
'inst' Insta360Info QuickTime Stream
|
|
30313
30339
|
'junk' Junk? no
|
|
30314
30340
|
'mdat' MediaData? no
|
|
30315
30341
|
'mdat-offset' MediaDataOffset no
|
|
@@ -30318,7 +30344,7 @@ for the official QuickTime specification.
|
|
|
30318
30344
|
'meta' Meta QuickTime Meta
|
|
30319
30345
|
'moof' MovieFragment QuickTime MovieFragment
|
|
30320
30346
|
'moov' Movie QuickTime Movie
|
|
30321
|
-
'mpvd' MotionPhotoVideo
|
|
30347
|
+
'mpvd' MotionPhotoVideo undef
|
|
30322
30348
|
'nbmt' NextbaseMeta QuickTime Stream
|
|
30323
30349
|
'pict' PreviewPICT no
|
|
30324
30350
|
'pnot' Preview QuickTime Preview
|
|
@@ -30334,6 +30360,7 @@ for the official QuickTime specification.
|
|
|
30334
30360
|
'udat' GPSLog no
|
|
30335
30361
|
'udta' KenwoodData QuickTime Stream
|
|
30336
30362
|
LigoJSON QuickTime Stream
|
|
30363
|
+
GKUData QuickTime Stream
|
|
30337
30364
|
FLIRData FLIR UserData
|
|
30338
30365
|
'uuid' XMP XMP
|
|
30339
30366
|
UUID-PROF QuickTime Profile
|
|
@@ -30353,81 +30380,83 @@ for the official QuickTime specification.
|
|
|
30353
30380
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
30354
30381
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
30355
30382
|
most of these tags are combined into the single table below, ExifTool
|
|
30356
|
-
currently reads
|
|
30383
|
+
currently reads 107 different types of timed GPS metadata from video files.
|
|
30357
30384
|
|
|
30358
|
-
Tag Name
|
|
30359
|
-
--------
|
|
30360
|
-
Accelerometer
|
|
30361
|
-
AccelerometerData
|
|
30362
|
-
AngularVelocity
|
|
30363
|
-
CTMD
|
|
30364
|
-
CameraDateTime
|
|
30365
|
-
CameraModel
|
|
30366
|
-
Car
|
|
30367
|
-
|
|
30368
|
-
|
|
30369
|
-
|
|
30370
|
-
|
|
30371
|
-
|
|
30372
|
-
|
|
30373
|
-
|
|
30374
|
-
|
|
30375
|
-
|
|
30376
|
-
|
|
30377
|
-
|
|
30378
|
-
|
|
30379
|
-
|
|
30380
|
-
|
|
30381
|
-
|
|
30382
|
-
|
|
30383
|
-
|
|
30384
|
-
|
|
30385
|
-
|
|
30386
|
-
|
|
30387
|
-
|
|
30388
|
-
|
|
30389
|
-
|
|
30390
|
-
|
|
30391
|
-
|
|
30392
|
-
|
|
30393
|
-
|
|
30394
|
-
|
|
30395
|
-
|
|
30396
|
-
|
|
30397
|
-
|
|
30398
|
-
|
|
30399
|
-
|
|
30400
|
-
|
|
30401
|
-
|
|
30402
|
-
|
|
30403
|
-
|
|
30404
|
-
|
|
30405
|
-
|
|
30406
|
-
|
|
30407
|
-
|
|
30408
|
-
|
|
30409
|
-
|
|
30410
|
-
|
|
30411
|
-
|
|
30412
|
-
|
|
30413
|
-
|
|
30414
|
-
|
|
30415
|
-
|
|
30416
|
-
|
|
30417
|
-
|
|
30418
|
-
|
|
30419
|
-
|
|
30420
|
-
|
|
30421
|
-
|
|
30422
|
-
|
|
30423
|
-
|
|
30424
|
-
|
|
30425
|
-
|
|
30426
|
-
|
|
30427
|
-
|
|
30428
|
-
|
|
30429
|
-
|
|
30430
|
-
|
|
30385
|
+
Tag ID Tag Name Writable
|
|
30386
|
+
------ -------- --------
|
|
30387
|
+
'Accelerometer' Accelerometer no
|
|
30388
|
+
'AccelerometerData' AccelerometerData no
|
|
30389
|
+
'AngularVelocity' AngularVelocity no
|
|
30390
|
+
'CTMD' CTMD Canon CTMD
|
|
30391
|
+
'CameraDateTime' CameraDateTime no
|
|
30392
|
+
'CameraModel' CameraModel no
|
|
30393
|
+
'Car' Car no
|
|
30394
|
+
'DateTimeOriginal' DateTimeOriginal no
|
|
30395
|
+
'DateTimeStamp' DateTimeStamp no
|
|
30396
|
+
'Distance' Distance no
|
|
30397
|
+
'ExposureCompensation' ExposureCompensation no
|
|
30398
|
+
'ExposureTime' ExposureTime no
|
|
30399
|
+
'FNumber' FNumber no
|
|
30400
|
+
'FrameNumber' FrameNumber no
|
|
30401
|
+
'GPSAltitude' GPSAltitude no
|
|
30402
|
+
'GPSDOP' GPSDOP no
|
|
30403
|
+
'GPSDateTime' GPSDateTime no
|
|
30404
|
+
'GPSLatitude' GPSLatitude no
|
|
30405
|
+
'GPSLatitude2' GPSLatitude2 no
|
|
30406
|
+
'GPSLongitude' GPSLongitude no
|
|
30407
|
+
'GPSLongitude2' GPSLongitude2 no
|
|
30408
|
+
'GPSSatellites' GPSSatellites no
|
|
30409
|
+
'GPSSpeed' GPSSpeed no
|
|
30410
|
+
'GPSSpeedRef' GPSSpeedRef no
|
|
30411
|
+
'GPSTimeStamp' GPSTimeStamp no
|
|
30412
|
+
'GPSTrack' GPSTrack no
|
|
30413
|
+
'GPSTrackRef' GPSTrackRef no
|
|
30414
|
+
'GSensor' GSensor no
|
|
30415
|
+
'INSV' INSV QuickTime INSV_MakerNotes
|
|
30416
|
+
'ISO' ISO no
|
|
30417
|
+
'JPEG' JpgFromRaw no
|
|
30418
|
+
'KiloCalories' KiloCalories no
|
|
30419
|
+
'MagneticVariation' MagneticVariation no
|
|
30420
|
+
'RVMI' RVMI_gReV QuickTime RVMI_gReV
|
|
30421
|
+
RVMI_sReV QuickTime RVMI_sReV
|
|
30422
|
+
'RawGSensor' RawGSensor no
|
|
30423
|
+
'SampleDateTime' SampleDateTime no
|
|
30424
|
+
'SampleDuration' SampleDuration no
|
|
30425
|
+
'SampleTime' SampleTime no
|
|
30426
|
+
'Text' Text no
|
|
30427
|
+
'TimeCode' TimeCode no
|
|
30428
|
+
'Unknown00' Unknown00? no
|
|
30429
|
+
'Unknown01' Unknown01? no
|
|
30430
|
+
'Unknown02' Unknown02? no
|
|
30431
|
+
'Unknown03' Unknown03? no
|
|
30432
|
+
'UserLabel' UserLabel no
|
|
30433
|
+
'VerticalSpeed' VerticalSpeed no
|
|
30434
|
+
'VideoTimeStamp' VideoTimeStamp no
|
|
30435
|
+
'camm' camm0 QuickTime camm0
|
|
30436
|
+
camm1 QuickTime camm1
|
|
30437
|
+
camm2 QuickTime camm2
|
|
30438
|
+
camm3 QuickTime camm3
|
|
30439
|
+
camm4 QuickTime camm4
|
|
30440
|
+
camm5 QuickTime camm5
|
|
30441
|
+
camm6 QuickTime camm6
|
|
30442
|
+
camm7 QuickTime camm7
|
|
30443
|
+
'dbgi' DJIDebug? DJI Protobuf
|
|
30444
|
+
'djmd' DJIMetadata DJI Protobuf
|
|
30445
|
+
'fdsc' fdsc GoPro fdsc
|
|
30446
|
+
'gpmd' gpmd_Kingslim QuickTime Stream
|
|
30447
|
+
gpmd_Rove QuickTime Stream
|
|
30448
|
+
gpmd_FMAS QuickTime Stream
|
|
30449
|
+
gpmd_Wolfbox QuickTime Stream
|
|
30450
|
+
gpmd_GoPro GoPro GPMF
|
|
30451
|
+
'marl' marl GM marl
|
|
30452
|
+
'mebx' mebx QuickTime Keys
|
|
30453
|
+
'mett' mett Parrot mett
|
|
30454
|
+
'rtmd' rtmd Sony rtmd
|
|
30455
|
+
'ssmd' RoveGPS QuickTime RoveGPS
|
|
30456
|
+
Accelerometer no
|
|
30457
|
+
PreviewImage no
|
|
30458
|
+
'text' PreviewInfo QuickTime PreviewInfo
|
|
30459
|
+
'tx3g' tx3g QuickTime tx3g
|
|
30431
30460
|
|
|
30432
30461
|
=head3 QuickTime INSV_MakerNotes Tags
|
|
30433
30462
|
|
|
@@ -30438,14 +30467,6 @@ currently reads 103 different types of timed GPS metadata from video files.
|
|
|
30438
30467
|
0x001a Firmware no
|
|
30439
30468
|
0x002a Parameters no
|
|
30440
30469
|
|
|
30441
|
-
=head3 QuickTime PreviewInfo Tags
|
|
30442
|
-
|
|
30443
|
-
Preview stored by TomTom Bandit ActionCam.
|
|
30444
|
-
|
|
30445
|
-
Index1 Tag Name Writable
|
|
30446
|
-
------ -------- --------
|
|
30447
|
-
8 PreviewImage no
|
|
30448
|
-
|
|
30449
30470
|
=head3 QuickTime RVMI_gReV Tags
|
|
30450
30471
|
|
|
30451
30472
|
GPS information extracted from the RVMI box of MOV videos.
|
|
@@ -30670,6 +30691,23 @@ VideoKeys family 1 gorup.
|
|
|
30670
30691
|
------ -------- --------
|
|
30671
30692
|
'cits' FaceItem QuickTime Keys
|
|
30672
30693
|
|
|
30694
|
+
=head3 QuickTime RoveGPS Tags
|
|
30695
|
+
|
|
30696
|
+
Index1 Tag Name Writable
|
|
30697
|
+
------ -------- --------
|
|
30698
|
+
0 GPSLatitude no
|
|
30699
|
+
8 GPSLongitude no
|
|
30700
|
+
20 GPSSpeed no
|
|
30701
|
+
22 GPSDateTime no
|
|
30702
|
+
|
|
30703
|
+
=head3 QuickTime PreviewInfo Tags
|
|
30704
|
+
|
|
30705
|
+
Preview stored by TomTom Bandit ActionCam.
|
|
30706
|
+
|
|
30707
|
+
Index1 Tag Name Writable
|
|
30708
|
+
------ -------- --------
|
|
30709
|
+
8 PreviewImage no
|
|
30710
|
+
|
|
30673
30711
|
=head3 QuickTime tx3g Tags
|
|
30674
30712
|
|
|
30675
30713
|
Tags extracted from the tx3g sbtl timed metadata of Yuneec and Autel drones,
|
|
@@ -31629,6 +31667,7 @@ the config file.
|
|
|
31629
31667
|
'RMKN' RicohRMKN EXIF
|
|
31630
31668
|
'RTHU' PreviewImage no
|
|
31631
31669
|
'SDLN' PlayMode string
|
|
31670
|
+
'SIGM' PreviewImage no
|
|
31632
31671
|
'SNum' SerialNumber string/
|
|
31633
31672
|
'SelO' PlaySelection int8u
|
|
31634
31673
|
'TAGS' FujiFilmTags FujiFilm MOV
|
|
@@ -31692,6 +31731,7 @@ the config file.
|
|
|
31692
31731
|
'mcvr' PreviewImage string
|
|
31693
31732
|
'meta' Meta QuickTime Meta
|
|
31694
31733
|
'modl' Model no
|
|
31734
|
+
'nail' ThumbnailTIFF no
|
|
31695
31735
|
'name' Name string
|
|
31696
31736
|
'perf' Performer string/
|
|
31697
31737
|
'pmcc' GarminSettings string
|
|
@@ -32760,9 +32800,11 @@ specification.
|
|
|
32760
32800
|
'E2' ParrotFollowMe Parrot FollowMe
|
|
32761
32801
|
'E3' ParrotAutomation Parrot Automation
|
|
32762
32802
|
'application/arcore-accel' ARCoreAccel Parrot ARCoreAccel
|
|
32803
|
+
'application/arcore-accel-0' ARCoreAccel0 Parrot ARCoreAccel0
|
|
32763
32804
|
'application/arcore-custom-event'
|
|
32764
32805
|
ARCoreCustom Parrot ARCoreCustom
|
|
32765
32806
|
'application/arcore-gyro' ARCoreGyro Parrot ARCoreGyro
|
|
32807
|
+
'application/arcore-gyro-0' ARCoreGyro0 Parrot ARCoreGyro0
|
|
32766
32808
|
'application/arcore-video-0' ARCoreVideo Parrot ARCoreVideo
|
|
32767
32809
|
|
|
32768
32810
|
=head3 Parrot V1 Tags
|
|
@@ -32900,6 +32942,14 @@ ARCore accelerometer data.
|
|
|
32900
32942
|
4 AccelerometerUnknown? no
|
|
32901
32943
|
5 Accelerometer no
|
|
32902
32944
|
|
|
32945
|
+
=head3 Parrot ARCoreAccel0 Tags
|
|
32946
|
+
|
|
32947
|
+
ARCore accelerometer data.
|
|
32948
|
+
|
|
32949
|
+
Index1 Tag Name Writable
|
|
32950
|
+
------ -------- --------
|
|
32951
|
+
9 Accelerometer no
|
|
32952
|
+
|
|
32903
32953
|
=head3 Parrot ARCoreCustom Tags
|
|
32904
32954
|
|
|
32905
32955
|
Index1 Tag Name Writable
|
|
@@ -32908,13 +32958,21 @@ ARCore accelerometer data.
|
|
|
32908
32958
|
|
|
32909
32959
|
=head3 Parrot ARCoreGyro Tags
|
|
32910
32960
|
|
|
32911
|
-
ARCore
|
|
32961
|
+
ARCore gyro data.
|
|
32912
32962
|
|
|
32913
32963
|
Index1 Tag Name Writable
|
|
32914
32964
|
------ -------- --------
|
|
32915
32965
|
4 GyroscopeUnknown? no
|
|
32916
32966
|
5 Gyroscope no
|
|
32917
32967
|
|
|
32968
|
+
=head3 Parrot ARCoreGyro0 Tags
|
|
32969
|
+
|
|
32970
|
+
ARCore gyro data.
|
|
32971
|
+
|
|
32972
|
+
Index1 Tag Name Writable
|
|
32973
|
+
------ -------- --------
|
|
32974
|
+
9 Gyroscope no
|
|
32975
|
+
|
|
32918
32976
|
=head3 Parrot ARCoreVideo Tags
|
|
32919
32977
|
|
|
32920
32978
|
Index1 Tag Name Writable
|
|
@@ -2434,6 +2434,8 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2434
2434
|
} else {
|
|
2435
2435
|
my $fixedOffset = Get32u(\$newData, $offsets);
|
|
2436
2436
|
my $padToFixedOffset = $fixedOffset - ($newOffset + $dpos);
|
|
2437
|
+
# account for blocks that come before this (Pansonic DC-S1RM2, forum17319)
|
|
2438
|
+
$padToFixedOffset -= $$_[1] + $$_[2] foreach @imageData;
|
|
2437
2439
|
if ($padToFixedOffset < 0) {
|
|
2438
2440
|
$et->Error('Metadata too large to fit before fixed-offset image data');
|
|
2439
2441
|
} else {
|
|
@@ -1248,6 +1248,8 @@ ItemID2: foreach $id (reverse sort { $a <=> $b } keys %$items) {
|
|
|
1248
1248
|
my $base = ($$dirInfo{Base} || 0) + $raf->Tell() - $size;
|
|
1249
1249
|
my $dPos = 0;
|
|
1250
1250
|
my $hdrLen = $start;
|
|
1251
|
+
# handle case where known trailer is the payload of a "DontRead" box (eg. 'inst')
|
|
1252
|
+
$trailer = $$trailer[3] if $$tagInfo{DontRead} and $trailer and $base == $$trailer[1];
|
|
1251
1253
|
if ($$subdir{Base}) {
|
|
1252
1254
|
my $localBase = eval $$subdir{Base};
|
|
1253
1255
|
$dPos -= $localBase;
|
|
@@ -1729,6 +1731,7 @@ ItemID2: foreach $id (reverse sort { $a <=> $b } keys %$items) {
|
|
|
1729
1731
|
# (note that $tag may be a binary Keys index here)
|
|
1730
1732
|
foreach $tag (@addTags) {
|
|
1731
1733
|
my $tagInfo = $$dirs{$tag} || $$newTags{$tag};
|
|
1734
|
+
next unless ref $tagInfo eq 'HASH'; # (shouldn't happen, but somehow there is forum17260)
|
|
1732
1735
|
next if defined $$tagInfo{CanCreate} and not $$tagInfo{CanCreate};
|
|
1733
1736
|
next if defined $$tagInfo{MediaType} and $$et{MediaType} ne $$tagInfo{MediaType};
|
|
1734
1737
|
my $subdir = $$tagInfo{SubDirectory};
|
|
@@ -76,6 +76,8 @@ my %jpegMap = (
|
|
|
76
76
|
MetaIFD => 'Meta',
|
|
77
77
|
RMETA => 'APP5',
|
|
78
78
|
SEAL => ['APP8','APP9'], # (note: add 'IFD0' if this is a possibility)
|
|
79
|
+
AROT => 'APP10',
|
|
80
|
+
JUMBF => 'APP11',
|
|
79
81
|
Ducky => 'APP12',
|
|
80
82
|
Photoshop => 'APP13',
|
|
81
83
|
Adobe => 'APP14',
|
|
@@ -138,12 +140,12 @@ my %rawType = (
|
|
|
138
140
|
# 2) any dependencies must be added to %excludeGroups
|
|
139
141
|
my @delGroups = qw(
|
|
140
142
|
Adobe AFCP APP0 APP1 APP2 APP3 APP4 APP5 APP6 APP7 APP8 APP9 APP10 APP11 APP12
|
|
141
|
-
APP13 APP14 APP15 AudioKeys CanonVRD CIFF Ducky EXIF ExifIFD File FlashPix
|
|
143
|
+
APP13 APP14 APP15 AROT AudioKeys CanonVRD CIFF Ducky EXIF ExifIFD File FlashPix
|
|
142
144
|
FotoStation GlobParamIFD GPS ICC_Profile IFD0 IFD1 Insta360 InteropIFD IPTC
|
|
143
|
-
ItemList iTunes JFIF Jpeg2000 JUMBF Keys MakerNotes Meta MetaIFD Microsoft
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
ItemList iTunes JFIF Jpeg2000 JUMBF Keys MakerNotes Meta MetaIFD Microsoft MIE
|
|
146
|
+
MPF Nextbase NikonApp NikonCapture PDF PDF-update PhotoMechanic Photoshop PNG
|
|
147
|
+
PNG-pHYs PrintIM QuickTime RMETA RSRC SEAL SubIFD Trailer UserData VideoKeys
|
|
148
|
+
Vivo XML XML-* XMP XMP-*
|
|
147
149
|
);
|
|
148
150
|
# family 2 group names that we can delete
|
|
149
151
|
my @delGroup2 = qw(
|
|
@@ -1604,6 +1606,8 @@ SET: foreach $set (@setList) {
|
|
|
1604
1606
|
$$opts{Group} = $dstGrp if $dstGrp;
|
|
1605
1607
|
my @rtnVals = $self->SetNewValue($dstTag, $val, %$opts);
|
|
1606
1608
|
$rtnInfo{$dstTag} = $val if $rtnVals[0]; # tag was set successfully
|
|
1609
|
+
# return warning if any
|
|
1610
|
+
$rtnInfo{NextFreeTagKey(\%rtnInfo, 'Warning')} = $rtnVals[1] if $rtnVals[1];
|
|
1607
1611
|
next;
|
|
1608
1612
|
}
|
|
1609
1613
|
foreach $tag (@{$setMatches{$set}}) {
|
|
@@ -3406,7 +3410,7 @@ sub InsertTagValues($$;$$$$)
|
|
|
3406
3410
|
my $msg = $didExpr ? "Advanced formatting expression returned undef for '$g3${var}'" :
|
|
3407
3411
|
"Tag '$g3${var}' not defined";
|
|
3408
3412
|
if (ref $opt) {
|
|
3409
|
-
$
|
|
3413
|
+
$val = '' if $$self{OPTIONS}{IgnoreMinorErrors};
|
|
3410
3414
|
} elsif ($opt) {
|
|
3411
3415
|
no strict 'refs';
|
|
3412
3416
|
($opt eq 'Silent' or &$opt($self, $msg, 2)) and return $$self{FMT_EXPR} = undef;
|
|
@@ -5736,6 +5740,8 @@ sub WriteJPEG($$)
|
|
|
5736
5740
|
$s =~ /^(Meta|META|Exif)\0\0/ and $dirName = 'Meta';
|
|
5737
5741
|
} elsif ($marker == 0xe5) {
|
|
5738
5742
|
$s =~ /^RMETA\0/ and $dirName = 'RMETA';
|
|
5743
|
+
} elsif ($marker == 0xea) {
|
|
5744
|
+
$s =~ /^AROT\0\0/ and $dirName = 'AROT';
|
|
5739
5745
|
} elsif ($marker == 0xeb) {
|
|
5740
5746
|
$s =~ /^JP/ and $dirName = 'JUMBF';
|
|
5741
5747
|
} elsif ($marker == 0xec) {
|
|
@@ -6644,7 +6650,12 @@ sub WriteJPEG($$)
|
|
|
6644
6650
|
$segType = 'SEAL';
|
|
6645
6651
|
$$delGroup{SEAL} and $del = 1;
|
|
6646
6652
|
}
|
|
6647
|
-
} elsif ($marker ==
|
|
6653
|
+
} elsif ($marker == 0xea) { # APP10 (AROT)
|
|
6654
|
+
if ($$segDataPt =~ /^AROT\0\0/) {
|
|
6655
|
+
$segType = 'AROT';
|
|
6656
|
+
$$delGroup{AROT} and $del = 1;
|
|
6657
|
+
}
|
|
6658
|
+
} elsif ($marker == 0xeb) { # APP11 (JUMBF)
|
|
6648
6659
|
if ($$segDataPt =~ /^JP/) {
|
|
6649
6660
|
$segType = 'JUMBF';
|
|
6650
6661
|
$$delGroup{JUMBF} and $del = 1;
|
|
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
|
|
|
50
50
|
use Image::ExifTool::GPS;
|
|
51
51
|
require Exporter;
|
|
52
52
|
|
|
53
|
-
$VERSION = '3.
|
|
53
|
+
$VERSION = '3.74';
|
|
54
54
|
@ISA = qw(Exporter);
|
|
55
55
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
|
56
56
|
|
|
@@ -3830,7 +3830,7 @@ sub ParseXMPElement($$$;$$$$)
|
|
|
3830
3830
|
for (;;) {
|
|
3831
3831
|
my ($attr, $quote);
|
|
3832
3832
|
if (length($attrs) < 2000) { # (do it the easy way if attributes aren't stupid long)
|
|
3833
|
-
last unless $attrs =~ /(\S
|
|
3833
|
+
last unless $attrs =~ /(\S+?)\s*=\s*(['"])/g;
|
|
3834
3834
|
($attr, $quote) = ($1, $2);
|
|
3835
3835
|
} else {
|
|
3836
3836
|
# 13.23 patch to avoid capturing tons of garbage if XMP is corrupted
|
|
@@ -27,9 +27,9 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
27
27
|
%noWriteFile %magicNumber @langs $defaultLang %langName %charsetName
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
|
-
%static_vars $advFmtSelf);
|
|
30
|
+
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.30';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -9213,10 +9213,14 @@ sub HandleTag($$$$;%)
|
|
|
9213
9213
|
if ($start >= 0 and $start + $size <= $dLen) {
|
|
9214
9214
|
$format = $$tagInfo{Format} || $$tagTablePtr{FORMAT};
|
|
9215
9215
|
$format = $pfmt if not $format and $pfmt and $formatSize{$pfmt};
|
|
9216
|
-
if ($format) {
|
|
9216
|
+
if (not $format) {
|
|
9217
|
+
$val = substr($$dataPt, $start, $size);
|
|
9218
|
+
} elsif (not $$tagInfo{ByteOrder}) {
|
|
9217
9219
|
$val = ReadValue($dataPt, $start, $format, $$tagInfo{Count}, $size, \$rational);
|
|
9218
9220
|
} else {
|
|
9219
|
-
$
|
|
9221
|
+
my $oldOrder = GetByteOrder(), SetByteOrder($$tagInfo{ByteOrder});
|
|
9222
|
+
$val = ReadValue($dataPt, $start, $format, $$tagInfo{Count}, $size, \$rational);
|
|
9223
|
+
SetByteOrder($oldOrder);
|
|
9220
9224
|
}
|
|
9221
9225
|
$binVal = substr($$dataPt, $start, $size) if $$self{OPTIONS}{SaveBin};
|
|
9222
9226
|
} else {
|
|
@@ -10043,8 +10047,9 @@ sub ProcessBinaryData($$$)
|
|
|
10043
10047
|
#..............................................................................
|
|
10044
10048
|
# Load .ExifTool_config file from user's home directory
|
|
10045
10049
|
# (use of noConfig is now deprecated, use configFile = '' instead)
|
|
10046
|
-
|
|
10047
|
-
|
|
10050
|
+
push @configFiles, $configFile if defined $configFile;
|
|
10051
|
+
until ($noConfig) {
|
|
10052
|
+
my $config = shift @configFiles;
|
|
10048
10053
|
my $file;
|
|
10049
10054
|
if (not defined $config) {
|
|
10050
10055
|
$config = '.ExifTool_config';
|
|
@@ -10069,7 +10074,7 @@ until ($Image::ExifTool::noConfig) {
|
|
|
10069
10074
|
shift @INC;
|
|
10070
10075
|
# print warning (minus "Compilation failed" part)
|
|
10071
10076
|
$@ and $_=$@, s/Compilation failed.*//s, warn $_;
|
|
10072
|
-
last;
|
|
10077
|
+
last unless @configFiles;
|
|
10073
10078
|
}
|
|
10074
10079
|
# read user-defined lenses (may have been defined by script instead of config file)
|
|
10075
10080
|
if (@Image::ExifTool::UserDefined::Lenses) {
|
|
@@ -2547,17 +2547,17 @@ Here is a complete list of groups for each of these families:
|
|
|
2547
2547
|
|
|
2548
2548
|
=item Family 0 (Information Type):
|
|
2549
2549
|
|
|
2550
|
-
AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15,
|
|
2551
|
-
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon,
|
|
2552
|
-
Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File,
|
|
2553
|
-
FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP,
|
|
2554
|
-
GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,
|
|
2555
|
-
JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta,
|
|
2556
|
-
MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm,
|
|
2557
|
-
Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST,
|
|
2558
|
-
PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor,
|
|
2559
|
-
Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent,
|
|
2560
|
-
VCard, Vorbis, WTV, XML, XMP, ZIP
|
|
2550
|
+
AAC, AFCP, AIFF, APE, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15,
|
|
2551
|
+
APP2, APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon,
|
|
2552
|
+
CanonVRD, Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File,
|
|
2553
|
+
FITS, FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP,
|
|
2554
|
+
GM, GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,
|
|
2555
|
+
Jpeg2000, JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta,
|
|
2556
|
+
MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm,
|
|
2557
|
+
PanasonicRaw, Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST,
|
|
2558
|
+
PNG, PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor,
|
|
2559
|
+
Real, Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent,
|
|
2560
|
+
Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP
|
|
2561
2561
|
|
|
2562
2562
|
=item Family 1 (Specific Location):
|
|
2563
2563
|
|
package/bin/windows_exiftool.txt
CHANGED
|
@@ -1079,7 +1079,7 @@ OPTIONS
|
|
|
1079
1079
|
|
|
1080
1080
|
produces output like this:
|
|
1081
1081
|
|
|
1082
|
-
-- Generated by ExifTool 13.
|
|
1082
|
+
-- Generated by ExifTool 13.30 --
|
|
1083
1083
|
File: a.jpg - 2003:10:31 15:44:19
|
|
1084
1084
|
(f/5.6, 1/60s, ISO 100)
|
|
1085
1085
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -1583,9 +1583,10 @@ OPTIONS
|
|
|
1583
1583
|
ignored. Use multiple -i options to ignore more than one directory
|
|
1584
1584
|
name. A special *DIR* value of "SYMLINKS" may be specified to avoid
|
|
1585
1585
|
recursing into directories which are symbolic links when the -r
|
|
1586
|
-
option is used
|
|
1587
|
-
|
|
1588
|
-
|
|
1586
|
+
option is used (note this does not currently work under Windows).
|
|
1587
|
+
As well, a value of "HIDDEN" may be used to ignore files with names
|
|
1588
|
+
that start with a "." (ie. hidden files on Unix systems) when
|
|
1589
|
+
scanning a directory.
|
|
1589
1590
|
|
|
1590
1591
|
-if[*NUM*] *EXPR*
|
|
1591
1592
|
Specify a condition to be evaluated before processing each *FILE*.
|
|
@@ -1955,13 +1956,15 @@ OPTIONS
|
|
|
1955
1956
|
-geotag option is equivalent to writing a value to the "Geotag"
|
|
1956
1957
|
tag. The GPS position is interpolated from the track at a time
|
|
1957
1958
|
specified by the value written to the "Geotime" tag. If "Geotime"
|
|
1958
|
-
is not specified, the value is copied from
|
|
1959
|
-
"#"
|
|
1960
|
-
|
|
1961
|
-
|
|
1959
|
+
is not specified, the value is copied from
|
|
1960
|
+
"SubSecDateTimeOriginal#" if it exists, otherwise
|
|
1961
|
+
"DateTimeOriginal#" (the "#" is added to copy the unformatted
|
|
1962
|
+
value, avoiding potential conflicts with the -d option). For
|
|
1963
|
+
example, the following two commands are equivalent if
|
|
1964
|
+
SubSecDateTimeOriginal exists in the file:
|
|
1962
1965
|
|
|
1963
1966
|
exiftool -geotag trk.log image.jpg
|
|
1964
|
-
exiftool -geotag trk.log "-Geotime<
|
|
1967
|
+
exiftool -geotag trk.log "-Geotime<SubSecDateTimeOriginal#" image.jpg
|
|
1965
1968
|
|
|
1966
1969
|
If the "Geotime" value does not contain a time zone then the local
|
|
1967
1970
|
system timezone is assumed. Writing "Geotime" causes the following
|
|
@@ -2160,6 +2163,9 @@ OPTIONS
|
|
|
2160
2163
|
User-defined Composite tags may access tags from alternate files
|
|
2161
2164
|
using the appropriate (case-sensitive) family 8 group name.
|
|
2162
2165
|
|
|
2166
|
+
The -fast option, if used, also applies to processing of the
|
|
2167
|
+
alternate files.
|
|
2168
|
+
|
|
2163
2169
|
-list_dir
|
|
2164
2170
|
List directories themselves instead of their contents. This option
|
|
2165
2171
|
effectively causes directories to be treated as normal files when
|