exiftool-vendored.pl 13.25.1 → 13.29.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 +10 -2
- package/bin/Changes +56 -3
- package/bin/META.json +3 -2
- package/bin/META.yml +3 -2
- package/bin/README +3 -3
- package/bin/arg_files/exif2xmp.args +2 -1
- package/bin/arg_files/xmp2exif.args +2 -1
- package/bin/build_geolocation +1 -1
- package/bin/exiftool +17 -15
- package/bin/lib/Image/ExifTool/Canon.pm +5 -4
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -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/Nikon.pm +2 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +3 -2
- package/bin/lib/Image/ExifTool/PCAP.pm +5 -5
- 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 +102 -1
- package/bin/lib/Image/ExifTool/Plot.pm +36 -15
- package/bin/lib/Image/ExifTool/QuickTime.pm +78 -12
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +70 -14
- package/bin/lib/Image/ExifTool/README +12 -2
- package/bin/lib/Image/ExifTool/RIFF.pm +15 -6
- package/bin/lib/Image/ExifTool/Sony.pm +5 -0
- package/bin/lib/Image/ExifTool/TagLookup.pm +23 -2
- package/bin/lib/Image/ExifTool/TagNames.pod +149 -92
- 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 +17 -6
- package/bin/lib/Image/ExifTool/XMP.pm +23 -16
- package/bin/lib/Image/ExifTool/XMP2.pl +5 -1
- package/bin/lib/Image/ExifTool.pm +7 -3
- package/bin/lib/Image/ExifTool.pod +13 -12
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/windows_exiftool.txt +6 -5
- 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 28445 tags, with 17669 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.
|
|
@@ -6366,7 +6374,9 @@ These tags belong to the ExifTool XMP-xmpBJ family 1 group.
|
|
|
6366
6374
|
|
|
6367
6375
|
=head3 XMP xmpDM Tags
|
|
6368
6376
|
|
|
6369
|
-
XMP Dynamic Media namespace tags.
|
|
6377
|
+
XMP Dynamic Media namespace tags. See
|
|
6378
|
+
L<https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpDM/> for the
|
|
6379
|
+
specification.
|
|
6370
6380
|
|
|
6371
6381
|
These tags belong to the ExifTool XMP-xmpDM family 1 group.
|
|
6372
6382
|
|
|
@@ -19901,6 +19911,7 @@ These tags are used in Panasonic/Leica cameras.
|
|
|
19901
19911
|
0x00d1 ISO int32u
|
|
19902
19912
|
0x00d2 MonochromeGrainEffect int16u
|
|
19903
19913
|
0x00d6 NoiseReductionStrength rational64s
|
|
19914
|
+
0x00de AFAreaSize rational64u[2]
|
|
19904
19915
|
0x00e4 LensTypeModel int16u
|
|
19905
19916
|
0x00e8 MinimumISO int32u
|
|
19906
19917
|
0x00e9 AFSubjectDetection int16u
|
|
@@ -20664,6 +20675,9 @@ Flash information tags for the K10D, K20D and K200D.
|
|
|
20664
20675
|
6 AFDefocus int8u
|
|
20665
20676
|
7 AFIntegrationTime int8u
|
|
20666
20677
|
11 AFPointsInFocus int8u
|
|
20678
|
+
20 AFPointValues? no
|
|
20679
|
+
298 AFPointsSelected int8u[41]~
|
|
20680
|
+
399 AFPointsUnknown? int8u[41]~
|
|
20667
20681
|
506 LiveView int8u
|
|
20668
20682
|
509 AFHold int8u
|
|
20669
20683
|
|
|
@@ -20900,6 +20914,7 @@ sensors are located in the camera.
|
|
|
20900
20914
|
14 SensorTemperature2 int16s
|
|
20901
20915
|
20 CameraTemperature4 int16s
|
|
20902
20916
|
22 CameraTemperature5 int16s
|
|
20917
|
+
42 SensorTemperature int16s
|
|
20903
20918
|
|
|
20904
20919
|
=head3 Pentax UnknownInfo Tags
|
|
20905
20920
|
|
|
@@ -30308,6 +30323,7 @@ for the official QuickTime specification.
|
|
|
30308
30323
|
'gdat' GPSData QuickTime Stream
|
|
30309
30324
|
'gps0' GPSTrack QuickTime Stream
|
|
30310
30325
|
'gsen' GSensor QuickTime Stream
|
|
30326
|
+
'inst' Insta360Info QuickTime Stream
|
|
30311
30327
|
'junk' Junk? no
|
|
30312
30328
|
'mdat' MediaData? no
|
|
30313
30329
|
'mdat-offset' MediaDataOffset no
|
|
@@ -30316,7 +30332,7 @@ for the official QuickTime specification.
|
|
|
30316
30332
|
'meta' Meta QuickTime Meta
|
|
30317
30333
|
'moof' MovieFragment QuickTime MovieFragment
|
|
30318
30334
|
'moov' Movie QuickTime Movie
|
|
30319
|
-
'mpvd' MotionPhotoVideo
|
|
30335
|
+
'mpvd' MotionPhotoVideo undef
|
|
30320
30336
|
'nbmt' NextbaseMeta QuickTime Stream
|
|
30321
30337
|
'pict' PreviewPICT no
|
|
30322
30338
|
'pnot' Preview QuickTime Preview
|
|
@@ -30332,6 +30348,7 @@ for the official QuickTime specification.
|
|
|
30332
30348
|
'udat' GPSLog no
|
|
30333
30349
|
'udta' KenwoodData QuickTime Stream
|
|
30334
30350
|
LigoJSON QuickTime Stream
|
|
30351
|
+
GKUData QuickTime Stream
|
|
30335
30352
|
FLIRData FLIR UserData
|
|
30336
30353
|
'uuid' XMP XMP
|
|
30337
30354
|
UUID-PROF QuickTime Profile
|
|
@@ -30351,81 +30368,83 @@ for the official QuickTime specification.
|
|
|
30351
30368
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
30352
30369
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
30353
30370
|
most of these tags are combined into the single table below, ExifTool
|
|
30354
|
-
currently reads
|
|
30371
|
+
currently reads 107 different types of timed GPS metadata from video files.
|
|
30355
30372
|
|
|
30356
|
-
Tag Name
|
|
30357
|
-
--------
|
|
30358
|
-
Accelerometer
|
|
30359
|
-
AccelerometerData
|
|
30360
|
-
AngularVelocity
|
|
30361
|
-
CTMD
|
|
30362
|
-
CameraDateTime
|
|
30363
|
-
CameraModel
|
|
30364
|
-
Car
|
|
30365
|
-
|
|
30366
|
-
|
|
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
|
-
|
|
30373
|
+
Tag ID Tag Name Writable
|
|
30374
|
+
------ -------- --------
|
|
30375
|
+
'Accelerometer' Accelerometer no
|
|
30376
|
+
'AccelerometerData' AccelerometerData no
|
|
30377
|
+
'AngularVelocity' AngularVelocity no
|
|
30378
|
+
'CTMD' CTMD Canon CTMD
|
|
30379
|
+
'CameraDateTime' CameraDateTime no
|
|
30380
|
+
'CameraModel' CameraModel no
|
|
30381
|
+
'Car' Car no
|
|
30382
|
+
'DateTimeOriginal' DateTimeOriginal no
|
|
30383
|
+
'DateTimeStamp' DateTimeStamp no
|
|
30384
|
+
'Distance' Distance no
|
|
30385
|
+
'ExposureCompensation' ExposureCompensation no
|
|
30386
|
+
'ExposureTime' ExposureTime no
|
|
30387
|
+
'FNumber' FNumber no
|
|
30388
|
+
'FrameNumber' FrameNumber no
|
|
30389
|
+
'GPSAltitude' GPSAltitude no
|
|
30390
|
+
'GPSDOP' GPSDOP no
|
|
30391
|
+
'GPSDateTime' GPSDateTime no
|
|
30392
|
+
'GPSLatitude' GPSLatitude no
|
|
30393
|
+
'GPSLatitude2' GPSLatitude2 no
|
|
30394
|
+
'GPSLongitude' GPSLongitude no
|
|
30395
|
+
'GPSLongitude2' GPSLongitude2 no
|
|
30396
|
+
'GPSSatellites' GPSSatellites no
|
|
30397
|
+
'GPSSpeed' GPSSpeed no
|
|
30398
|
+
'GPSSpeedRef' GPSSpeedRef no
|
|
30399
|
+
'GPSTimeStamp' GPSTimeStamp no
|
|
30400
|
+
'GPSTrack' GPSTrack no
|
|
30401
|
+
'GPSTrackRef' GPSTrackRef no
|
|
30402
|
+
'GSensor' GSensor no
|
|
30403
|
+
'INSV' INSV QuickTime INSV_MakerNotes
|
|
30404
|
+
'ISO' ISO no
|
|
30405
|
+
'JPEG' JpgFromRaw no
|
|
30406
|
+
'KiloCalories' KiloCalories no
|
|
30407
|
+
'MagneticVariation' MagneticVariation no
|
|
30408
|
+
'RVMI' RVMI_gReV QuickTime RVMI_gReV
|
|
30409
|
+
RVMI_sReV QuickTime RVMI_sReV
|
|
30410
|
+
'RawGSensor' RawGSensor no
|
|
30411
|
+
'SampleDateTime' SampleDateTime no
|
|
30412
|
+
'SampleDuration' SampleDuration no
|
|
30413
|
+
'SampleTime' SampleTime no
|
|
30414
|
+
'Text' Text no
|
|
30415
|
+
'TimeCode' TimeCode no
|
|
30416
|
+
'Unknown00' Unknown00? no
|
|
30417
|
+
'Unknown01' Unknown01? no
|
|
30418
|
+
'Unknown02' Unknown02? no
|
|
30419
|
+
'Unknown03' Unknown03? no
|
|
30420
|
+
'UserLabel' UserLabel no
|
|
30421
|
+
'VerticalSpeed' VerticalSpeed no
|
|
30422
|
+
'VideoTimeStamp' VideoTimeStamp no
|
|
30423
|
+
'camm' camm0 QuickTime camm0
|
|
30424
|
+
camm1 QuickTime camm1
|
|
30425
|
+
camm2 QuickTime camm2
|
|
30426
|
+
camm3 QuickTime camm3
|
|
30427
|
+
camm4 QuickTime camm4
|
|
30428
|
+
camm5 QuickTime camm5
|
|
30429
|
+
camm6 QuickTime camm6
|
|
30430
|
+
camm7 QuickTime camm7
|
|
30431
|
+
'dbgi' DJIDebug? DJI Protobuf
|
|
30432
|
+
'djmd' DJIMetadata DJI Protobuf
|
|
30433
|
+
'fdsc' fdsc GoPro fdsc
|
|
30434
|
+
'gpmd' gpmd_Kingslim QuickTime Stream
|
|
30435
|
+
gpmd_Rove QuickTime Stream
|
|
30436
|
+
gpmd_FMAS QuickTime Stream
|
|
30437
|
+
gpmd_Wolfbox QuickTime Stream
|
|
30438
|
+
gpmd_GoPro GoPro GPMF
|
|
30439
|
+
'marl' marl GM marl
|
|
30440
|
+
'mebx' mebx QuickTime Keys
|
|
30441
|
+
'mett' mett Parrot mett
|
|
30442
|
+
'rtmd' rtmd Sony rtmd
|
|
30443
|
+
'ssmd' RoveGPS QuickTime RoveGPS
|
|
30444
|
+
Accelerometer no
|
|
30445
|
+
PreviewImage no
|
|
30446
|
+
'text' PreviewInfo QuickTime PreviewInfo
|
|
30447
|
+
'tx3g' tx3g QuickTime tx3g
|
|
30429
30448
|
|
|
30430
30449
|
=head3 QuickTime INSV_MakerNotes Tags
|
|
30431
30450
|
|
|
@@ -30436,14 +30455,6 @@ currently reads 103 different types of timed GPS metadata from video files.
|
|
|
30436
30455
|
0x001a Firmware no
|
|
30437
30456
|
0x002a Parameters no
|
|
30438
30457
|
|
|
30439
|
-
=head3 QuickTime PreviewInfo Tags
|
|
30440
|
-
|
|
30441
|
-
Preview stored by TomTom Bandit ActionCam.
|
|
30442
|
-
|
|
30443
|
-
Index1 Tag Name Writable
|
|
30444
|
-
------ -------- --------
|
|
30445
|
-
8 PreviewImage no
|
|
30446
|
-
|
|
30447
30458
|
=head3 QuickTime RVMI_gReV Tags
|
|
30448
30459
|
|
|
30449
30460
|
GPS information extracted from the RVMI box of MOV videos.
|
|
@@ -30668,6 +30679,23 @@ VideoKeys family 1 gorup.
|
|
|
30668
30679
|
------ -------- --------
|
|
30669
30680
|
'cits' FaceItem QuickTime Keys
|
|
30670
30681
|
|
|
30682
|
+
=head3 QuickTime RoveGPS Tags
|
|
30683
|
+
|
|
30684
|
+
Index1 Tag Name Writable
|
|
30685
|
+
------ -------- --------
|
|
30686
|
+
0 GPSLatitude no
|
|
30687
|
+
8 GPSLongitude no
|
|
30688
|
+
20 GPSSpeed no
|
|
30689
|
+
22 GPSDateTime no
|
|
30690
|
+
|
|
30691
|
+
=head3 QuickTime PreviewInfo Tags
|
|
30692
|
+
|
|
30693
|
+
Preview stored by TomTom Bandit ActionCam.
|
|
30694
|
+
|
|
30695
|
+
Index1 Tag Name Writable
|
|
30696
|
+
------ -------- --------
|
|
30697
|
+
8 PreviewImage no
|
|
30698
|
+
|
|
30671
30699
|
=head3 QuickTime tx3g Tags
|
|
30672
30700
|
|
|
30673
30701
|
Tags extracted from the tx3g sbtl timed metadata of Yuneec and Autel drones,
|
|
@@ -31157,6 +31185,7 @@ MP4 media box.
|
|
|
31157
31185
|
|
|
31158
31186
|
Tag ID Tag Name Writable
|
|
31159
31187
|
------ -------- --------
|
|
31188
|
+
'elng' ExtendedLanguageTag no
|
|
31160
31189
|
'hdlr' Handler QuickTime Handler
|
|
31161
31190
|
'mdhd' MediaHeader QuickTime MediaHeader
|
|
31162
31191
|
'minf' MediaInfo QuickTime MediaInfo
|
|
@@ -31556,8 +31585,15 @@ MP4 video media header.
|
|
|
31556
31585
|
------ -------- --------
|
|
31557
31586
|
'cdsc' ContentDescribes no
|
|
31558
31587
|
'chap' ChapterListTrackID no
|
|
31588
|
+
'clcp' ClosedCaptionTrack no
|
|
31589
|
+
'fall' AlternateFormatTrack no
|
|
31590
|
+
'folw' SubtitleTrack no
|
|
31591
|
+
'forc' ForcedSubtitleTrack no
|
|
31559
31592
|
'mpod' ElementaryStreamTrack no
|
|
31560
|
-
'
|
|
31593
|
+
'scpt' TranscriptTrack no
|
|
31594
|
+
'ssrc' Non-primarySourceTrack no
|
|
31595
|
+
'sync' SyncronizedTrack no
|
|
31596
|
+
'tmcd' TimecodeTrack no
|
|
31561
31597
|
|
|
31562
31598
|
=head3 QuickTime UserData Tags
|
|
31563
31599
|
|
|
@@ -31682,6 +31718,7 @@ the config file.
|
|
|
31682
31718
|
'mcvr' PreviewImage string
|
|
31683
31719
|
'meta' Meta QuickTime Meta
|
|
31684
31720
|
'modl' Model no
|
|
31721
|
+
'nail' ThumbnailTIFF no
|
|
31685
31722
|
'name' Name string
|
|
31686
31723
|
'perf' Performer string/
|
|
31687
31724
|
'pmcc' GarminSettings string
|
|
@@ -31705,6 +31742,7 @@ the config file.
|
|
|
31705
31742
|
UnknownThumbnail string
|
|
31706
31743
|
'time' TimeStamp no
|
|
31707
31744
|
'titl' Title string/
|
|
31745
|
+
'tnam' TrackName string
|
|
31708
31746
|
'urat' UserRating undef/
|
|
31709
31747
|
'uuid' GarminSoftware string
|
|
31710
31748
|
GarminModel no
|
|
@@ -32120,6 +32158,7 @@ metadata to WEBP images, but can't yet write to other RIFF-based formats.
|
|
|
32120
32158
|
'EXIF' EXIF EXIF
|
|
32121
32159
|
UnknownEXIF no
|
|
32122
32160
|
'ICCP' ICC_Profile ICC_Profile
|
|
32161
|
+
'ID3 ' ID3-2 ID3
|
|
32123
32162
|
'IDIT' DateTimeOriginal no
|
|
32124
32163
|
'JUNK' OlympusJunk Olympus AVI
|
|
32125
32164
|
CasioJunk EXIF
|
|
@@ -32748,9 +32787,11 @@ specification.
|
|
|
32748
32787
|
'E2' ParrotFollowMe Parrot FollowMe
|
|
32749
32788
|
'E3' ParrotAutomation Parrot Automation
|
|
32750
32789
|
'application/arcore-accel' ARCoreAccel Parrot ARCoreAccel
|
|
32790
|
+
'application/arcore-accel-0' ARCoreAccel0 Parrot ARCoreAccel0
|
|
32751
32791
|
'application/arcore-custom-event'
|
|
32752
32792
|
ARCoreCustom Parrot ARCoreCustom
|
|
32753
32793
|
'application/arcore-gyro' ARCoreGyro Parrot ARCoreGyro
|
|
32794
|
+
'application/arcore-gyro-0' ARCoreGyro0 Parrot ARCoreGyro0
|
|
32754
32795
|
'application/arcore-video-0' ARCoreVideo Parrot ARCoreVideo
|
|
32755
32796
|
|
|
32756
32797
|
=head3 Parrot V1 Tags
|
|
@@ -32888,6 +32929,14 @@ ARCore accelerometer data.
|
|
|
32888
32929
|
4 AccelerometerUnknown? no
|
|
32889
32930
|
5 Accelerometer no
|
|
32890
32931
|
|
|
32932
|
+
=head3 Parrot ARCoreAccel0 Tags
|
|
32933
|
+
|
|
32934
|
+
ARCore accelerometer data.
|
|
32935
|
+
|
|
32936
|
+
Index1 Tag Name Writable
|
|
32937
|
+
------ -------- --------
|
|
32938
|
+
9 Accelerometer no
|
|
32939
|
+
|
|
32891
32940
|
=head3 Parrot ARCoreCustom Tags
|
|
32892
32941
|
|
|
32893
32942
|
Index1 Tag Name Writable
|
|
@@ -32896,13 +32945,21 @@ ARCore accelerometer data.
|
|
|
32896
32945
|
|
|
32897
32946
|
=head3 Parrot ARCoreGyro Tags
|
|
32898
32947
|
|
|
32899
|
-
ARCore
|
|
32948
|
+
ARCore gyro data.
|
|
32900
32949
|
|
|
32901
32950
|
Index1 Tag Name Writable
|
|
32902
32951
|
------ -------- --------
|
|
32903
32952
|
4 GyroscopeUnknown? no
|
|
32904
32953
|
5 Gyroscope no
|
|
32905
32954
|
|
|
32955
|
+
=head3 Parrot ARCoreGyro0 Tags
|
|
32956
|
+
|
|
32957
|
+
ARCore gyro data.
|
|
32958
|
+
|
|
32959
|
+
Index1 Tag Name Writable
|
|
32960
|
+
------ -------- --------
|
|
32961
|
+
9 Gyroscope no
|
|
32962
|
+
|
|
32906
32963
|
=head3 Parrot ARCoreVideo Tags
|
|
32907
32964
|
|
|
32908
32965
|
Index1 Tag Name Writable
|
|
@@ -40185,7 +40242,7 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
|
40185
40242
|
0x0bac CustomOption1 no
|
|
40186
40243
|
0x0bad CustomOption2 no
|
|
40187
40244
|
0x4bac CustomOption3 no
|
|
40188
|
-
0x4bad
|
|
40245
|
+
0x4bad CustomOption4 no
|
|
40189
40246
|
'ByteOrder' ByteOrder no
|
|
40190
40247
|
'IDB-2' DeviceName no
|
|
40191
40248
|
'IDB-3' Description no
|
|
@@ -40197,8 +40254,8 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
|
40197
40254
|
'IDB-9' TimeStampResolution no
|
|
40198
40255
|
'IDB-10' TimeZone no
|
|
40199
40256
|
'IDB-11' Filter no
|
|
40200
|
-
'IDB-12'
|
|
40201
|
-
'IDB-13'
|
|
40257
|
+
'IDB-12' OperatingSystem no
|
|
40258
|
+
'IDB-13' FrameCheckSequenceLength no
|
|
40202
40259
|
'IDB-14' TimeStampOffset no
|
|
40203
40260
|
'IDB-15' Hardware no
|
|
40204
40261
|
'IDB-16' TXSpeed no
|
|
@@ -40207,7 +40264,7 @@ Tags extracted from CAP, PCAP and PCAPNG Packet Capture files.
|
|
|
40207
40264
|
'LinkType' LinkType no
|
|
40208
40265
|
'PCAPVersion' PCAPVersion no
|
|
40209
40266
|
'SHB-2' Hardware no
|
|
40210
|
-
'SHB-3'
|
|
40267
|
+
'SHB-3' OperatingSystem no
|
|
40211
40268
|
'SHB-4' UserApplication no
|
|
40212
40269
|
'TimeStamp' TimeStamp no
|
|
40213
40270
|
|
|
@@ -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}}) {
|
|
@@ -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
|
|
|
@@ -3539,14 +3539,19 @@ NoLoop:
|
|
|
3539
3539
|
}
|
|
3540
3540
|
last unless $sti;
|
|
3541
3541
|
}
|
|
3542
|
-
#
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3542
|
+
# use existing definition if we already added this tag
|
|
3543
|
+
if ($$tagTablePtr{$tagID}) {
|
|
3544
|
+
$tagInfo = $$tagTablePtr{$tagID};
|
|
3545
|
+
} else {
|
|
3546
|
+
# generate new tagInfo hash based on existing top-level tag
|
|
3547
|
+
$tagInfo = { %$sti, Name => $flat . $$sti{Name} };
|
|
3548
|
+
# be careful not to copy elements we shouldn't...
|
|
3549
|
+
delete $$tagInfo{Description}; # Description will be different
|
|
3550
|
+
# can't copy group hash because group 1 will be different and
|
|
3551
|
+
# we need to check this when writing tag to a specific group
|
|
3552
|
+
delete $$tagInfo{Groups};
|
|
3553
|
+
$$tagInfo{Groups}{2} = $$sti{Groups}{2} if $$sti{Groups};
|
|
3554
|
+
}
|
|
3550
3555
|
last;
|
|
3551
3556
|
}
|
|
3552
3557
|
}
|
|
@@ -3592,13 +3597,15 @@ NoLoop:
|
|
|
3592
3597
|
#} elsif (grep / /, @$props) {
|
|
3593
3598
|
# $$tagInfo{List} = 1;
|
|
3594
3599
|
}
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
$$
|
|
3600
|
+
unless ($$tagTablePtr{$tagID} and $$tagTablePtr{$tagID} eq $tagInfo) {
|
|
3601
|
+
# save property list for verbose "adding" message unless this tag already exists
|
|
3602
|
+
$added = \@tagList unless $$tagTablePtr{$tagID};
|
|
3603
|
+
# if this is an empty structure, we must add a Struct field
|
|
3604
|
+
if (not length $val and $$attrs{'rdf:parseType'} and $$attrs{'rdf:parseType'} eq 'Resource') {
|
|
3605
|
+
$$tagInfo{Struct} = { STRUCT_NAME => 'XMP Unknown' } unless $$tagInfo{Struct};
|
|
3606
|
+
}
|
|
3607
|
+
AddTagToTable($tagTablePtr, $tagID, $tagInfo);
|
|
3600
3608
|
}
|
|
3601
|
-
AddTagToTable($tagTablePtr, $tagID, $tagInfo);
|
|
3602
3609
|
last;
|
|
3603
3610
|
}
|
|
3604
3611
|
# decode value if necessary (et:encoding was used before exiftool 7.71)
|
|
@@ -3823,7 +3830,7 @@ sub ParseXMPElement($$$;$$$$)
|
|
|
3823
3830
|
for (;;) {
|
|
3824
3831
|
my ($attr, $quote);
|
|
3825
3832
|
if (length($attrs) < 2000) { # (do it the easy way if attributes aren't stupid long)
|
|
3826
|
-
last unless $attrs =~ /(\S
|
|
3833
|
+
last unless $attrs =~ /(\S+?)\s*=\s*(['"])/g;
|
|
3827
3834
|
($attr, $quote) = ($1, $2);
|
|
3828
3835
|
} else {
|
|
3829
3836
|
# 13.23 patch to avoid capturing tons of garbage if XMP is corrupted
|
|
@@ -170,7 +170,11 @@ my %sAppInfo = (
|
|
|
170
170
|
%xmpTableDefaults,
|
|
171
171
|
GROUPS => { 1 => 'XMP-xmpDM', 2 => 'Image' },
|
|
172
172
|
NAMESPACE => 'xmpDM',
|
|
173
|
-
NOTES =>
|
|
173
|
+
NOTES => q{
|
|
174
|
+
XMP Dynamic Media namespace tags. See
|
|
175
|
+
L<https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpDM/> for the
|
|
176
|
+
specification.
|
|
177
|
+
},
|
|
174
178
|
absPeakAudioFilePath=> { },
|
|
175
179
|
album => { },
|
|
176
180
|
altTapeName => { },
|
|
@@ -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);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.29';
|
|
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 {
|