exiftool_vendored 13.42.0 → 13.45.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +44 -1
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +48 -48
  7. data/bin/config_files/example.config +5 -2
  8. data/bin/exiftool +96 -84
  9. data/bin/lib/Image/ExifTool/Apple.pm +0 -1
  10. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
  11. data/bin/lib/Image/ExifTool/Canon.pm +24 -1
  12. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  13. data/bin/lib/Image/ExifTool/DarwinCore.pm +2 -2
  14. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  15. data/bin/lib/Image/ExifTool/Exif.pm +4 -2
  16. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  17. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  18. data/bin/lib/Image/ExifTool/FujiFilm.pm +2 -2
  19. data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  20. data/bin/lib/Image/ExifTool/Geolocation.pm +1 -1
  21. data/bin/lib/Image/ExifTool/Geotag.pm +3 -3
  22. data/bin/lib/Image/ExifTool/Google.pm +2 -2
  23. data/bin/lib/Image/ExifTool/ICC_Profile.pm +0 -1
  24. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  25. data/bin/lib/Image/ExifTool/JPEG.pm +5 -1
  26. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  27. data/bin/lib/Image/ExifTool/Kandao.pm +399 -0
  28. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  29. data/bin/lib/Image/ExifTool/MRC.pm +4 -4
  30. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  31. data/bin/lib/Image/ExifTool/MacOS.pm +1 -2
  32. data/bin/lib/Image/ExifTool/Matroska.pm +56 -15
  33. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  34. data/bin/lib/Image/ExifTool/Nikon.pm +13 -15
  35. data/bin/lib/Image/ExifTool/NikonCustom.pm +10 -8
  36. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  37. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  38. data/bin/lib/Image/ExifTool/Panasonic.pm +30 -6
  39. data/bin/lib/Image/ExifTool/Pentax.pm +9 -1
  40. data/bin/lib/Image/ExifTool/PhaseOne.pm +17 -1
  41. data/bin/lib/Image/ExifTool/Plot.pm +2 -2
  42. data/bin/lib/Image/ExifTool/Protobuf.pm +42 -16
  43. data/bin/lib/Image/ExifTool/QuickTime.pm +48 -8
  44. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -2
  45. data/bin/lib/Image/ExifTool/README +5 -5
  46. data/bin/lib/Image/ExifTool/RIFF.pm +5 -4
  47. data/bin/lib/Image/ExifTool/Reconyx.pm +2 -2
  48. data/bin/lib/Image/ExifTool/Samsung.pm +11 -1
  49. data/bin/lib/Image/ExifTool/Sony.pm +29 -3
  50. data/bin/lib/Image/ExifTool/TNEF.pm +2 -2
  51. data/bin/lib/Image/ExifTool/TagLookup.pm +7129 -7108
  52. data/bin/lib/Image/ExifTool/TagNames.pod +259 -111
  53. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  54. data/bin/lib/Image/ExifTool/Trailer.pm +1 -1
  55. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +10 -2
  56. data/bin/lib/Image/ExifTool/Writer.pl +9 -5
  57. data/bin/lib/Image/ExifTool/XMP.pm +4 -2
  58. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  59. data/bin/lib/Image/ExifTool.pm +33 -26
  60. data/bin/lib/Image/ExifTool.pod +88 -79
  61. data/bin/perl-Image-ExifTool.spec +47 -47
  62. data/lib/exiftool_vendored/version.rb +1 -1
  63. metadata +2 -1
@@ -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 28932 tags, with 17990 unique tag names.
15
+ They contain a total of 29026 tags, with 18036 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
@@ -143,6 +143,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
143
143
  InfiRayMixMode InfiRay MixMode
144
144
  DJI_DTAT no
145
145
  'APP7' Pentax Pentax
146
+ Ricoh Pentax
146
147
  Huawei Unknown
147
148
  Qualcomm Qualcomm
148
149
  InfiRayOpMode InfiRay OpMode
@@ -1345,7 +1346,7 @@ or "Rights-en-US"). (See L<http://www.ietf.org/rfc/rfc3066.txt> for the RFC
1345
1346
  3066 specification.) A C<lang-alt> tag with no language code accesses the
1346
1347
  "x-default" language, but causes other languages for this tag to be deleted
1347
1348
  when writing. The "x-default" language code may be specified when writing
1348
- to preserve other existing languages (eg. "XMP-dc:Description-x-default").
1349
+ to preserve other existing languages (eg. "XMP-dc:Description-x-default").
1349
1350
  When reading, "x-default" is not specified.
1350
1351
 
1351
1352
  The XMP tags are organized according to schema B<Namespace> in the following
@@ -2595,6 +2596,7 @@ These tags belong to the ExifTool XMP-crd family 1 group.
2595
2596
  PerspectiveVertical integer/
2596
2597
  PerspectiveX real/
2597
2598
  PerspectiveY real/
2599
+ PointColors string/+
2598
2600
  PostCropVignetteAmount integer/
