exiftool-vendored.exe 12.26.0 → 12.33.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 (53) hide show
  1. package/bin/exiftool_files/Changes +119 -4
  2. package/bin/exiftool_files/README +44 -43
  3. package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
  4. package/bin/exiftool_files/config_files/convert_regions.config +25 -14
  5. package/bin/exiftool_files/config_files/example.config +1 -1
  6. package/bin/exiftool_files/exiftool.pl +79 -66
  7. package/bin/exiftool_files/fmt_files/gpx.fmt +1 -1
  8. package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +1 -1
  9. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +11 -3
  10. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
  11. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +26 -7
  12. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +13 -2
  13. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +98 -4
  14. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +35 -10
  15. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -0
  16. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -2
  17. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +16 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +15 -3
  19. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -3
  20. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +60 -26
  21. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +153 -0
  22. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +60 -59
  23. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +103 -7
  24. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
  25. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +14 -3
  26. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +10 -2
  27. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +9 -2
  28. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +93 -0
  29. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +9 -12
  30. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +7 -6
  31. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +14 -3
  32. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +27 -5
  33. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +6 -0
  34. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +105 -24
  35. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +203 -121
  36. package/bin/exiftool_files/lib/Image/ExifTool/README +5 -2
  37. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +6 -1
  38. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +47 -10
  39. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +85 -34
  40. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +65 -5
  41. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +153 -32
  42. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +18 -11
  43. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -0
  44. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +2 -0
  45. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +8 -4
  46. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +3 -0
  47. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +21 -4
  48. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +121 -2
  51. package/bin/exiftool_files/lib/Image/ExifTool.pm +8867 -8835
  52. package/bin/exiftool_files/lib/Image/ExifTool.pod +58 -56
  53. package/package.json +3 -3
@@ -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 24279 tags, with 15743 unique tag names.
15
+ They contain a total of 24363 tags, with 15798 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
@@ -925,6 +925,20 @@ for the official EXIF 2.32 specification.
925
925
  0xc7ec DepthUnits IFD0 int16u!
926
926
  0xc7ed DepthMeasureType IFD0 int16u!
927
927
  0xc7ee EnhanceParams IFD0 string!
928
+ 0xcd2d ProfileGainTableMap SubIFD undef!
929
+ 0xcd2e SemanticName SubIFD no
930
+ 0xcd30 SemanticInstanceIFD SubIFD no
931
+ 0xcd31 CalibrationIlluminant3 IFD0 int16u!
932
+ 0xcd32 CameraCalibration3 IFD0 rational64s[n]!
933
+ 0xcd33 ColorMatrix3 IFD0 rational64s[n]!
934
+ 0xcd34 ForwardMatrix3 IFD0 rational64s[n]!
935
+ 0xcd35 IlluminantData1 IFD0 undef!
936
+ 0xcd36 IlluminantData2 IFD0 undef!
937
+ 0xcd37 IlluminantData3 IFD0 undef!
938
+ 0xcd38 MaskSubArea SubIFD no
939
+ 0xcd39 ProfileHueSatMapData3 IFD0 float[n]!
940
+ 0xcd3a ReductionMatrix3 IFD0 rational64s[n]!
941
+ 0xcd3b RGBTables IFD0 undef!
928
942
  0xea1c Padding ExifIFD undef!
929
943
  0xea1d OffsetSchema ExifIFD int32s!
930
944
  0xfde8 OwnerName ExifIFD string/
@@ -1730,6 +1744,9 @@ These tags belong to the ExifTool XMP-crd family 1 group.
1730
1744
  LookParametersLookTable string/_
1731
1745
  LookParametersProcessVersion string/_
1732
1746
  LookParametersToneCurvePV2012 string/_+
1747
+ LookParametersToneCurvePV2012Blue string/_+
1748
+ LookParametersToneCurvePV2012Green string/_+
1749
+ LookParametersToneCurvePV2012Red string/_+
1733
1750
  LookParametersVersion string/_
1734
1751
  LookSupportsAmount string/_
1735
1752
  LookSupportsMonochrome string/_
@@ -2059,6 +2076,9 @@ These tags belong to the ExifTool XMP-crd family 1 group.
2059
2076
  LookTable string
2060
2077
  ProcessVersion string
2061
2078
  ToneCurvePV2012 string+
2079
+ ToneCurvePV2012Blue string+
2080
+ ToneCurvePV2012Green string+
2081
+ ToneCurvePV2012Red string+
2062
2082
  Version string
2063
2083
 
2064
2084
  =head3 XMP RetouchArea Struct
@@ -2394,6 +2414,9 @@ These tags belong to the ExifTool XMP-crs family 1 group.
2394
2414
  LookParametersLookTable string_
2395
2415
  LookParametersProcessVersion string_
2396
2416
  LookParametersToneCurvePV2012 string_+
