exiftool_vendored 12.76.1 → 12.80.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +79 -4
- data/bin/MANIFEST +27 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/config_files/acdsee.config +37 -57
- data/bin/config_files/example.config +16 -2
- data/bin/exiftool +84 -29
- data/bin/lib/Image/ExifTool/Canon.pm +12 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +7 -1
- data/bin/lib/Image/ExifTool/Exif.pm +52 -4
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -0
- data/bin/lib/Image/ExifTool/GPS.pm +5 -3
- data/bin/lib/Image/ExifTool/GeoLang/cs.pm +978 -0
- data/bin/lib/Image/ExifTool/GeoLang/de.pm +1975 -0
- data/bin/lib/Image/ExifTool/GeoLang/en_ca.pm +44 -0
- data/bin/lib/Image/ExifTool/GeoLang/en_gb.pm +124 -0
- data/bin/lib/Image/ExifTool/GeoLang/es.pm +2921 -0
- data/bin/lib/Image/ExifTool/GeoLang/fi.pm +1116 -0
- data/bin/lib/Image/ExifTool/GeoLang/fr.pm +3171 -0
- data/bin/lib/Image/ExifTool/GeoLang/it.pm +2750 -0
- data/bin/lib/Image/ExifTool/GeoLang/ja.pm +10256 -0
- data/bin/lib/Image/ExifTool/GeoLang/ko.pm +4499 -0
- data/bin/lib/Image/ExifTool/GeoLang/nl.pm +1270 -0
- data/bin/lib/Image/ExifTool/GeoLang/pl.pm +3019 -0
- data/bin/lib/Image/ExifTool/GeoLang/ru.pm +18220 -0
- data/bin/lib/Image/ExifTool/GeoLang/sk.pm +441 -0
- data/bin/lib/Image/ExifTool/GeoLang/sv.pm +714 -0
- data/bin/lib/Image/ExifTool/GeoLang/tr.pm +452 -0
- data/bin/lib/Image/ExifTool/GeoLang/zh_cn.pm +2225 -0
- data/bin/lib/Image/ExifTool/GeoLang/zh_tw.pm +72 -0
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +775 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +8 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +2 -1
- data/bin/lib/Image/ExifTool/Import.pm +5 -2
- data/bin/lib/Image/ExifTool/JSON.pm +15 -10
- data/bin/lib/Image/ExifTool/MWG.pm +1 -0
- data/bin/lib/Image/ExifTool/MacOS.pm +19 -4
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -2
- data/bin/lib/Image/ExifTool/Ogg.pm +3 -2
- data/bin/lib/Image/ExifTool/Olympus.pm +3 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +17 -17
- data/bin/lib/Image/ExifTool/PDF.pm +5 -5
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +183 -11
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +253 -237
- data/bin/lib/Image/ExifTool/README +6 -5
- data/bin/lib/Image/ExifTool/TagLookup.pm +2624 -2520
- data/bin/lib/Image/ExifTool/TagNames.pod +184 -4
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +15 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +59 -8
- data/bin/lib/Image/ExifTool/XMP.pm +17 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +64 -0
- data/bin/lib/Image/ExifTool.pm +249 -47
- data/bin/lib/Image/ExifTool.pod +57 -25
- data/bin/perl-Image-ExifTool.spec +2 -2
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +22 -2
@@ -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 27593 tags, with 17336 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
|
@@ -376,6 +376,7 @@ for the official EXIF 2.32 specification.
|
|
376
376
|
0x0110 Model IFD0 string
|
377
377
|
0x0111 StripOffsets - no
|
378
378
|
OtherImageStart - no
|
379
|
+
PreviewJXLStart - no
|
379
380
|
StripOffsets - no
|
380
381
|
PreviewImageStart IFD0 int32u*
|
381
382
|
PreviewImageStart All int32u*
|
@@ -385,6 +386,7 @@ for the official EXIF 2.32 specification.
|
|
385
386
|
0x0116 RowsPerStrip IFD0 int32u!
|
386
387
|
0x0117 StripByteCounts - no
|
387
388
|
OtherImageLength - no
|
389
|
+
PreviewJXLLength - no
|
388
390
|
StripByteCounts - no
|
389
391
|
PreviewImageLength IFD0 int32u*
|
390
392
|
PreviewImageLength All int32u*
|
@@ -1360,6 +1362,7 @@ L<http://www.adobe.com/devnet/xmp/> for the official XMP specification.
|
|
1360
1362
|
--------- --------
|
1361
1363
|
aas XMP aas
|
1362
1364
|
acdsee XMP acdsee
|
1365
|
+
acdsee-rs XMP ACDSeeRegions
|
1363
1366
|
album XMP Album
|
1364
1367
|
apple-fi XMP apple_fi
|
1365
1368
|
ast Nikon ast
|
@@ -1503,6 +1506,66 @@ These tags belong to the ExifTool XMP-acdsee family 1 group.
|
|
1503
1506
|
Snapshots string/+
|
1504
1507
|
Tagged boolean/
|
1505
1508
|
|
1509
|
+
=head3 XMP ACDSeeRegions Tags
|
1510
|
+
|
1511
|
+
These tags belong to the ExifTool XMP-acdsee-rs family 1 group.
|
1512
|
+
|
1513
|
+
Tag Name Writable
|
1514
|
+
-------- --------
|
1515
|
+
RegionInfoACDSee ACDSeeRegionInfo Struct
|
1516
|
+
ACDSeeRegionAppliedToDimensions ACDSeeDimensions Struct_
|
1517
|
+
ACDSeeRegionAppliedToDimensionsH real/_
|
1518
|
+
ACDSeeRegionAppliedToDimensionsUnit string/_
|
1519
|
+
ACDSeeRegionAppliedToDimensionsW real/_
|
1520
|
+
ACDSeeRegion ACDSeeRegion Struct_+
|
1521
|
+
ACDSeeRegionALGArea ACDSeeArea Struct_+
|
1522
|
+
ACDSeeRegionALGAreaH real/_+
|
1523
|
+
ACDSeeRegionALGAreaW real/_+
|
1524
|
+
ACDSeeRegionALGAreaX real/_+
|
1525
|
+
ACDSeeRegionALGAreaY real/_+
|
1526
|
+
ACDSeeRegionDLYArea ACDSeeArea Struct_+
|
1527
|
+
ACDSeeRegionDLYAreaH real/_+
|
1528
|
+
ACDSeeRegionDLYAreaW real/_+
|
1529
|
+
ACDSeeRegionDLYAreaX real/_+
|
1530
|
+
ACDSeeRegionDLYAreaY real/_+
|
1531
|
+
ACDSeeRegionName string/_+
|
1532
|
+
ACDSeeRegionNameAssignType string/_+
|
1533
|
+
ACDSeeRegionType string/_+
|
1534
|
+
|
1535
|
+
=head3 XMP ACDSeeRegionInfo Struct
|
1536
|
+
|
1537
|
+
Field Name Writable
|
1538
|
+
---------- --------
|
1539
|
+
AppliedToDimensions ACDSeeDimensions Struct
|
1540
|
+
RegionList ACDSeeRegion Struct+
|
1541
|
+
|
1542
|
+
=head3 XMP ACDSeeDimensions Struct
|
1543
|
+
|
1544
|
+
Field Name Writable
|
1545
|
+
---------- --------
|
1546
|
+
H real
|
1547
|
+
Unit string
|
1548
|
+
W real
|
1549
|
+
|
1550
|
+
=head3 XMP ACDSeeRegion Struct
|
1551
|
+
|
1552
|
+
Field Name Writable
|
1553
|
+
---------- --------
|
1554
|
+
ALGArea ACDSeeArea Struct
|
1555
|
+
DLYArea ACDSeeArea Struct
|
1556
|
+
Name string
|
1557
|
+
NameAssignType string
|
1558
|
+
Type string
|
1559
|
+
|
1560
|
+
=head3 XMP ACDSeeArea Struct
|
1561
|
+
|
1562
|
+
Field Name Writable
|
1563
|
+
---------- --------
|
1564
|
+
H real
|
1565
|
+
W real
|
1566
|
+
X real
|
1567
|
+
Y real
|
1568
|
+
|
1506
1569
|
=head3 XMP Album Tags
|
1507
1570
|
|
1508
1571
|
Adobe Album namespace tags.
|
@@ -5147,6 +5210,7 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
|
|
5147
5210
|
LocationCreatedCountryCode string_+
|
5148
5211
|
LocationCreatedCountryName string_+
|
5149
5212
|
LocationCreatedGPSAltitude rational_+
|
5213
|
+
LocationCreatedGPSAltitudeRef integer_+
|
5150
5214
|
LocationCreatedGPSLatitude string_+
|
5151
5215
|
LocationCreatedGPSLongitude string_+
|
5152
5216
|
LocationCreatedIdentifier string_+
|
@@ -5160,6 +5224,7 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
|
|
5160
5224
|
LocationShownCountryCode string_+
|
5161
5225
|
LocationShownCountryName string_+
|
5162
5226
|
LocationShownGPSAltitude rational_+
|
5227
|
+
LocationShownGPSAltitudeRef integer_+
|
5163
5228
|
LocationShownGPSLatitude string_+
|
5164
5229
|
LocationShownGPSLongitude string_+
|
5165
5230
|
LocationShownIdentifier string_+
|
@@ -5213,6 +5278,7 @@ These tags belong to the ExifTool XMP-iptcExt family 1 group.
|
|
5213
5278
|
RatingRegionCountryCode string_+
|
5214
5279
|
RatingRegionCountryName string_+
|
5215
5280
|
RatingRegionGPSAltitude rational_+
|
5281
|
+
RatingRegionGPSAltitudeRef integer_+
|
5216
5282
|
RatingRegionGPSLatitude string_+
|
5217
5283
|
RatingRegionGPSLongitude string_+
|
5218
5284
|
RatingRegionIdentifier string_+
|
@@ -5421,6 +5487,7 @@ is to write ImageRegion as a structure with these tags as new fields.
|
|
5421
5487
|
CountryCode string
|
5422
5488
|
CountryName string
|
5423
5489
|
GPSAltitude rational
|
5490
|
+
GPSAltitudeRef integer
|
5424
5491
|
GPSLatitude string
|
5425
5492
|
GPSLongitude string
|
5426
5493
|
Identifier string+
|
@@ -6258,6 +6325,7 @@ These tags belong to the ExifTool XMP-xmpDM family 1 group.
|
|
6258
6325
|
OutCueScale rational_
|
6259
6326
|
OutCueValue integer_
|
6260
6327
|
PartOfCompilation boolean
|
6328
|
+
Pick integer
|
6261
6329
|
ProjectName string
|
6262
6330
|
ProjectRef ProjectLink Struct
|
6263
6331
|
ProjectRefPath string_
|
@@ -10115,6 +10183,7 @@ CameraInfo tags for the PowerShot G5 X Mark II.
|
|
10115
10183
|
Index1 Tag Name Writable
|
10116
10184
|
------ -------- --------
|
10117
10185
|
659 ShutterCount int32u
|
10186
|
+
2709 ShutterCount int32u
|
10118
10187
|
2849 DirectoryIndex int32u
|
10119
10188
|
2861 FileIndex int32u
|
10120
10189
|
|
@@ -12270,6 +12339,11 @@ below by a decimal appended to the tag ID (.0, .1 or .2).
|
|
12270
12339
|
0x20916 PurpleHSL yes
|
12271
12340
|
0x20917 MagentaHSL yes
|
12272
12341
|
0x20a00 GammaInfo CanonVRD GammaInfo
|
12342
|
+
0x20b10 DPRAWMicroadjustBackFront yes
|
12343
|
+
0x20b12 DPRAWMicroadjustStrength yes
|
12344
|
+
0x20b20 DPRAWBokehShift yes
|
12345
|
+
0x20b21 DPRAWBokehShiftArea yes
|
12346
|
+
0x20b30 DPRAWGhostingReductionArea yes
|
12273
12347
|
0x30101 CropAspectRatio yes
|
12274
12348
|
0x30102 CropAspectRatioCustom yes
|
12275
12349
|
0xf0100 CropInfo CanonVRD CropInfo
|
@@ -13091,6 +13165,8 @@ Tags extracted from FLIR Public image Format (FPF) files.
|
|
13091
13165
|
0x104d CropMode int16u
|
13092
13166
|
0x104e ColorChromeFXBlue int32s
|
13093
13167
|
0x1050 ShutterType int16u
|
13168
|
+
0x1051 CropTopLeft int32u
|
13169
|
+
0x1052 CropCenter int32u
|
13094
13170
|
0x1100 AutoBracketing int16u
|
13095
13171
|
0x1101 SequenceNumber int16u
|
13096
13172
|
0x1103 DriveSettings FujiFilm DriveSettings
|
@@ -29253,6 +29329,7 @@ for the official specification.
|
|
29253
29329
|
ThumbnailImage no
|
29254
29330
|
Free? no
|
29255
29331
|
'ftyp' FileType QuickTime FileType
|
29332
|
+
'gdat' GPSData QuickTime Stream
|
29256
29333
|
'gps0' GPSTrack QuickTime Stream
|
29257
29334
|
'gsen' GSensor QuickTime Stream
|
29258
29335
|
'junk' Junk? no
|
@@ -29264,6 +29341,7 @@ for the official specification.
|
|
29264
29341
|
'moof' MovieFragment QuickTime MovieFragment
|
29265
29342
|
'moov' Movie QuickTime Movie
|
29266
29343
|
'mpvd' MotionPhotoVideo yes
|
29344
|
+
'nbmt' NextbaseMeta QuickTime Stream
|
29267
29345
|
'pict' PreviewPICT no
|
29268
29346
|
'pnot' Preview QuickTime Preview
|
29269
29347
|
'prrt' ARDroneTelemetry no
|
@@ -29283,10 +29361,11 @@ for the official specification.
|
|
29283
29361
|
UUID-Flip QuickTime Flip
|
29284
29362
|
UUID-Canon2 Canon uuid2
|
29285
29363
|
SensorData QuickTime Tags360Fly
|
29364
|
+
SensorData no
|
29286
29365
|
JUMBF Jpeg2000
|
29287
29366
|
CBOR CBOR
|
29288
|
-
SensorData no
|
29289
29367
|
PreviewImage no
|
29368
|
+
ThumbnailImage no
|
29290
29369
|
UUID-Unknown? no
|
29291
29370
|
'wide' Wide? no
|
29292
29371
|
|
@@ -29295,7 +29374,7 @@ for the official specification.
|
|
29295
29374
|
The tags below are extracted from timed metadata in QuickTime and other
|
29296
29375
|
formats of video files when the ExtractEmbedded option is used. Although
|
29297
29376
|
most of these tags are combined into the single table below, ExifTool
|
29298
|
-
currently reads
|
29377
|
+
currently reads 71 different formats of timed GPS metadata from video files.
|
29299
29378
|
|
29300
29379
|
Tag Name Writable
|
29301
29380
|
-------- --------
|
@@ -29304,6 +29383,7 @@ currently reads 68 different formats of timed GPS metadata from video files.
|
|
29304
29383
|
AngularVelocity no
|
29305
29384
|
CTMD Canon CTMD
|
29306
29385
|
CameraDateTime no
|
29386
|
+
CameraModel no
|
29307
29387
|
Car no
|
29308
29388
|
DateTimeOriginal no
|
29309
29389
|
Distance no
|
@@ -30537,12 +30617,15 @@ the config file.
|
|
30537
30617
|
'cvru' CoverURI string
|
30538
30618
|
'date' DateTimeOriginal string
|
30539
30619
|
'dscp' Description string/
|
30620
|
+
'finm' OriginalFileName no
|
30540
30621
|
'gnre' Genre string/
|
30541
30622
|
'hinf' HintTrackInfo QuickTime HintTrackInfo
|
30542
30623
|
'hinv' HintVersion string
|
30543
30624
|
'hnti' HintInfo QuickTime HintInfo
|
30544
30625
|
'htcb' HTCBinary QuickTime HTCBinary
|
30545
30626
|
'icnu' IconURI string
|
30627
|
+
'infi' CameraInfo QuickTime Nextbase
|
30628
|
+
'info' FirmwareVersion string
|
30546
30629
|
'infu' InfoURL string
|
30547
30630
|
'kgtt' TrackType string
|
30548
30631
|
'kywd' Keywords no
|
@@ -30574,9 +30657,11 @@ the config file.
|
|
30574
30657
|
ThumbnailImage string
|
30575
30658
|
ThumbnailPNG string
|
30576
30659
|
UnknownThumbnail string
|
30660
|
+
'time' TimeStamp no
|
30577
30661
|
'titl' Title string/
|
30578
30662
|
'urat' UserRating undef/
|
30579
30663
|
'uuid' GarminSoftware string
|
30664
|
+
GarminModel no
|
30580
30665
|
UUID-Unknown? no
|
30581
30666
|
'vndr' Vendor string
|
30582
30667
|
'vrot' AccelerometerData no
|
@@ -30691,6 +30776,83 @@ Tags found in TomTom Bandit Action Cam MP4 videos.
|
|
30691
30776
|
------ -------- --------
|
30692
30777
|
[no tags known]
|
30693
30778
|
|
30779
|
+
=head3 QuickTime Nextbase Tags
|
30780
|
+
|
30781
|
+
Tags found in 'infi' atom from some Nextbase videos. As well as these tags,
|
30782
|
+
other existing tags are also extracted. These tags are not currently
|
30783
|
+
writable but they may all be removed by deleting the Nextbase group.
|
30784
|
+
|
30785
|
+
Tag ID Tag Name Writable
|
30786
|
+
------ -------- --------
|
30787
|
+
'2nd Cam' SecondCam no
|
30788
|
+
'Alerts' Alerts no
|
30789
|
+
'Alexa' Alexa no
|
30790
|
+
'Alexa - Paired Device Name'
|
30791
|
+
Alexa-PairedDeviceName no
|
30792
|
+
'Alexa - Pairing' Alexa-Pairing no
|
30793
|
+
'Alexa - Privacy Mode' Alexa-PrivacyMode no
|
30794
|
+
'Alexa - Wake Word Language'
|
30795
|
+
Alexa-WakeWordLanguage no
|
30796
|
+
'Audio' Audio no
|
30797
|
+
'Auto Power Off' AutoPowerOff no
|
30798
|
+
'Battery Status' BatteryStatus no
|
30799
|
+
'Bluetooth MAC Address' BluetoothMACAddress no
|
30800
|
+
'Bluetooth Name' BluetoothName no
|
30801
|
+
'Country' Country no
|
30802
|
+
'Default Settings' DefaultSettings no
|
30803
|
+
'Device Sounds' DeviceSounds no
|
30804
|
+
'Dual Files' DualFiles no
|
30805
|
+
'Emergency SOS' EmergencySOS no
|
30806
|
+
'Exposure' Exposure no
|
30807
|
+
'Extreme Weather Mode' ExtremeWeatherMode no
|
30808
|
+
'FCC-ID' FCC-ID no
|
30809
|
+
'Firmware' Firmware no
|
30810
|
+
'Firmware Version' FirmwareVersion no
|
30811
|
+
'Format SD Card' FormatSDCard no
|
30812
|
+
'G Sensor' GSensor no
|
30813
|
+
'GPS Stamp' GPSStamp no
|
30814
|
+
'Image Stabilisation' ImageStabilisation no
|
30815
|
+
'Keep User Settings' KeepUserSettings no
|
30816
|
+
'Language' Language no
|
30817
|
+
'Linux' Linux no
|
30818
|
+
'Model' Model no
|
30819
|
+
'Model Stamp' ModelStamp no
|
30820
|
+
'MyNextbase - Paired Device Name'
|
30821
|
+
MyNextbase-PairedDeviceName no
|
30822
|
+
'MyNextbase - Pairing' MyNextbase-Pairing no
|
30823
|
+
'NBCD' NBCD no
|
30824
|
+
'Number / License Plate' NumberLicensePlate no
|
30825
|
+
'Parking Mode' ParkingMode no
|
30826
|
+
'RTOS' RTOS no
|
30827
|
+
'Recording History' RecordingHistory no
|
30828
|
+
'Resolution' Resolution no
|
30829
|
+
'Reversing Camera' ReversingCamera no
|
30830
|
+
'SD Card Class' SDCardClass no
|
30831
|
+
'SD Card Format' SDCardFormat no
|
30832
|
+
'SD Card Manf Date' SDCardManfDate no
|
30833
|
+
'SD Card Manf ID' SDCardManfID no
|
30834
|
+
'SD Card Model No' SDCardModelNo no
|
30835
|
+
'SD Card OEM ID' SDCardOEMID no
|
30836
|
+
'SD Card Serial No' SDCardSerialNo no
|
30837
|
+
'SD Card Size' SDCardSize no
|
30838
|
+
'SD Card Type' SDCardType no
|
30839
|
+
'SD Card Used Space' SDCardUsedSpace no
|
30840
|
+
'Screen Dimming' ScreenDimming no
|
30841
|
+
'Screen Saver' ScreenSaver no
|
30842
|
+
'Serial No' SerialNumber no
|
30843
|
+
'Speed Stamp' SpeedStamp no
|
30844
|
+
'Speed Units' SpeedUnits no
|
30845
|
+
'System Info' SystemInfo no
|
30846
|
+
'Time & Date' TimeAndDate no
|
30847
|
+
'Time Lapse' TimeLapse no
|
30848
|
+
'Time Stamp' VideoTimeStamp no
|
30849
|
+
'Time Zone / DST' TimeZoneDST no
|
30850
|
+
'Video Length' VideoLength no
|
30851
|
+
'Wi-Fi MAC Address' Wi-FiMACAddress no
|
30852
|
+
'Wi-Fi Password' Wi-FiPassword no
|
30853
|
+
'Wi-Fi SSID' Wi-FiSSID no
|
30854
|
+
'what3words' What3Words no
|
30855
|
+
|
30694
30856
|
=head3 QuickTime Video Tags
|
30695
30857
|
|
30696
30858
|
Index1 Tag Name Writable
|
@@ -39363,7 +39525,7 @@ these files directly.
|
|
39363
39525
|
XAttrLastUsedDate no
|
39364
39526
|
XAttrMDItemDownloadedDate no
|
39365
39527
|
XAttrMDItemFinderComment no
|
39366
|
-
XAttrMDItemWhereFroms
|
39528
|
+
XAttrMDItemWhereFroms yes!
|
39367
39529
|
XAttrMDLabel no
|
39368
39530
|
XAttrQuarantine yes!
|
39369
39531
|
XAttrResourceFork no
|
@@ -39561,6 +39723,19 @@ FileName.
|
|
39561
39723
|
FileTypeExtension File no
|
39562
39724
|
FileUserID System yes!
|
39563
39725
|
ForceWrite - yes
|
39726
|
+
Geolocate - yes
|
39727
|
+
GeolocationBearing ExifTool no
|
39728
|
+
GeolocationCity ExifTool no
|
39729
|
+
GeolocationCountry ExifTool no
|
39730
|
+
GeolocationCountryCode ExifTool no
|
39731
|
+
GeolocationDistance ExifTool no
|
39732
|
+
GeolocationFeatureCode ExifTool no
|
39733
|
+
GeolocationPopulation ExifTool no
|
39734
|
+
GeolocationPosition ExifTool no
|
39735
|
+
GeolocationRegion ExifTool no
|
39736
|
+
GeolocationSubregion ExifTool no
|
39737
|
+
GeolocationTimeZone ExifTool no
|
39738
|
+
GeolocationWarning ExifTool no
|
39564
39739
|
Geosync - yes
|
39565
39740
|
Geotag - yes
|
39566
39741
|
Geotime - yes
|
@@ -39583,6 +39758,7 @@ FileName.
|
|
39583
39758
|
OtherImage File no
|
39584
39759
|
PageCount File no
|
39585
39760
|
PreviewImage File yes
|
39761
|
+
PreviewJXL File no
|
39586
39762
|
PreviewPDF File no
|
39587
39763
|
PreviewPNG File no
|
39588
39764
|
PreviewTIFF File no
|
@@ -39846,6 +40022,10 @@ values, may created via the ExifTool configuration file.
|
|
39846
40022
|
PreviewImage ScreenNail no
|
39847
40023
|
PreviewImageSize PreviewImageWidth no
|
39848
40024
|
PreviewImageHeight
|
40025
|
+
PreviewJXL PreviewJXLStart no
|
40026
|
+
PreviewJXLLength
|
40027
|
+
PreviewJXLStart (1)
|
40028
|
+
PreviewJXLLength (1)
|
39849
40029
|
RedBalance WB_RGGBLevels no
|
39850
40030
|
WB_RGBGLevels
|
39851
40031
|
WB_RBGGLevels
|
@@ -148,6 +148,7 @@ sub PrintInvGPSCoordinates($)
|
|
148
148
|
$v[2] = Image::ExifTool::ToFloat($v[2]) * ($below ? -1 : 1) if @v == 3;
|
149
149
|
return "@v";
|
150
150
|
}
|
151
|
+
return $val if $val =~ /^([-+]?\d+(\.\d*)?)\s+([-+]?\d+(\.\d*)?)$/; # already 2 floats?
|
151
152
|
return $val if $val =~ /^([-+]\d+(\.\d*)?){2,3}(CRS.*)?\/?$/; # already in ISO6709 format?
|
152
153
|
return undef;
|
153
154
|
}
|
@@ -356,6 +357,18 @@ sub SetVarInt($$)
|
|
356
357
|
return '';
|
357
358
|
}
|
358
359
|
|
360
|
+
#------------------------------------------------------------------------------
|
361
|
+
# Write Nextbase infi atom (ref PH)
|
362
|
+
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
363
|
+
# Returns: updated infi data
|
364
|
+
sub WriteNextbase($$$)
|
365
|
+
{
|
366
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
367
|
+
$et or return 1;
|
368
|
+
$$et{DEL_GROUP}{Nextbase} and ++$$et{CHANGED}, return '';
|
369
|
+
return ${$$dirInfo{DataPt}};
|
370
|
+
}
|
371
|
+
|
359
372
|
#------------------------------------------------------------------------------
|
360
373
|
# Write Meta Keys to add/delete entries as necessary ('mdta' handler) (ref PH)
|
361
374
|
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
@@ -1619,7 +1632,8 @@ sub WriteQuickTime($$$)
|
|
1619
1632
|
if ($isEmpty) {
|
1620
1633
|
$et->VPrint(0,' Deleting ' . join('+', sort map { $emptyMeta{$_} } keys %boxPos)) if %boxPos;
|
1621
1634
|
$$outfile = '';
|
1622
|
-
|
1635
|
+
# (could report a file if editing nothing when it contained an empty Meta atom)
|
1636
|
+
# ++$$et{CHANGED};
|
1623
1637
|
}
|
1624
1638
|
if ($curPath eq 'MOV-Movie-Meta') {
|
1625
1639
|
delete $$addDirs{Keys}; # prevent creation of another Meta for Keys tags
|
@@ -236,7 +236,7 @@ sub CheckXMP($$$;$)
|
|
236
236
|
return 'Not a floating point number';
|
237
237
|
}
|
238
238
|
if ($format eq 'rational') {
|
239
|
-
$$valPtr = join('/', Image::ExifTool::Rationalize($$valPtr));
|
239
|
+
$$valPtr = join('/', Image::ExifTool::Rationalize($$valPtr,0xffffffff));
|
240
240
|
}
|
241
241
|
} elsif ($format eq 'integer') {
|
242
242
|
# make sure the value is integer
|
@@ -137,12 +137,12 @@ my %rawType = (
|
|
137
137
|
# 1) these names must either exist in %dirMap, or be translated in InitWriteDirs())
|
138
138
|
# 2) any dependencies must be added to %excludeGroups
|
139
139
|
my @delGroups = qw(
|
140
|
-
Adobe AFCP APP0 APP1 APP2 APP3 APP4 APP5 APP6 APP7 APP8 APP9 APP10 APP11
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
140
|
+
Adobe AFCP APP0 APP1 APP2 APP3 APP4 APP5 APP6 APP7 APP8 APP9 APP10 APP11 APP12
|
141
|
+
APP13 APP14 APP15 CanonVRD CIFF Ducky EXIF ExifIFD File FlashPix FotoStation
|
142
|
+
GlobParamIFD GPS ICC_Profile IFD0 IFD1 Insta360 InteropIFD IPTC ItemList JFIF
|
143
|
+
Jpeg2000 JUMBF Keys MakerNotes Meta MetaIFD Microsoft MIE MPF Nextbase NikonApp
|
144
|
+
NikonCapture PDF PDF-update PhotoMechanic Photoshop PNG PNG-pHYs PrintIM
|
145
|
+
QuickTime RMETA RSRC SubIFD Trailer UserData XML XML-* XMP XMP-*
|
146
146
|
);
|
147
147
|
# family 2 group names that we can delete
|
148
148
|
my @delGroup2 = qw(
|
@@ -227,7 +227,7 @@ my %allFam0 = (
|
|
227
227
|
|
228
228
|
my @writableMacOSTags = qw(
|
229
229
|
FileCreateDate MDItemFinderComment MDItemFSCreationDate MDItemFSLabel MDItemUserTags
|
230
|
-
XAttrQuarantine
|
230
|
+
XAttrQuarantine XAttrMDItemWhereFroms
|
231
231
|
);
|
232
232
|
|
233
233
|
# min/max values for integer formats
|
@@ -1296,6 +1296,10 @@ sub SetNewValuesFromFile($$;@)
|
|
1296
1296
|
FastScan => $$options{FastScan},
|
1297
1297
|
Filter => $$options{Filter},
|
1298
1298
|
FixBase => $$options{FixBase},
|
1299
|
+
Geolocation => $$options{Geolocation},
|
1300
|
+
GeolocFeature => $$options{GeolocFeature},
|
1301
|
+
GeolocMinPop => $$options{GeolocMinPop},
|
1302
|
+
GeolocMaxDist => $$options{GeolocMaxDist},
|
1299
1303
|
GlobalTimeShift => $$options{GlobalTimeShift},
|
1300
1304
|
HexTagIDs => $$options{HexTagIDs},
|
1301
1305
|
IgnoreMinorErrors=>$$options{IgnoreMinorErrors},
|
@@ -2181,7 +2185,7 @@ sub SetSystemTags($$)
|
|
2181
2185
|
$result = $res if $res == 1 or not $result;
|
2182
2186
|
last;
|
2183
2187
|
} elsif ($tag ne 'FileCreateDate') {
|
2184
|
-
$self->WarnOnce('Can only set MDItem tags on
|
2188
|
+
$self->WarnOnce('Can only set MDItem tags on MacOS');
|
2185
2189
|
last;
|
2186
2190
|
}
|
2187
2191
|
}
|
@@ -3783,6 +3787,53 @@ sub GetWriteGroup1($$)
|
|
3783
3787
|
return $self->GetGroup($tagInfo, 1);
|
3784
3788
|
}
|
3785
3789
|
|
3790
|
+
#------------------------------------------------------------------------------
|
3791
|
+
# Get list of tags to write for Geolocate feature
|
3792
|
+
# Inputs: 0) ExifTool ref, 1) group name(s),
|
3793
|
+
# 2) 0=prefer writing City, 1=prefer writing GPS, undef=deleting tags
|
3794
|
+
# Returns: list of tags to write/delete
|
3795
|
+
sub GetGeolocateTags($$;$)
|
3796
|
+
{
|
3797
|
+
my ($self, $wantGroup, $writeGPS) = @_;
|
3798
|
+
my @grps = $wantGroup ? map lc, split(/:/, $wantGroup) : ();
|
3799
|
+
my %grps = map { $_ => $_ } @grps; # lookup for specified groups
|
3800
|
+
$grps{exif} and not $grps{gps} and $grps{gps} = 'gps', push(@grps, 'gps');
|
3801
|
+
my %tagGroups = (
|
3802
|
+
'xmp-iptcext' => [ qw(LocationShownCity LocationShownProvinceState LocationShownCountryCode
|
3803
|
+
LocationShownCountryName LocationShownGPSLatitude LocationShownGPSLongitude) ],
|
3804
|
+
'xmp-photoshop' => [ qw(City State Country) ],
|
3805
|
+
'xmp-iptccore' => [ 'CountryCode' ],
|
3806
|
+
'iptc' => [ qw(City Province-State Country-PrimaryLocationCode Country-PrimaryLocationName) ],
|
3807
|
+
'gps' => [ qw(GPSLatitude GPSLongitude GPSLatitudeRef GPSLongitudeRef) ],
|
3808
|
+
'xmp-exif' => [ qw(GPSLatitude GPSLongitude) ],
|
3809
|
+
'keys' => [ 'GPSCoordinates' ],
|
3810
|
+
'itemlist' => [ 'GPSCoordinates' ],
|
3811
|
+
'userdata' => [ 'GPSCoordinates' ],
|
3812
|
+
# more general groups not in this lookup: XMP and QuickTime
|
3813
|
+
);
|
3814
|
+
my (@tags, $grp);
|
3815
|
+
# set specific City and GPS tags
|
3816
|
+
foreach $grp (@grps) {
|
3817
|
+
$tagGroups{$grp} and push @tags, map("$grp:$_", @{$tagGroups{$grp}});
|
3818
|
+
}
|
3819
|
+
# set default XMP City tags if necessary
|
3820
|
+
if (not $writeGPS and ($grps{xmp} or (not @tags and not $grps{quicktime}))) {
|
3821
|
+
push @tags, qw(XMP:City XMP:State XMP:CountryCode XMP:Country);
|
3822
|
+
}
|
3823
|
+
$writeGPS = 1 unless defined $writeGPS; # (delete both City and GPS)
|
3824
|
+
# set default QuickTime tag if necessary
|
3825
|
+
my $didQT = grep /Coordinates$/, @tags;
|
3826
|
+
if (($grps{quicktime} and not $didQT) or ($writeGPS and not @tags and not $grps{xmp})) {
|
3827
|
+
push @tags, 'QuickTime:GPSCoordinates';
|
3828
|
+
}
|
3829
|
+
# set default GPS tags if necessary
|
3830
|
+
if ($writeGPS) {
|
3831
|
+
push @tags, qw(XMP:GPSLatitude XMP:GPSLongitude) if $grps{xmp} and not $grps{'xmp-exif'};
|
3832
|
+
push @tags, qw(GPSLatitude GPSLongitude GPSLatitudeRef GPSLongitudeRef) if not $wantGroup;
|
3833
|
+
}
|
3834
|
+
return @tags;
|
3835
|
+
}
|
3836
|
+
|
3786
3837
|
#------------------------------------------------------------------------------
|
3787
3838
|
# Get new value hash for specified tagInfo/writeGroup
|
3788
3839
|
# Inputs: 0) ExifTool object reference, 1) reference to tag info hash
|
@@ -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.64';
|
54
54
|
@ISA = qw(Exporter);
|
55
55
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
56
56
|
|
@@ -171,6 +171,7 @@ my %xmpNS = (
|
|
171
171
|
pmi => 'http://prismstandard.org/namespaces/pmi/2.2/',
|
172
172
|
prm => 'http://prismstandard.org/namespaces/prm/3.0/',
|
173
173
|
acdsee => 'http://ns.acdsee.com/iptc/1.0/',
|
174
|
+
'acdsee-rs'=> 'http://ns.acdsee.com/regions/',
|
174
175
|
digiKam => 'http://www.digikam.org/ns/1.0/',
|
175
176
|
swf => 'http://ns.adobe.com/swf/1.0/',
|
176
177
|
cell => 'http://developer.sonyericsson.com/cell/1.0/',
|
@@ -802,6 +803,10 @@ my %sRangeMask = (
|
|
802
803
|
Name => 'acdsee',
|
803
804
|
SubDirectory => { TagTable => 'Image::ExifTool::XMP::acdsee' },
|
804
805
|
},
|
806
|
+
'acdsee-rs' => {
|
807
|
+
Name => 'acdsee-rs',
|
808
|
+
SubDirectory => { TagTable => 'Image::ExifTool::XMP::ACDSeeRegions' },
|
809
|
+
},
|
805
810
|
digiKam => {
|
806
811
|
Name => 'digiKam',
|
807
812
|
SubDirectory => { TagTable => 'Image::ExifTool::XMP::digiKam' },
|
@@ -2554,7 +2559,17 @@ my %sPantryItem = (
|
|
2554
2559
|
return $val;
|
2555
2560
|
},
|
2556
2561
|
},
|
2557
|
-
ApproximateFocusDistance => {
|
2562
|
+
ApproximateFocusDistance => {
|
2563
|
+
Writable => 'rational',
|
2564
|
+
PrintConv => {
|
2565
|
+
4294967295 => 'infinity',
|
2566
|
+
OTHER => sub {
|
2567
|
+
my ($val, $inv) = @_;
|
2568
|
+
return $val eq 'infinity' ? 4294967295 : $val if $inv;
|
2569
|
+
return $val eq 4294967295 ? 'infinity' : $val;
|
2570
|
+
},
|
2571
|
+
},
|
2572
|
+
}, #PH (LR3)
|
2558
2573
|
# the following new in LR6 (ref forum6497)
|
2559
2574
|
IsMergedPanorama => { Writable => 'boolean' },
|
2560
2575
|
IsMergedHDR => { Writable => 'boolean' },
|
@@ -224,6 +224,7 @@ my %sAppInfo = (
|
|
224
224
|
fileDataRate => { Writable => 'rational' },
|
225
225
|
genre => { },
|
226
226
|
good => { Writable => 'boolean' },
|
227
|
+
pick => { Writable => 'integer' }, #forum15815
|
227
228
|
instrument => { },
|
228
229
|
introTime => { Struct => \%sTime },
|
229
230
|
key => {
|
@@ -403,6 +404,18 @@ my %sLocationDetails = (
|
|
403
404
|
PrintConv => '$val =~ /^(inf|undef)$/ ? $val : "$val m"',
|
404
405
|
PrintConvInv => '$val=~s/\s*m$//;$val',
|
405
406
|
},
|
407
|
+
GPSAltitudeRef => {
|
408
|
+
Writable => 'integer',
|
409
|
+
PrintConv => {
|
410
|
+
OTHER => sub {
|
411
|
+
my ($val, $inv) = @_;
|
412
|
+
return undef unless $inv and $val =~ /^([-+0-9])/;
|
413
|
+
return($1 eq '-' ? 1 : 0);
|
414
|
+
},
|
415
|
+
0 => 'Above Sea Level',
|
416
|
+
1 => 'Below Sea Level',
|
417
|
+
},
|
418
|
+
},
|
406
419
|
);
|
407
420
|
my %sCVTermDetails = (
|
408
421
|
STRUCT_NAME => 'CVTermDetails',
|
@@ -1373,6 +1386,57 @@ my %sSubVersion = (
|
|
1373
1386
|
Snapshots => { List => 'Bag', Binary => 1 },
|
1374
1387
|
);
|
1375
1388
|
|
1389
|
+
# ACDSee region tags (ref BKW)
|
1390
|
+
my %sACDSeeDimensions = (
|
1391
|
+
STRUCT_NAME => 'ACDSeeDimensions',
|
1392
|
+
NAMESPACE => {'acdsee-stDim' => 'http://ns.acdsee.com/sType/Dimensions#'},
|
1393
|
+
'w' => { Writable => 'real' },
|
1394
|
+
'h' => { Writable => 'real' },
|
1395
|
+
'unit' => { },
|
1396
|
+
);
|
1397
|
+
my %sACDSeeArea = (
|
1398
|
+
STRUCT_NAME => 'ACDSeeArea',
|
1399
|
+
NAMESPACE => { 'acdsee-stArea' => 'http://ns.acdsee.com/sType/Area#' },
|
1400
|
+
'x' => { Writable => 'real' },
|
1401
|
+
'y' => { Writable => 'real' },
|
1402
|
+
w => { Writable => 'real' },
|
1403
|
+
h => { Writable => 'real' },
|
1404
|
+
);
|
1405
|
+
my %sACDSeeRegionStruct = (
|
1406
|
+
STRUCT_NAME => 'ACDSeeRegion',
|
1407
|
+
NAMESPACE => 'acdsee-rs',
|
1408
|
+
ALGArea => { Struct => \%sACDSeeArea },
|
1409
|
+
DLYArea => { Struct => \%sACDSeeArea },
|
1410
|
+
Name => { },
|
1411
|
+
NameAssignType => { },
|
1412
|
+
Type => { },
|
1413
|
+
);
|
1414
|
+
%Image::ExifTool::XMP::ACDSeeRegions = (
|
1415
|
+
GROUPS => { 0 => 'XMP', 1 => 'XMP-acdsee-rs', 2 => 'Image' },
|
1416
|
+
NAMESPACE => 'acdsee-rs',
|
1417
|
+
WRITABLE => 'string',
|
1418
|
+
AVOID => 1,
|
1419
|
+
Regions => {
|
1420
|
+
Name => 'RegionInfoACDSee',
|
1421
|
+
FlatName => 'ACDSee',
|
1422
|
+
# the "Struct" entry defines the structure fields
|
1423
|
+
Struct => {
|
1424
|
+
# optional structure name (used for warning messages only)
|
1425
|
+
STRUCT_NAME => 'ACDSeeRegionInfo',
|
1426
|
+
NAMESPACE => 'acdsee-rs',
|
1427
|
+
RegionList => {
|
1428
|
+
FlatName => 'Region',
|
1429
|
+
Struct => \%sACDSeeRegionStruct,
|
1430
|
+
List => 'Bag',
|
1431
|
+
},
|
1432
|
+
AppliedToDimensions => {
|
1433
|
+
FlatName => 'RegionAppliedToDimensions',
|
1434
|
+
Struct => \%sACDSeeDimensions,
|
1435
|
+
},
|
1436
|
+
},
|
1437
|
+
},
|
1438
|
+
);
|
1439
|
+
|
1376
1440
|
# Picture Licensing Universal System namespace properties (xmpPLUS)
|
1377
1441
|
%Image::ExifTool::XMP::xmpPLUS = (
|
1378
1442
|
%xmpTableDefaults,
|