2599
2601
  PostCropVignetteFeather integer/
2600
2602
  PostCropVignetteHighlightContrast integer/
@@ -3973,6 +3975,7 @@ These tags belong to the ExifTool XMP-crs family 1 group.
3973
3975
  PerspectiveVertical integer
3974
3976
  PerspectiveX real
3975
3977
  PerspectiveY real
3978
+ PointColors string+
3976
3979
  PostCropVignetteAmount integer
3977
3980
  PostCropVignetteFeather integer
3978
3981
  PostCropVignetteHighlightContrast integer
@@ -7432,6 +7435,7 @@ boot, not including standby time.
7432
7435
  CanonCameraInfo1200D Canon CameraInfo60D
7433
7436
  CanonCameraInfoR6 Canon CameraInfoR6
7434
7437
  CanonCameraInfoR6m2 Canon CameraInfoR6m2
7438
+ CanonCameraInfoR6m3 Canon CameraInfoR6m3
7435
7439
  CanonCameraInfoG5XII Canon CameraInfoG5XII
7436
7440
  CanonCameraInfoPowerShot Canon CameraInfoPowerShot
7437
7441
  CanonCameraInfoPowerShot2 Canon CameraInfoPowerShot2
@@ -8438,6 +8442,14 @@ CameraInfo tags for the EOS R6 Mark II.
8438
8442
  ------ -------- --------
8439
8443
  3369 ShutterCount int32u
8440
8444
 
8445
+ =head3 Canon CameraInfoR6m3 Tags
8446
+
8447
+ CameraInfo tags for the EOS R6 Mark II.
8448
+
8449
+ Index1 Tag Name Writable
8450
+ ------ -------- --------
8451
+ 2157 ShutterCount int32u
8452
+
8441
8453
  =head3 Canon CameraInfoG5XII Tags
8442
8454
 
8443
8455
  CameraInfo tags for the PowerShot G5 X Mark II.
@@ -20132,6 +20144,10 @@ These tags are used in Panasonic/Leica cameras.
20132
20144
  0x00e8 MinimumISO int32u
20133
20145
  0x00e9 AFSubjectDetection int16u
20134
20146
  0x00ee DynamicRangeBoost int16u
20147
+ 0x00f1 LUT1Name string
20148
+ 0x00f3 LUT1Opacity int8u
20149
+ 0x00f4 LUT2Name string
20150
+ 0x00f5 LUT2Opacity int8u
20135
20151
  0x0e00 PrintIM PrintIM
20136
20152
  0x2003 TimeInfo Panasonic TimeInfo
20137
20153
  0x8000 MakerNoteVersion undef
@@ -20401,7 +20417,7 @@ various Panasonic and Leica models.
20401
20417
 
20402
20418
  =head2 Pentax Tags
20403
20419
 
20404
- These tags are used in Pentax/Asahi cameras.
20420
+ These tags are used in Pentax/Asahi/Ricoh cameras.
20405
20421
 
20406
20422
  Tag ID Tag Name Writable
20407
20423
  ------ -------- --------
@@ -21403,6 +21419,10 @@ These tags are extracted from the maker notes of Phase One images.
21403
21419
  0x0222 SplitColumn int32s
21404
21420
  0x0223 BlackLevelData int16u[n]
21405
21421
  0x0226 ColorMatrix2 float[9]
21422
+ 0x0262 SequenceID string
21423
+ 0x0263 SequenceKind int32s
21424
+ 0x0264 SequenceFrameNumber int32s
21425
+ 0x0265 SequenceFrameCount int32s
21406
21426
  0x0267 AFAdjustment float
21407
21427
  0x0301 FirmwareVersions string
21408
21428
  0x0400 ShutterSpeedValue float
@@ -21934,6 +21954,7 @@ HEIC images from models such as the S10+.
21934
21954
  SurroundShotVideo no
21935
21955
  SurroundShotVideoName no
21936
21956
  TimeStamp no
21957
+ VideoEditedTimeZone no
21937
21958
 
21938
21959
  =head3 Samsung DualShotExtra Tags
21939
21960
 
@@ -23477,6 +23498,7 @@ substitution cipher, but the deciphered values are listed below.
23477
23498
  ------ -------- --------
23478
23499
  0 SonyMaxAperture int8u
23479
23500
  1 SonyMinAperture int8u
23501
+ 10 ShutterCount int32u
23480
23502
  32 Shutter int16u[3]
23481
23503
  49 FlashStatus int8u
23482
23504
  50 ShutterCount int32u
@@ -30840,6 +30862,9 @@ for the official QuickTime specification.
30840
30862
  'gsen' GSensor QuickTime Stream
30841
30863
  'inst' Insta360Info QuickTime Stream
30842
30864
  'junk' Junk? no
30865
+ 'kfix' KFIX Kandao
30866
+ 'kstb' KSTB Kandao
30867
+ 'kvar' KVAR Kandao
30843
30868
  'mdat' MediaData? no