2417
+ LookParametersToneCurvePV2012Blue string_+
2418
+ LookParametersToneCurvePV2012Green string_+
2419
+ LookParametersToneCurvePV2012Red string_+
2397
2420
  LookParametersVersion string_
2398
2421
  LookSupportsAmount string_
2399
2422
  LookSupportsMonochrome string_
@@ -3487,6 +3510,7 @@ These tags belong to the ExifTool XMP-iptcCore family 1 group.
3487
3510
 
3488
3511
  Tag Name Writable
3489
3512
  -------- --------
3513
+ AltTextAccessibility lang-alt
3490
3514
  CountryCode string
3491
3515
  CreatorContactInfo ContactInfo Struct
3492
3516
  CreatorCity string_
@@ -3497,6 +3521,7 @@ These tags belong to the ExifTool XMP-iptcCore family 1 group.
3497
3521
  CreatorWorkEmail string_
3498
3522
  CreatorWorkTelephone string_
3499
3523
  CreatorWorkURL string_
3524
+ ExtDescrAccessibility lang-alt
3500
3525
  IntellectualGenre string
3501
3526
  Location string
3502
3527
  Scene string+
@@ -3519,7 +3544,8 @@ These tags belong to the ExifTool XMP-iptcCore family 1 group.
3519
3544
 
3520
3545
  This table contains tags defined by the IPTC Extension schema version 1.5.
3521
3546
  The actual namespace prefix is "Iptc4xmpExt", but ExifTool shortens this for