30844
30869
  'mdat-offset' MediaDataOffset no
30845
30870
  'mdat-size' MediaDataSize no
@@ -30883,7 +30908,7 @@ for the official QuickTime specification.
30883
30908
  The tags below are extracted from timed metadata in QuickTime and other
30884
30909
  formats of video files when the ExtractEmbedded option is used. Although
30885
30910
  most of these tags are combined into the single table below, ExifTool
30886
- currently reads 116 different types of timed GPS metadata from video files.
30911
+ currently reads 117 different types of timed GPS metadata from video files.
30887
30912
 
30888
30913
  Tag ID Tag Name Writable
30889
30914
  ------ -------- --------
@@ -31060,7 +31085,7 @@ specification.
31060
31085
  This directory contains a list of key names which are used to decode tags
31061
31086
  written by the "mdta" handler. Also in this table are a few tags found in
31062
31087
  timed metadata that are not yet writable by ExifTool. The prefix of
31063
- "com.apple.quicktime." has been removed from the TagID's below. These tags
31088
+ "com.apple.quicktime." has been removed from most TagID's below. These tags
31064
31089
  support alternate languages in the same way as the
31065
31090
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> tags. Note
31066
31091
  that by default,
@@ -31144,6 +31169,7 @@ changed via the config file.
31144
31169
  'producer' Producer yes
31145
31170
  'publisher' Publisher yes
31146
31171
  'rating.user' UserRating yes
31172
+ 'samsung.android.utc_offset' AndroidTimeZone yes
31147
31173
  'scene-illuminance' SceneIlluminance no
31148
31174
  'software' Software yes
31149
31175
  'still-image-time' StillImageTime no
@@ -31563,6 +31589,7 @@ and are not currently writable.
31563
31589
  'colr' ICC_Profile ICC_Profile
31564
31590
  ColorRepresentation QuickTime ColorRep
31565
31591
  'hvcC' HEVCConfiguration QuickTime HEVCConfig
31592
+ 'imir' Mirroring int8u!
31566
31593
  'irot' Rotation int8u!
31567
31594
  'ispe' ImageSpatialExtent no
31568
31595
  'pasp' PixelAspectRatio int32u[2]!
@@ -34137,6 +34164,119 @@ Other tags are extracted with the Unknown option.
34137
34164
  ------ -------- --------
34138
34165
  [no tags known]
34139
34166
 
34167
+ =head2 Kandao Tags
34168
+
34169
+ Tags extracted from Kandao KVAR files and the 'kvar', 'kfix' and 'kstb'
34170
+ atoms in Kandao MP4 videos, with a family 1 group name of KVAR, KFIX or KSTB
34171
+ depending on their location.
34172
+
34173
+ Tag ID Tag Name Writable
34174
+ ------ -------- --------
34175
+ 'AE_METERING' AEMetering no
34176
+ 'AE_MODE' AEMode no
34177
+ 'AF_FN' AF_FN no
34178
+ 'AUDIO_GAIN' AudioGain no
34179
+ 'AWB_CCT' AWB_CCT no
34180
+ 'AWB_MODE' AWBMode no
34181
+ 'BAT_TEMP' BatteryTemperature no
34182
+ 'CAPTURE_MODE' CaptureMode no
34183
+ 'CENTER_SHIFT' CenterShift no
34184
+ 'COVER_MODE' CoverMode no
34185
+ 'CPU_TEMP' CPUTemperature no
34186
+ 'CUSTOMIZED' Customized no
34187
+ 'DASHBOARD' Dashboard no
34188
+ 'DISTORTION' Distortion no
34189
+ 'DYNAMIC_RANGE' DynamicRange no
34190
+ 'EV' EV no
34191
+ 'EXP' Exp no
34192
+ 'FAN_LEVEL' FanLevel no
34193
+ 'FAN_MODE' FanMode no
34194
+ 'FOV' FOV no
34195
+ 'FRAME_ISP' FRAME_ISP Kandao FrameISP
34196
+ 'GAINMAP0' GainMap0 no
34197
+ 'GAINMAP1' GainMap1 no
34198
+ 'GPS' GPS Kandao GPS
34199
+ Kandao GPS
34200
+ 'GPSX' GPSX Kandao GPSX
34201
+ 'GPS_CAPTIME' GPSCaptureTime no
34202
+ 'HDR' HDR no
34203
+ 'HW_VER' HardwareVersion no
34204
+ 'IMAGE_STYLE' ImageStyle no
34205
+ 'IMU' IMU Kandao IMU
34206
+ 'INFO' Info no
34207
+ 'INPUT_INSERT' InputInsert no
34208
+ 'INTERVAL' Interval no
34209
+ 'ISO' ISO no
34210
+ 'ISP' ISP no
34211
+ 'ISP_VER' ISPVersion no
34212
+ 'LENS' LensData no
34213
+ 'LENS_INDEX' LensIndex no
34214
+ 'LENS_OTP_ID0' Lens0OTP_ID no
34215
+ 'LENS_OTP_ID1' Lens1OTP_ID no
34216
+ 'LENS_SN0' Lens0SerialNumber no
34217
+ 'LENS_SN1' Lens1SerialNumber no
34218
+ 'NEED_LSC' NeedLDSC no
34219
+ 'OUTPUT_INSERT' OutputInsert no
34220
+ 'PRODUCT' Model no
34221
+ 'PROJECT' Project no
34222
+ 'PROJECTION' Projection no
34223
+ 'PR_VER' ProductVersion no
34224
+ 'PTS' PresentationTimeStamp no
34225
+ 'PTS_UNIT' TimeStampUnit no
34226
+ 'SHUTTER' Shutter no
34227
+ 'SN' SerialNumber no
34228
+ 'STEREO' Stereo no
34229
+ 'STITCHED' Stitched no
34230
+ 'SW_VER' SoftwareVersion no
34231
+ 'TOTAL_FRAME' TotalFrames no
34232
+ 'TOTAL_TIME_MS' TotalTime no
34233
+ 'VIDEO_BITRATE' VideoBitrate no
34234
+ 'VIDEO_CAPTIME' VideoCaptureTime no
34235
+ 'VIDEO_CODECTYPE' VideoCodec no
34236
+ 'VIDEO_FORMAT' VideoFormat no
34237
+ 'VIDEO_RESOLUTION' VideoResolution no
34238
+ 'YAW' Yaw no
34239
+
34240
+ =head3 Kandao FrameISP Tags
34241
+
34242
+ Index1 Tag Name Writable
34243
+ ------ -------- --------
34244
+ 0 TimeStamp? no
34245
+ 4 FrameISP_4? no
34246
+
34247
+ =head3 Kandao GPS Tags
34248
+
34249
+ These tags are in the family 1 KVAR group instead of a GPS group to allow
34250
+ them to be distinguished from the duplicate GPS tags in the GPSX table.
34251
+
34252
+ Index1 Tag Name Writable
34253
+ ------ -------- --------
34254
+ 0 TimeStamp no
34255
+ 4 GPSLatitude no
34256
+ 12 GPSLongitude no
34257
+ 20 GPSAltitude no
34258
+
34259
+ =head3 Kandao GPSX Tags
34260
+
34261
+ These tags are in the family 1 GPS group. They are duplicates of the tags
34262
+ in the Kandao GPS table with the addition of GPSDateTime.
34263
+
34264
+ Index1 Tag Name Writable
34265
+ ------ -------- --------
34266
+ 0 TimeStamp no
34267
+ 4 GPSDateTime no
34268
+ 12 GPSLatitude no
34269
+ 20 GPSLongitude no
34270
+ 28 GPSAltitude no
34271
+
34272
+ =head3 Kandao IMU Tags
34273
+
34274
+ Index1 Tag Name Writable
34275
+ ------ -------- --------
34276
+ 0 TimeStamp no
34277
+ 8 Gyroscope no
34278
+ 14 Accelerometer no
34279
+
34140
34280
  =head2 Matroska Tags
34141
34281
 
34142
34282
  The following tags are extracted from Matroska multimedia container files.