3522
- the family 1 group name. (see L<http://www.iptc.org/IPTC4XMP/>)
3547
+ the family 1 group name. (see
3548
+ L<http://www.iptc.org/standards/photo-metadata/iptc-standard/>)
3523
3549
 
3524
3550
  These tags belong to the ExifTool XMP-iptcExt family 1 group.
3525
3551
 
@@ -3595,6 +3621,7 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
3595
3621
  ShownEvent Entity Struct+
3596
3622
  ShownEventIdentifier string_+
3597
3623
  ShownEventName lang-alt_+
3624
+ EventID string+
3598
3625
  ExternalMetadataLink string+
3599
3626
  FeedIdentifier string
3600
3627
  Genre CVTermDetails Struct+
@@ -5937,6 +5964,7 @@ Unknown only to reduce the volume of the normal output.
5937
5964
  0x0023 FocusPointWrap no
5938
5965
  0x0025 ManualFocusPointIllumination no
5939
5966
  0x0026 AF-AssistIlluminator no
5967
+ 0x0027 ManualFocusRingInAFMode no
5940
5968
  0x0029 ISOStepSize no
5941
5969
  0x002a ExposureControlStepSize no
5942
5970
  0x002b EasyExposureCompensation no
@@ -6115,6 +6143,7 @@ Unknown only to reduce the volume of the normal output.
6115
6143
  0x016c LimitAF-AreaModeSelWideLAnimals? no
6116
6144
  0x016e AFAreaMode no
6117
6145
  0x0170 PreferSubSelectorCenter no
6146
+ 0x0171 KeepExposureWithTeleconverter no
6118
6147
  0x0174 FocusPointSelectionSpeed no
6119
6148
 
6120
6149
  =head2 Canon Tags
@@ -7356,6 +7385,7 @@ WB tags for the Canon G9.
7356
7385
  19 LiveViewShooting int16s
7357
7386
  20 FocusDistanceUpper int16u
7358
7387
  21 FocusDistanceLower int16u
7388
+ 23 ShutterMode int16s
7359
7389
  25 FlashExposureLock int16s
7360
7390
  61 RFLensType int16u
7361
7391
 
@@ -15409,6 +15439,7 @@ such as the OM E-M5.
15409
15439
  44 Model no
15410
15440
  131 DateTime1 no
15411
15441
  157 DateTime2 no
15442
+ 383 LensModel no
15412
15443
 
15413
15444
  =head3 Olympus scrn2 Tags
15414
15445
 
@@ -15619,6 +15650,7 @@ These tags are used in Panasonic/Leica cameras.
15619
15650
  0x00d1 ISO int32u
15620
15651
  0x00d2 MonochromeGrainEffect int16u
15621
15652
  0x00d6 NoiseReductionStrength rational64s
15653
+ 0x00e4 LensTypeModel int16u
15622
15654
  0x0e00 PrintIM PrintIM
15623
15655
  0x2003 TimeInfo Panasonic TimeInfo
15624
15656
  0x8000 MakerNoteVersion undef
@@ -15976,6 +16008,7 @@ These tags are used in Pentax/Asahi cameras.
15976
16008
  0x008b ISO int32u
15977
16009
  0x0092 IntervalShooting int16u[2]
15978
16010
  0x0095 SkinToneCorrection int8s[2]
16011
+ SkinToneCorrection int8s[3]
15979
16012
  0x0096 ClarityControl int8s[2]
15980
16013
  0x0200 BlackPoint int16u[4]
15981
16014
  0x0201 WhitePoint int16u[4]
@@ -16008,6 +16041,8 @@ These tags are used in Pentax/Asahi cameras.
16008
16041
  0x0215 CameraInfo Pentax CameraInfo
16009
16042
  0x0216 BatteryInfo Pentax BatteryInfo
16010
16043
  0x021b SaturationInfo? no
16044
+ 0x021c ColorMatrixA2 undef[18]
16045
+ 0x021d ColorMatrixB2 undef[18]
16011
16046
  0x021f AFInfo Pentax AFInfo
16012
16047
  0x0220 HuffmanTable? no
16013
16048
  0x0221 KelvinWB Pentax KelvinWB
@@ -17036,11 +17071,13 @@ Camera orientation information written by the Gear 360 (SM-C200).
17036
17071
 
17037
17072
  Tags extracted from the trailer of JPEG images written when using certain
17038
17073
  features (such as "Sound & Shot" or "Shot & More") from Samsung models such
17039
- as the Galaxy S4 and Tab S.
17074
+ as the Galaxy S4 and Tab S, and from the 'sefd' atom in HEIC images from the
17075
+ Samsung S10+.
17040
17076
 
17041
17077
  Tag Name Writable
17042
17078
  -------- --------
17043
17079
  DepthMapData no
17080
+ DepthMapData2 no
17044
17081
  DepthMapName no
17045
17082
  DualCameraImage no
17046
17083
  DualCameraImageName no
@@ -17048,9 +17085,11 @@ as the Galaxy S4 and Tab S.
17048
17085
  EmbeddedAudioFile no
17049
17086
  EmbeddedAudioFileName no
17050
17087
  EmbeddedImage no
17088
+ EmbeddedImage2 no
17051
17089
  EmbeddedImageName no
17052
17090
  EmbeddedVideoFile no
17053
17091
  EmbeddedVideoType no
17092
+ MCCData no
17054
17093
  SingleShotDepthMap no
17055
17094
  SingleShotMeta Samsung SingleShotMeta
17056
17095
  SurroundShotVideo no
@@ -19247,6 +19286,8 @@ some models when the ExtractEmbedded option is used.
19247
19286
  0x851d GPSDateStamp no
19248
19287
  0xe303 WhiteBalance no
19249
19288
  0xe304 DateTime no
19289
+ 0xe43b PitchRollYaw no
19290
+ 0xe44b Accelerometer no
19250
19291
 
19251
19292
  =head2 SonyIDC Tags
19252
19293
 
@@ -20493,6 +20534,7 @@ L<https://github.com/gopro/gpmf-parser> for details about this format.
20493
20534
  'EISA' ElectronicImageStabilization no
20494
20535
  'EMPT' Empty? no
20495
20536
  'ESCS' EscapeStatus? no
20537
+ 'EXPT' MaximumShutterAngle no
20496
20538
  'FACE' FaceDetected no
20497
20539
  'FCNM' FaceNumbers no
20498
20540
  'FMWR' FirmwareVersion no
@@ -20510,7 +20552,11 @@ L<https://github.com/gopro/gpmf-parser> for details about this format.
20510
20552
  'LNED' LocalPositionNED no
20511
20553
  'MAGN' Magnetometer no
20512
20554
  'MINF' Model no
20555
+ 'MTRX' AccelerometerMatrix no
20556
+ 'MUID' MediaUniqueID no
20513
20557
  'OREN' AutoRotation no
20558
+ 'ORIN' InputOrientation no
20559
+ 'ORIO' OutputOrientation no
20514
20560
  'PHDR' HDRSetting no
20515
20561
  'PIMN' AutoISOMin no
20516
20562
  'PIMX' AutoISOMax no
@@ -20527,6 +20573,7 @@ L<https://github.com/gopro/gpmf-parser> for details about this format.
20527
20573
  'SHUT' ExposureTimes no
20528
20574
  'SIMU' ScaledIMU no
20529
20575
  'SIUN' SIUnits? no
20576
+ 'SROT' SensorReadoutTime no
20530
20577
  'STMP' TimeStamp no
20531
20578
  'STNM' StreamName? no
20532
20579
  'STRM' NestedSignalStream GoPro GPMF
@@ -20534,6 +20581,7 @@ L<https://github.com/gopro/gpmf-parser> for details about this format.
20534
20581
  'TMPC' CameraTemperature no
20535
20582
  'TSMP' TotalSamples? no
20536
20583
  'TYPE' StructureType? no
20584
+ 'UNIF' InputUniformity no
20537
20585
  'UNIT' Units? no
20538
20586
  'VERS' MetadataVersion no
20539
20587
  'VFOV' FieldOfView no
@@ -21803,16 +21851,19 @@ even if it is not listed in this table.
21803
21851
 
21804
21852
  =head2 Jpeg2000 Tags
21805
21853
 
21806
- The tags below are extracted from JPEG 2000 images and the JUMBF metadata in
21807
- JPEG images. Note that ExifTool currently writes only EXIF, IPTC and XMP
21808
- tags in Jpeg2000 images.
21854
+ The tags below are found in JPEG 2000 images and the JUMBF metadata in JPEG
21855
+ images, but not all of these are extracted. Note that ExifTool currently
21856
+ writes only EXIF, IPTC and XMP tags in Jpeg2000 images.
21809
21857
 
21810
21858
  Tag ID Tag Name Writable
21811
21859
  ------ -------- --------
21812
21860
  'Exif' EXIF EXIF
21813
21861
  'asoc' Association Jpeg2000
21862
+ 'bfdb' BinaryDataType no
21814
21863
  'bfil' BinaryFilter no
21864
+ 'bidb' BinaryData no
21815
21865
  'bpcc' BitsPerComponent no
21866
+ 'cbor' CBORData CBOR
21816
21867
  'cdef' ComponentDefinition no
21817
21868
  'cgrp' ColorGroup no
21818
21869
  'chck' DigitalSignature no
@@ -21866,6 +21917,7 @@ tags in Jpeg2000 images.
21866
21917
  UUID-GeoJP2 EXIF
21867
21918
  UUID-Photoshop Photoshop
21868
21919
  UUID-Signature no
21920
+ UUID-C2PAClaimSignature -
21869
21921
  UUID-Unknown no
21870
21922
  'xml ' XML XMP XML
21871
21923
  XMP -
@@ -21904,13 +21956,13 @@ tags in Jpeg2000 images.
21904
21956
 
21905
21957
  Information extracted from the JUMBF description box.
21906
21958
 
21907
- Tag ID Tag Name Writable
21908
- ------ -------- --------
21909
- 'jumd-flags' JUMDFlags no
21910
- 'jumd-id' JUMDID no
21911
- 'jumd-label' JUMDLabel no
21912
- 'jumd-sig' JUMDSignature no
21913
- 'jumd-type' JUMDType no
21959
+ Tag ID Tag Name Writable
21960
+ ------ -------- --------
21961
+ 'id' JUMDID no
21962
+ 'label' JUMDLabel no
21963
+ 'sig' JUMDSignature no
21964
+ 'toggles' JUMDToggles? no
21965
+ 'type' JUMDType no
21914
21966
 
21915
21967
  =head3 Jpeg2000 CaptureResolution Tags
21916
21968
 
@@ -21947,6 +21999,24 @@ JSON-formatted files.
21947
21999
  ON1_SettingsMetadataUsage no
21948
22000
  ON1_SettingsMetadataVisibleToUser no
21949
22001
 
22002
+ =head2 CBOR Tags
22003
+
22004
+ The tags below are extracted from CBOR (Concise Binary Object
22005
+ Representation) metadata. The C2PA specification uses this format for some
22006
+ metadata. As well as these tags, ExifTool will read any existing tags.
22007
+
22008
+ Tag Name Writable
22009
+ -------- --------
22010
+ AuthorIdentifier no
22011
+ AuthorName no
22012
+ DocumentID no
22013
+ Format no
22014
+ InstanceID no
22015
+ Relationship no
22016
+ ThumbnailHash no+
22017
+ ThumbnailURL no
22018
+ Title no
22019
+
21950
22020
  =head2 PLIST Tags
21951
22021
 
21952
22022
  Apple Property List tags. ExifTool reads both XML and binary-format PLIST
@@ -23942,6 +24012,8 @@ available. Alternate language tags and values containing special characters
23942
24012
  if the Compress option is used and Compress::Zlib is available. Raw profile
23943
24013
  information is always created as compressed zTXt if Compress::Zlib is
23944
24014
  available, or tEXt otherwise. Standard XMP is written as uncompressed iTXt.
24015
+ User-defined tags may set an 'iTXt' flag in the tag definition to be written
24016
+ only as iTXt.
23945
24017
 
23946
24018
  Alternate languages are accessed by suffixing the tag name with a '-',
23947
24019
  followed by an RFC 3066 language code (eg. "PNG:Comment-fr", or
@@ -24375,6 +24447,7 @@ Tags extracted from DPX (Digital Picture Exchange) images.
24375
24447
  1532 SourceCreateDate no
24376
24448
  1556 InputDeviceName no
24377
24449
  1588 InputDeviceSerialNumber no
24450
+ 1628 AspectRatio no
24378
24451
  1724 OriginalFrameRate no
24379
24452
  1728 ShutterAngle no
24380
24453
  1732 FrameID no
@@ -24590,6 +24663,16 @@ Tags extracted from FEI1 and FEI2 extended headers.
24590
24663
  868 PhasePlatePosition no
24591
24664
  872 ObjectiveAperture no
24592
24665
 
24666
+ =head2 LIF Tags
24667
+
24668
+ Tags extracted from Leica Image Format (LIF) imaging files. As well as the
24669
+ tags listed below, all available information is extracted from the
24670
+ XML-format metadata in the LIF header.
24671
+
24672
+ Tag Name Writable
24673
+ -------- --------
24674
+ TimeStampList no
24675
+
24593
24676
  =head2 MIFF Tags
24594
24677
 
24595
24678
  The MIFF (Magick Image File Format) format allows aribrary tag names to be
@@ -24776,6 +24859,18 @@ specification.
24776
24859
  'software' Software no
24777
24860
  'view' View no
24778
24861
 
24862
+ =head3 Other PFM Tags
24863
+
24864
+ Tags extracted from Portable FloatMap images. See
24865
+ L<http://www.pauldebevec.com/Research/HDR/PFM/> for the specification.
24866
+
24867
+ Tag Name Writable
24868
+ -------- --------
24869
+ ByteOrder no
24870
+ ColorSpace no
24871
+ ImageHeight no
24872
+ ImageWidth no
24873
+
24779
24874
  =head2 PDF Tags
24780
24875
 
24781
24876
  The tags listed in the PDF tables below are those which are used by ExifTool
@@ -24954,11 +25049,12 @@ This is the PDF document catalog.
24954
25049
 
24955
25050
  Tag ID Tag Name Writable
24956
25051
  ------ -------- --------
24957
- 'Cs1' Cs1 PDF Cs1
25052
+ 'CS0' CS0 PDF ICCBased
25053
+ 'Cs1' Cs1 PDF ICCBased
24958
25054
  'DefaultCMYK' DefaultCMYK PDF DefaultRGB
24959
25055
  'DefaultRGB' DefaultRGB PDF DefaultRGB
24960
25056
 
24961
- =head3 PDF Cs1 Tags
25057
+ =head3 PDF ICCBased Tags
24962
25058
 
24963
25059
  Tag ID Tag Name Writable
24964
25060
  ------ -------- --------
@@ -24970,12 +25066,6 @@ This is the PDF document catalog.
24970
25066
  ------ -------- --------
24971
25067
  'ICCBased' ICCBased PDF ICCBased
24972
25068
 
24973
- =head3 PDF ICCBased Tags
24974
-
24975
- Tag ID Tag Name Writable
24976
- ------ -------- --------
24977
- '_stream' _stream ICC_Profile
24978
-
24979
25069
  =head3 PDF Properties Tags
24980
25070
 
24981
25071
  Tag ID Tag Name Writable
@@ -25087,8 +25177,8 @@ Additional document permissions imposed by digital signatures.
25087
25177
 
25088
25178
  =head2 ID3 Tags
25089
25179
 
25090
- ExifTool extracts ID3 and Lyrics3 information from MP3, MPEG, AIFF, OGG,
25091
- FLAC, APE, MPC and RealAudio files. ID3v2 tags which support multiple
25180
+ ExifTool extracts ID3 and Lyrics3 information from MP3, MPEG, WAV, AIFF,
25181
+ OGG, FLAC, APE, MPC and RealAudio files. ID3v2 tags which support multiple
25092
25182
  languages (eg. Comment and Lyrics) are extracted by specifying the tag name,
25093
25183
  followed by a dash ('-'), then a 3-character ISO 639-2 language code (eg.
25094
25184
  "Comment-spa"). See L<http://www.id3.org/> for the official ID3
@@ -25980,7 +26070,7 @@ According to the specification, integer-format QuickTime date/time tags
25980
26070
  should be stored as UTC. Unfortunately, digital cameras often store local
25981
26071
  time values instead (presumably because they don't know the time zone). For
25982
26072
  this reason, by default ExifTool does not assume a time zone for these
25983
- values. However, if the QuickTimeUTC API option is set, then ExifTool will
26073
+ values. However, if the API QuickTimeUTC option is set, then ExifTool will
25984
26074
  assume these values are properly stored as UTC, and will convert them to
25985
26075
  local time when extracting.
25986
26076
 
@@ -26018,6 +26108,7 @@ for the official specification.
26018
26108
  'pict' PreviewPICT no
26019
26109
  'pnot' Preview QuickTime Preview
26020
26110
  'prrt' ARDroneTelemetry no
26111
+ 'sefd' SamsungTrailer Samsung Trailer
26021
26112
  'skip' CanonSkip Canon Skip
26022
26113
  PreviewImage no
26023
26114
  Skip? no
@@ -26059,10 +26150,10 @@ Tags found in Pittasoft Blackvue dashcam "free" data.
26059
26150
 
26060
26151
  =head3 QuickTime Stream Tags
26061
26152
 
26062
- Timed metadata extracted from QuickTime media data and some AVI videos when
26063
- the ExtractEmbedded option is used. Although most of these tags are
26064
- combined into the single table below, ExifTool currently reads 51 different
26065
- formats of timed GPS metadata from video files.
26153
+ The tags below are extracted from timed metadata in QuickTime and other
26154
+ formats of video files when the ExtractEmbedded option is used. Although
26155
+ most of these tags are combined into the single table below, ExifTool
26156
+ currently reads 57 different formats of timed GPS metadata from video files.
26066
26157
 
26067
26158
  Tag Name Writable
26068
26159
  -------- --------
@@ -26118,8 +26209,10 @@ formats of timed GPS metadata from video files.
26118
26209
  camm6 QuickTime camm6
26119
26210
  camm7 QuickTime camm7
26120
26211
  fdsc GoPro fdsc
26121
- gpmd_GoPro GoPro GPMF
26212
+ gpmd_Kingslim QuickTime Stream
26122
26213
  gpmd_Rove QuickTime Stream
26214
+ gpmd_FMAS QuickTime Stream
26215
+ gpmd_GoPro GoPro GPMF
26123
26216
  marl QuickTime marl
26124
26217
  mebx QuickTime Keys
26125
26218
  mett Parrot mett
@@ -26547,21 +26640,42 @@ QuickTimeHandler option may be set to 0 to avoid this.
26547
26640
  =head3 QuickTime iTunesInfo Tags
26548
26641
 
26549
26642
  ExifTool will extract any iTunesInfo tags that exist, even if they are not
26550
- defined in this table.
26643
+ defined in this table. These tags belong to the family 1 "iTunes" group,
26644
+ and are not currently writable.
26551
26645
 
26552
26646
  Tag ID Tag Name Writable
26553
26647
  ------ -------- --------
26648
+ 'ARTISTS' Artists no
26649
+ 'BARCODE' Barcode no
26650
+ 'CATALOGNUMBER' CatalogNumber no
26554
26651
  'DISCNUMBER' DiscNumber no
26652
+ 'Dynamic Range (DR)' DynamicRange no
26653
+ 'Dynamic Range (R128)' DynamicRangeR128 no
26555
26654
  'Encoding Params' EncodingParams QuickTime EncodingParams
26655
+ 'LABEL' Label no
26656
+ 'MEDIA' Media no
26657
+ 'MOOD' Mood no
26658
+ 'Peak Level (R128)' PeakLevelR128 no
26659
+ 'Peak Level (Sample)' PeakLevelSample no
26660
+ 'RATING' Rating no
26661
+ 'SCRIPT' Script no
26556
26662
  'TRACKNUMBER' TrackNumber no
26663
+ 'Volume Level (R128)' VolumeLevelR128 no
26664
+ 'Volume Level (ReplayGain)' ReplayVolumeLevel no
26557
26665
  'iTunEXTC' ContentRating no
26558
26666
  'iTunMOVI' iTunMOVI PLIST
26559
26667
  'iTunNORM' VolumeNormalization no
26560
26668
  'iTunSMPB' iTunSMPB no
26561
26669
  'iTunes_CDDB_1' CDDB1Info no
26562
26670
  'iTunes_CDDB_TrackNumber' CDDBTrackNumber no
26671
+ 'initialkey' InitialKey no
26672
+ 'originaldate' OriginalDate no
26673
+ 'originalyear' OriginalYear no
26563
26674
  'popularimeter' Popularimeter no
26675
+ 'replaygain_track_gain' ReplayTrackGain no
26676
+ 'replaygain_track_peak' ReplayTrackPeak no
26564
26677
  'tool' iTunTool no
26678
+ '~length' Length no
26565
26679
 
26566
26680
  =head3 QuickTime EncodingParams Tags
26567
26681
 
@@ -27216,6 +27330,7 @@ the config file.
27216
27330
  'lrcu' LyricsURI string
27217
27331
  'lvlm' LevelMeter? rational64s
27218
27332
  'manu' Make no
27333
+ 'mcvr' PreviewImage string
27219
27334
  'meta' Meta QuickTime Meta
27220
27335
  'modl' Model no
27221
27336
  'name' Name string
@@ -30076,6 +30191,7 @@ sub-documents, but the Duration is calculated for the full video.
30076
30191
  'gps0' GPSTrack QuickTime Stream
30077
30192
  'gsen' GSensor QuickTime Stream
30078
30193
  'iXML' IXML XMP XML
30194
+ 'id3 ' ID3 ID3
30079
30195
  'inst' Instrument RIFF Instrument
30080
30196
  'labl' CuePointLabel no
30081
30197
  'list' ListType no
@@ -30197,6 +30313,7 @@ by some software.
30197
30313
  'ISTD' ProductionStudio no
30198
30314
  'ISTR' Starring no
30199
30315
  'ITCH' Technician no
30316
+ 'ITRK' TrackNumber no
30200
30317
  'IWMU' WatermarkURL no
30201
30318
  'IWRI' WrittenBy no
30202
30319
  'LANG' Language no
@@ -35101,7 +35218,7 @@ options, but these files are not writable directly.
35101
35218
 
35102
35219
  XAttr tags are extracted using the "xattr" utility. They are extracted if
35103
35220
  any "XAttr*" tag or the MacOS group is specifically requested, or by setting
35104
- the XAttrTags API option to 1 or the RequestAll API option to 2 or higher.
35221
+ the API XAttrTags option to 1 or the API RequestAll option to 2 or higher.
35105
35222
  And they are extracted by default from MacOS "._" files when reading
35106
35223
  these files directly.
35107
35224
 
@@ -35123,7 +35240,7 @@ these files directly.
35123
35240
 
35124
35241
  MDItem tags are extracted using the "mdls" utility. They are extracted if
35125
35242
  any "MDItem*" tag or the MacOS group is specifically requested, or by
35126
- setting the MDItemTags API option to 1 or the RequestAll API option to 2 or
35243
+ setting the API MDItemTags option to 1 or the API RequestAll option to 2 or
35127
35244
  higher. Note that these tags do not necessarily reflect the current
35128
35245
  metadata of a file -- it may take some time for the MacOS mdworker daemon to
35129
35246
  index the file after a metadata change.
@@ -35491,11 +35608,15 @@ values, may created via the ExifTool configuration file.
35491
35608
  GPS:GPSLatitudeRef
35492
35609
  GPSLatitude QuickTime:GPSCoordinates no
35493
35610
  GPSLatitude QuickTime:LocationInformation no
35611
+ GPSLatitude Sony:GPSLatitude no
35612
+ Sony:GPSLatitudeRef
35494
35613
  GPSLatitudeRef XMP-exif:GPSLatitude no
35495
35614
  GPSLongitude GPS:GPSLongitude no
35496
35615
  GPS:GPSLongitudeRef
35497
35616
  GPSLongitude QuickTime:GPSCoordinates no
35498
35617
  GPSLongitude QuickTime:LocationInformation no
35618
+ GPSLongitude Sony:GPSLongitude no
35619
+ Sony:GPSLongitudeRef
35499
35620
  GPSLongitudeRef XMP-exif:GPSLongitude no
35500
35621
  GPSPosition GPSLatitude no
35501
35622
  GPSLongitude
@@ -13,10 +13,11 @@ package Image::ExifTool::Torrent;
13
13
  use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
+ use Image::ExifTool::XMP;
16
17
 
17
- $VERSION = '1.04';
18
+ $VERSION = '1.05';
18
19
 
19
- sub ReadBencode($$);
20
+ sub ReadBencode($$$);
20
21
  sub ExtractTags($$$;$$@);
21
22
 
22
23
  # tags extracted from BitTorrent files
@@ -99,12 +100,12 @@ sub ReadMore($$)
99
100
 
100
101
  #------------------------------------------------------------------------------
101
102
  # Read bencoded value
102
- # Inputs: 0) input file, 1) buffer (pos must be set to current position)
103
+ # Inputs: 0) ExifTool ref, 1) input file, 2) buffer (pos must be set to current position)
103
104
  # Returns: HASH ref, ARRAY ref, SCALAR ref, SCALAR, or undef on error or end of data
104
105
  # Notes: Sets BencodeError element of RAF on any error
105
- sub ReadBencode($$)
106
+ sub ReadBencode($$$)
106
107
  {
107
- my ($raf, $dataPt) = @_;
108
+ my ($et, $raf, $dataPt) = @_;
108
109
 
109
110
  # read more if necessary (keep a minimum of 64 bytes in the buffer)
110
111
  my $pos = pos($$dataPt);
@@ -123,21 +124,21 @@ sub ReadBencode($$)
123
124
  } elsif ($tok eq 'd') { # dictionary
124
125
  $val = { };
125
126
  for (;;) {
126
- my $k = ReadBencode($raf, $dataPt);
127
+ my $k = ReadBencode($et, $raf, $dataPt);
127
128
  last unless defined $k;
128
129
  # the key must be a byte string
129
130
  if (ref $k) {
130
131
  ref $k ne 'SCALAR' and $$raf{BencodeError} = 'Bad dictionary key', last;
131
132
  $k = $$k;
132
133
  }
133
- my $v = ReadBencode($raf, $dataPt);
134
+ my $v = ReadBencode($et, $raf, $dataPt);
134
135
  last unless defined $v;
135
136
  $$val{$k} = $v;
136
137
  }
137
138
  } elsif ($tok eq 'l') { # list
138
139
  $val = [ ];
139
140
  for (;;) {
140
- my $v = ReadBencode($raf, $dataPt);
141
+ my $v = ReadBencode($et, $raf, $dataPt);
141
142
  last unless defined $v;
142
143
  push @$val, $v;
143
144
  }
@@ -165,8 +166,14 @@ sub ReadBencode($$)
165
166
  }
166
167
  if (defined $value) {
167
168
  # return as binary data unless it is a reasonable-length ASCII string
168
- if (length($value) > 256 or $value =~ /[^\t\x20-\x7e]/) {
169
+ if (length($value) > 256) {
169
170
  $val = \$value;
171
+ } elsif ($value =~ /[^\t\x20-\x7e]/) {
172
+ if (Image::ExifTool::XMP::IsUTF8(\$value) >= 0) {
173
+ $val = $et->Decode($value, 'UTF8');
174
+ } else {
175
+ $val = \$value;
176
+ }
170
177
  } else {
171
178
  $val = $value;
172
179
  }
@@ -206,7 +213,7 @@ sub ExtractTags($$$;$$@)
206
213
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $id) or next;
207
214
  if (ref $val eq 'ARRAY') {
208
215
  if ($$tagInfo{JoinPath}) {
209
- $val = join '/', @$val;
216
+ $val = join '/', map { ref $_ ? '(Binary data)' : $_ } @$val;
210
217
  } else {
211
218
  push @more, @$val;
212
219
  next if ref $more[0] eq 'ARRAY'; # continue expanding nested lists
@@ -273,7 +280,7 @@ sub ProcessTorrent($$)
273
280
  my $raf = $$dirInfo{RAF};
274
281
  my $buff = '';
275
282
  pos($buff) = 0;
276
- my $dict = ReadBencode($raf, \$buff);
283
+ my $dict = ReadBencode($et, $raf, \$buff);
277
284
  my $err = $$raf{BencodeError};
278
285
  $et->Warn("Bencode error: $err") if $err;
279
286
  if (ref $dict eq 'HASH' and ($$dict{announce} or $$dict{'created by'})) {
@@ -293,6 +293,7 @@ sub WritePDF($$)
293
293
  my $newTool = new Image::ExifTool;
294
294
  $newTool->Options(List => 1);
295
295
  $newTool->Options(Password => $et->Options('Password'));
296
+ $newTool->Options(NoPDFList => $et->Options('NoPDFList'));
296
297
  $$newTool{PDF_CAPTURE} = \%capture;
297
298
  my $info = $newTool->ImageInfo($raf, 'XMP', 'PDF:*', 'Error', 'Warning');
298
299
  # not a valid PDF file unless we got a version number
@@ -179,6 +179,8 @@ sub BuildTextChunk($$$$$)
179
179
  $tag =~ s/-$lang$//; # remove language code from tagID
180
180
  } elsif ($$et{OPTIONS}{Charset} ne 'Latin' and $val =~ /[\x80-\xff]/) {
181
181
  $iTXt = 1; # write as iTXt if it contains non-Latin special characters
182
+ } elsif ($$tagInfo{iTXt}) {
183
+ $iTXt = 1; # write as iTXt if specified in user-defined tag
182
184
  }
183
185
  }
184
186
  if ($comp) {
@@ -317,7 +317,7 @@ sub FormatQTValue($$;$$)
317
317
  if ($writable and $qtFormat{$writable}) {
318
318
  $flags = $qtFormat{$writable};
319
319
  } else {
320
- $flags = $qtFormat{$format} || 0;
320
+ $flags = $qtFormat{$format || 0} || 0;
321
321
  }
322
322
  } elsif ($$valPt =~ /^\xff\xd8\xff/) {
323
323
  $flags = 0x0d; # JPG
@@ -849,7 +849,7 @@ sub WriteQuickTime($$$)
849
849
  # --> hold this terminator to the end
850
850
  $term = $hdr;
851
851
  } elsif ($n != 0) {
852
- $et->Error('File format error');
852
+ $et->Error("Unknown $n bytes at end of file", 1);
853
853
  }
854
854
  last;
855
855
  }
@@ -1089,7 +1089,9 @@ sub WriteQuickTime($$$)
1089
1089
  $$et{CHANGED} = $oldChanged if $$et{DemoteErrors} > 1;
1090
1090
  delete $$et{DemoteErrors};
1091
1091
  }
1092
- if (defined $newData and not length $newData and $$tagTablePtr{PERMANENT}) {
1092
+ if (defined $newData and not length $newData and ($$tagInfo{Permanent} or
1093
+ ($$tagTablePtr{PERMANENT} and not defined $$tagInfo{Permanent})))
1094
+ {
1093
1095
  # do nothing if trying to delete tag from a PERMANENT table
1094
1096
  $$et{CHANGED} = $oldChanged;
1095
1097
  undef $newData;
@@ -1097,7 +1099,9 @@ sub WriteQuickTime($$$)
1097
1099
  $$et{CUR_WRITE_GROUP} = $oldWriteGroup;
1098
1100
  SetByteOrder('MM');
1099
1101
  # add back header if necessary
1100
- if ($start and defined $newData and length $newData) {
1102
+ if ($start and defined $newData and (length $newData or
1103
+ (defined $$tagInfo{Permanent} and not $$tagInfo{Permanent})))
1104
+ {
1101
1105
  $newData = substr($buff,0,$start) . $newData;
1102
1106
  $$_[1] += $start foreach @chunkOffset;
1103
1107
  }