@@ -34379,112 +34519,120 @@ for the specification.
34379
34519
  Standardized Matroska tags, stored in a SimpleTag structure (see
34380
34520
  L<https://www.matroska.org/technical/tagging.html>).
34381
34521
 
34382
- Tag ID Tag Name Writable
34383
- ------ -------- --------
34384
- 'ACCOMPANIMENT' Accompaniment no
34385
- 'ACTOR' Actor no
34386
- 'ADDRESS' Address no
34387
- 'ARRANGER' Arranger no
34388
- 'ARTIST' Artist no
34389
- 'ART_DIRECTOR' ArtDirector no
34390
- 'ASSISTANT_DIRECTOR' AssistantDirector no
34391
- 'BARCODE' Barcode no
34392
- 'BPM' BPM no
34393
- 'BPS' BPS no
34394
- 'CATALOG_NUMBER' CatalogNumber no
34395
- 'CHARACTER' Character no
34396
- 'CHOREGRAPHER' Choregrapher no
34397
- 'COMMENT' Comment no
34398
- 'COMPOSER' Composer no
34399
- 'COMPOSER_NATIONALITY' ComposerNationality no
34400
- 'COMPOSITION_LOCATION' CompositionLocation no
34401
- 'CONDUCTOR' Conductor no
34402
- 'CONTENT_TYPE' ContentType no
34403
- 'COPRODUCER' Coproducer no
34404
- 'COPYRIGHT' Copyright no
34405
- 'COSTUME_DESIGNER' CostumeDesigner no
34406
- 'COUNTRY' Country no
34407
- 'DATE_DIGITIZED' CreateDate no
34408
- 'DATE_ENCODED' DateEncoded no
34409
- 'DATE_PURCHASED' DatePurchased no
34410
- 'DATE_RECORDED' DateTimeOriginal no
34411
- 'DATE_RELEASED' DateReleased no
34412
- 'DATE_TAGGED' DateTagged no
34413
- 'DATE_WRITTEN' DateWritten no
34414
- 'DESCRIPTION' Description no
34415
- 'DIRECTOR' Director no
34522
+ Tag ID Tag Name Writable
34523
+ ------ -------- --------
34524
+ 'ACCOMPANIMENT' Accompaniment no
34525
+ 'ACTOR' Actor no
34526
+ 'ADDRESS' Address no
34527
+ 'ARRANGER' Arranger no
34528
+ 'ARTIST' Artist no
34529
+ 'ART_DIRECTOR' ArtDirector no
34530
+ 'ASSISTANT_DIRECTOR' AssistantDirector no
34531
+ 'BARCODE' Barcode no
34532
+ 'BPM' BPM no
34533
+ 'BPS' BPS no
34534
+ 'CATALOG_NUMBER' CatalogNumber no
34535
+ 'CHARACTER' Character no
34536
+ 'CHOREGRAPHER' Choregrapher no
34537
+ 'COMMENT' Comment no
34538
+ 'COMPOSER' Composer no
34539
+ 'COMPOSER_NATIONALITY' ComposerNationality no
34540
+ 'COMPOSITION_LOCATION' CompositionLocation no
34541
+ 'CONDUCTOR' Conductor no
34542
+ 'CONTENT_TYPE' ContentType no
34543
+ 'COPRODUCER' Coproducer no
34544
+ 'COPYRIGHT' Copyright no
34545
+ 'COSTUME_DESIGNER' CostumeDesigner no
34546
+ 'COUNTRY' Country no
34547
+ 'DATE_DIGITIZED' CreateDate no
34548
+ 'DATE_ENCODED' DateEncoded no
34549
+ 'DATE_PURCHASED' DatePurchased no
34550
+ 'DATE_RECORDED' DateTimeOriginal no
34551
+ 'DATE_RELEASED' DateReleased no
34552
+ 'DATE_TAGGED' DateTagged no
34553
+ 'DATE_WRITTEN' DateWritten no
34554
+ 'DESCRIPTION' Description no
34555
+ 'DIRECTOR' Director no
34416
34556
  'DIRECTOR_OF_PHOTOGRAPHY'
34417
- DirectorOfPhotography no
34418
- 'DISTRIBUTED_BY' DistributedBy no
34419
- 'EDITED_BY' EditedBy no
34420
- 'EMAIL' Email no
34421
- 'ENCODED_BY' EncodedBy no
34422
- 'ENCODER' Encoder no
34423
- 'ENCODER_SETTINGS' EncoderSettings no
34424
- 'EXECUTIVE_PRODUCER' ExecutiveProducer no
34425
- 'FAX' FAX no
34426
- 'FPS' FPS no
34427
- 'GENRE' Genre no
34428
- 'IMDB' IMDB no
34429
- 'INITIAL_KEY' InitialKey no
34430
- 'INSTRUMENTS' Instruments no+
34431
- 'ISBN' ISBN no
34432
- 'ISRC' ISRC no
34433
- 'KEYWORDS' Keywords no+
34434
- 'LABEL' Label no
34435
- 'LABEL_CODE' LabelCode no
34436
- 'LAW_RATING' LawRating no
34437
- 'LCCN' Lccn no
34438
- 'LEAD_PERFORMER' LeadPerformer no
34439
- 'LICENSE' License no
34440
- 'LYRICIST' Lyricist no
34441
- 'LYRICS' Lyrics no
34442
- 'MASTERED_BY' MasteredBy no
34443
- 'MCDI' MCDI no
34444
- 'MEASURE' Measure no
34445
- 'MIXED_BY' MixedBy no
34446
- 'MOOD' Mood no
34447
- 'ORIGINAL' Original no
34448
- 'ORIGINAL_MEDIA_TYPE' OriginalMediaType no
34449
- 'PART_NUMBER' PartNumber no
34450
- 'PART_OFFSET' PartOffset no
34451
- 'PERIOD' Period no
34452
- 'PHONE' Phone no
34453
- 'PLAY_COUNTER' PlayCounter no
34454
- 'PRODUCER' Producer no
34455
- 'PRODUCTION_COPYRIGHT' ProductionCopyright no
34456
- 'PRODUCTION_DESIGNER' ProductionDesigner no
34457
- 'PRODUCTION_STUDIO' ProductionStudio no
34458
- 'PUBLISHER' Publisher no
34459
- 'PURCHASE_CURRENCY' PurchaseCurrency no
34460
- 'PURCHASE_INFO' PurchaseInfo no
34461
- 'PURCHASE_ITEM' PurchaseItem no
34462
- 'PURCHASE_OWNER' PurchaseOwner no
34463
- 'PURCHASE_PRICE' PurchasePrice no
34464
- 'RATING' Rating no
34465
- 'RECORDING_LOCATION' RecordingLocation no
34466
- 'REMIXED_BY' RemixedBy no
34467
- 'REPLAYGAIN_GAIN' ReplaygainGain no
34468
- 'REPLAYGAIN_PEAK' ReplaygainPeak no
34469
- 'SAMPLE' Sample no
34470
- 'SCREENPLAY_BY' ScreenplayBy no
34471
- 'SORT_WITH' SortWith no
34472
- 'SOUND_ENGINEER' SoundEngineer no
34473
- 'SPHERICAL-VIDEO' SphericalVideoXML XMP
34474
- 'SUBJECT' Subject no
34475
- 'SUBTITLE' Subtitle no
34476
- 'SUMMARY' Summary no
34477
- 'SYNOPSIS' Synopsis no
34478
- 'TERMS_OF_USE' TermsOfUse no
34479
- 'THANKS_TO' ThanksTo no
34480
- 'TITLE' Title no
34481
- 'TMDB' TMDB no
34482
- 'TOTAL_PARTS' TotalParts no
34483
- 'TUNING' Tuning no
34484
- 'TVDB' TVDB no
34485
- 'URL' URL no
34486
- 'WRITTEN_BY' WrittenBy no
34487
- 'spherical-video' SphericalVideoXML XMP
34557
+ DirectorOfPhotography no
34558
+ 'DISTRIBUTED_BY' DistributedBy no
34559
+ 'DURATION' Duration no
34560
+ 'EDITED_BY' EditedBy no
34561
+ 'EMAIL' Email no
34562
+ 'ENCODED_BY' EncodedBy no
34563
+ 'ENCODER' Encoder no
34564
+ 'ENCODER_SETTINGS' EncoderSettings no
34565
+ 'EXECUTIVE_PRODUCER' ExecutiveProducer no
34566
+ 'FAX' FAX no
34567
+ 'FPS' FPS no
34568
+ 'GENRE' Genre no
34569
+ 'IMDB' IMDB no
34570
+ 'INITIAL_KEY' InitialKey no
34571
+ 'INSTRUMENTS' Instruments no+
34572
+ 'ISBN' ISBN no
34573
+ 'ISRC' ISRC no
34574
+ 'KEYWORDS' Keywords no+
34575
+ 'LABEL' Label no
34576
+ 'LABEL_CODE' LabelCode no
34577
+ 'LAW_RATING' LawRating no
34578
+ 'LCCN' Lccn no
34579
+ 'LEAD_PERFORMER' LeadPerformer no
34580
+ 'LICENSE' License no
34581
+ 'LYRICIST' Lyricist no
34582
+ 'LYRICS' Lyrics no
34583
+ 'MASTERED_BY' MasteredBy no
34584
+ 'MCDI' MCDI no
34585
+ 'MEASURE' Measure no
34586
+ 'MIXED_BY' MixedBy no
34587
+ 'MOOD' Mood no
34588
+ 'NUMBER_OF_BYTES' NumberOfBytes no
34589
+ 'NUMBER_OF_FRAMES' NumberOfFrames no
34590
+ 'ORIGINAL' Original no
34591
+ 'ORIGINAL_MEDIA_TYPE' OriginalMediaType no
34592
+ 'PART_NUMBER' PartNumber no
34593
+ 'PART_OFFSET' PartOffset no
34594
+ 'PERIOD' Period no
34595
+ 'PHONE' Phone no
34596
+ 'PLAY_COUNTER' PlayCounter no
34597
+ 'PRODUCER' Producer no
34598
+ 'PRODUCTION_COPYRIGHT' ProductionCopyright no
34599
+ 'PRODUCTION_DESIGNER' ProductionDesigner no
34600
+ 'PRODUCTION_STUDIO' ProductionStudio no
34601
+ 'PUBLISHER' Publisher no
34602
+ 'PURCHASE_CURRENCY' PurchaseCurrency no
34603
+ 'PURCHASE_INFO' PurchaseInfo no
34604
+ 'PURCHASE_ITEM' PurchaseItem no
34605
+ 'PURCHASE_OWNER' PurchaseOwner no
34606
+ 'PURCHASE_PRICE' PurchasePrice no
34607
+ 'RATING' Rating no
34608
+ 'RECORDING_LOCATION' RecordingLocation no
34609
+ 'REMIXED_BY' RemixedBy no
34610
+ 'REPLAYGAIN_GAIN' ReplaygainGain no
34611
+ 'REPLAYGAIN_PEAK' ReplaygainPeak no
34612
+ 'SAMPLE' Sample no
34613
+ 'SCREENPLAY_BY' ScreenplayBy no
34614
+ 'SORT_WITH' SortWith no
34615
+ 'SOUND_ENGINEER' SoundEngineer no
34616
+ 'SPHERICAL-VIDEO' SphericalVideoXML XMP
34617
+ 'SUBJECT' Subject no
34618
+ 'SUBTITLE' Subtitle no
34619
+ 'SUMMARY' Summary no
34620
+ 'SYNOPSIS' Synopsis no
34621
+ 'TERMS_OF_USE' TermsOfUse no
34622
+ 'THANKS_TO' ThanksTo no
34623
+ 'TITLE' Title no
34624
+ 'TMDB' TMDB no
34625
+ 'TOTAL_PARTS' TotalParts no
34626
+ 'TUNING' Tuning no
34627
+ 'TVDB' TVDB no
34628
+ 'URL' URL no
34629
+ 'WRITTEN_BY' WrittenBy no
34630
+ '_STATISTICS_TAGS' StatisticsTags no
34631
+ '_STATISTICS_WRITING_APP'
34632
+ StatisticsWritingApp no
34633
+ '_STATISTICS_WRITING_DATE_UTC'
34634
+ StatisticsWritingDateUTC no
34635
+ 'spherical-video' SphericalVideoXML XMP
34488
34636
 
34489
34637
  =head2 MOI Tags
34490
34638
 
@@ -41736,7 +41884,7 @@ index the file after a metadata change.
41736
41884
 
41737
41885
  The extra tags provide extra features or extra information extracted or
41738
41886
  generated by ExifTool that is not directly associated with another tag
41739
- group. The B<Group> column lists the family 1 group name when reading.
41887
+ group. The B<Group> column lists the family 1 group name when reading.
41740
41888
  Tags with a "-" in this column are write-only.
41741
41889
 
41742
41890
  Tags in the family 1 "System" group are referred to as "pseudo" tags because
@@ -23,7 +23,7 @@ $VERSION = '1.05';
23
23
  GROUPS => { 0 => 'File', 1 => 'File', 2 => 'Document' },
24
24
  NOTES => q{
25
25
  Although basic text files contain no metadata, the following tags are
26
- determined from a simple analysis of the data in TXT and CSV files.
26
+ determined from a simple analysis of the data in TXT and CSV files.
27
27
  Statistics are generated only for 8-bit encodings, but the L<FastScan|../ExifTool.html#FastScan> (-fast)
28
28
  option may be used to limit processing to the first 64 KiB in which case
29
29
  some tags are not produced. To avoid long processing delays, ExifTool will
@@ -96,7 +96,7 @@ sub ProcessVivo($$)
96
96
  $len -= $start;
97
97
  $buff = substr($buff, $start);
98
98
  }
99
- # set trailer position and length
99
+ # set trailer position and length
100
100
  @$dirInfo{'DataPos','DirLen'} = ($pos, $len);
101
101
 
102
102
  # let ProcessTrailers copy or delete this trailer
@@ -95,6 +95,11 @@ my %emptyMeta = (
95
95
  hdlr => 'Handler', 'keys' => 'Keys', lang => 'Language', ctry => 'Country', free => 'Free',
96
96
  );
97
97
 
98
+ # starting word for Keys tags which use a full tag ID
99
+ my %fullKeysID = (
100
+ com => 1, xiaomi => 1, samsung => 1,
101
+ );
102
+
98
103
  # lookup for CTBO ID number based on uuid for Canon CR3 files
99
104
  my %ctboID = (
100
105
  "\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac" => 1, # XMP
@@ -172,7 +177,7 @@ sub ConvInvISO6709($)
172
177
  # requires at least 3 digits after the decimal point
173
178
  # (and as of Apr 2021, Google Photos doesn't accept coordinats
174
179
  # with more than 5 digits after the decimal place:
175
- # https://exiftool.org/forum/index.php?topic=11055.msg67171#msg67171
180
+ # https://exiftool.org/forum/index.php?topic=11055.msg67171#msg67171
176
181
  # still a problem Apr 2024: https://exiftool.org/forum/index.php?msg=85761)
177
182
  my @fmt = ('%s%02d.%s%s','%s%03d.%s%s','%s%d.%s%s');
178
183
  my @limit = (90,180);
@@ -461,7 +466,10 @@ sub WriteKeys($$$)
461
466
  next unless $$nvHash{IsCreating} and $et->IsOverwriting($nvHash) and
462
467
  defined $et->GetNewValue($nvHash);
463
468
  # add new entry to 'keys' data
464
- my $val = $id =~ /^com\./ ? $id : "com.apple.quicktime.$id";
469
+ my $val = $id;
470
+ unless ($val =~ /^(.*?)\./ and $fullKeysID{$1}) {
471
+ $val = "com.apple.quicktime.$val";
472
+ }
465
473
  $newData .= Set32u(8 + length($val)) . 'mdta' . $val;
466
474
  $et->VPrint(1, "$$et{INDENT}\[adding $keysGrp entry $newIndex '${id}']\n");
467
475
  $add{$newIndex++} = $tagInfo;
@@ -1304,8 +1304,9 @@ sub SetNewValuesFromFile($$;@)
1304
1304
  IgnoreTags ImageHashType KeepUTCTime Lang LargeFileSupport
1305
1305
  LigoGPSScale ListItem ListSep MDItemTags MissingTagValue NoPDFList
1306
1306
  NoWarning Password PrintConv QuickTimeUTC RequestTags SaveFormat
1307
- SavePath ScanForXMP StructFormat SystemTags TimeZone Unknown UserParam
1308
- Validate WindowsLongPath WindowsWideFile XAttrTags XMPAutoConv))
1307
+ SavePath ScanForXMP StructFormat SystemTags SystemTimeRes TimeZone
1308
+ Unknown UserParam Validate WindowsLongPath WindowsWideFile XAttrTags
1309
+ XMPAutoConv))
1309
1310
  {
1310
1311
  $srcExifTool->Options($_ => $$options{$_});
1311
1312
  }
@@ -2831,8 +2832,9 @@ sub GetAllGroups($;$)
2831
2832
  my %allGroups;
2832
2833
  # add family 1 groups not in tables
2833
2834
  no warnings; # (avoid "possible attempt to put comments in qw()")
2835
+ # start with family 1 groups that are missing from the tables
2834
2836
  $family == 1 and map { $allGroups{$_} = 1 } qw(Garmin AudioItemList AudioUserData
2835
- VideoItemList VideoUserData Track#Keys Track#ItemList Track#UserData);
2837
+ VideoItemList VideoUserData Track#Keys Track#ItemList Track#UserData KFIX);
2836
2838
  use warnings;
2837
2839
  # loop through all tag tables and get all group names
2838
2840
  while (@tableNames) {
@@ -3792,7 +3794,7 @@ sub GetGeolocateTags($$;$)
3792
3794
  'xmp-exif' => [ qw(GPSLatitude GPSLongitude) ],
3793
3795
  'itemlist' => [ 'GPSCoordinates' ],
3794
3796
  'userdata' => [ 'GPSCoordinates' ],
3795
- # more general groups not in this lookup: XMP and QuickTime
3797
+ # more general groups not in this lookup: XMP and QuickTime
3796
3798
  );
3797
3799
  my (@tags, $grp);
3798
3800
  # set specific City and GPS tags
@@ -3845,7 +3847,9 @@ sub GetNewValueHash($$;$$$$)
3845
3847
  # QuickTime and All are special cases because all group1 tags may be updated at once
3846
3848
  last if $$nvHash{WriteGroup} =~ /^(QuickTime|All)$/;
3847
3849
  # replace existing entry if WriteGroup is 'All' (avoids confusion of forum10349)
3848
- last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All';
3850
+ #last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All'; # (didn't work for forum17770)
3851
+ # forum17770 patch (also handles case where "EXIF" is specified as a write group)
3852
+ last if $writeGroup eq 'All' or $$nvHash{WriteGroup} eq 'EXIF' and $writeGroup =~ /IFD/;
3849
3853
  $nvHash = $$nvHash{Next};
3850
3854
  }
3851
3855
  }
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
50
50
  use Image::ExifTool::GPS;
51
51
  require Exporter;
52
52
 
53
- $VERSION = '3.75';
53
+ $VERSION = '3.76';
54
54
  @ISA = qw(Exporter);
55
55
  @EXPORT_OK = qw(EscapeXML UnescapeXML);
56
56
 
@@ -1865,6 +1865,8 @@ my %sPantryItem = (
1865
1865
  What => { },
1866
1866
  },
1867
1867
  },
1868
+ # more new stuff
1869
+ PointColors => { List => 'Seq' },
1868
1870
  );
1869
1871
 
1870
1872
  # Tiff namespace properties (tiff)
@@ -4256,7 +4258,7 @@ sub ProcessXMP($$;$)
4256
4258
  # check leading BOM (may indicate double-encoded UTF)
4257
4259
  pos($$dataPt) = $dirStart;
4258
4260
  if ($$dataPt =~ /\G((\0\0)?\xfe\xff|\xff\xfe(\0\0)?|\xef\xbb\xbf)\0*<\0*\?\0*x\0*p\0*a\0*c\0*k\0*e\0*t/g) {
4259
- $double = $1
4261
+ $double = $1;
4260
4262
  } else {
4261
4263
  # handle UTF-16/32 XML
4262
4264
  pos($$dataPt) = $dirStart;
@@ -381,7 +381,7 @@ sub ProcessRAR($$)
381
381
  # skip over all headers except file or service header
382
382
  next unless $headType == 2 or $headType == 3;
383
383
  $et->VerboseDir('RAR5 file', undef, $headSize) if $headType == 2;
384
-
384
+
385
385
  my $headFlag = ReadULEB($rafHdr);
386
386
  ReadULEB($rafHdr); # skip extraSize
387
387
  my $dataSize;