exiftool_vendored 12.13.0 → 12.17.1
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.
- checksums.yaml +4 -4
- data/bin/Changes +61 -4
- data/bin/MANIFEST +3 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +63 -43
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +36 -3
- data/bin/lib/Image/ExifTool.pod +9 -7
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/APP12.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/Apple.pm +1 -1
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BPG.pm +1 -1
- data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -7
- data/bin/lib/Image/ExifTool/Canon.pm +3 -2
- data/bin/lib/Image/ExifTool/CanonCustom.pm +20 -2
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +1 -1
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +28 -2
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- data/bin/lib/Image/ExifTool/DPX.pm +4 -4
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +45 -16
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -2
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +6 -6
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +21 -6
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/HTML.pm +1 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +1 -1
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/ISO.pm +1 -1
- data/bin/lib/Image/ExifTool/ITC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +1 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/JVC.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +1 -1
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +312 -34
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +10 -2
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +12 -4
- data/bin/lib/Image/ExifTool/PPM.pm +1 -1
- data/bin/lib/Image/ExifTool/PSP.pm +1 -1
- data/bin/lib/Image/ExifTool/Palm.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
- data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
- data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +12 -6
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +85 -7
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Real.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- data/bin/lib/Image/ExifTool/Red.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +4 -2
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +3985 -3811
- data/bin/lib/Image/ExifTool/TagNames.pod +422 -21
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Theora.pm +1 -1
- data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +1 -1
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -7
- data/bin/lib/Image/ExifTool/Writer.pl +17 -7
- data/bin/lib/Image/ExifTool/XMP.pm +44 -9
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +36 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d80826479c3ca8c2e3cfaf71aac23fb1d19de4d2b204fb5cce97d17315744c4c
|
|
4
|
+
data.tar.gz: b42b14d289558856c2cef660d6ff16592c814fcf3ec8f106e5edb4b62dd26e5d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 928b5a6323959d076b93102f6e7d980b2ef6936a90b77542fbbbb73e9ab767c5767c9a63d1073e8374aec816979d76f5c9e45342a50408426d43c1ee60a03b99
|
|
7
|
+
data.tar.gz: b86d1b66ca9d01bb8d4261f25cf4daaed9698a407332211559cdb253fd997ea4eaaac9535f874ee55bb1131e7729f145e3aca26d5d0d85512d957bd018c6efc7
|
data/bin/Changes
CHANGED
|
@@ -4,16 +4,73 @@ ExifTool Version History
|
|
|
4
4
|
|
|
5
5
|
RSS feed: https://exiftool.org/rss.xml
|
|
6
6
|
|
|
7
|
-
Note: The most recent production release is Version 12.
|
|
7
|
+
Note: The most recent production release is Version 12.16. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Feb. 3, 2021 - Version 12.17
|
|
11
|
+
|
|
12
|
+
- Added a new Canon FocusMode value
|
|
13
|
+
- Added a new FujiFilm FilmMode value
|
|
14
|
+
- Added a number of new XMP-crs tags (thanks Herb)
|
|
15
|
+
- Decode a new H264 MDPM tag
|
|
16
|
+
- Allow non-conforming lower-case XMP boolean "true" and "false" values to be
|
|
17
|
+
written, but only when print conversion is disabled
|
|
18
|
+
- Improved Validate option to warn about non-capitalized boolean XMP values
|
|
19
|
+
- Improved logic for setting GPSLatitude/LongitudeRef values when writing
|
|
20
|
+
- Changed -json and -php options so the -a option is implied even without the
|
|
21
|
+
-g option
|
|
22
|
+
- Avoid extracting audio/video data from AVI videos when -ee -u is used
|
|
23
|
+
- Patched decoding of Canon ContinuousShootingSpeed for newer firmware
|
|
24
|
+
versions of the EOS-1DXmkIII
|
|
25
|
+
- Re-worked LensID patch of version 12.00 (github issue #51)
|
|
26
|
+
- Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
|
|
27
|
+
- Fixed problem where group could not be specified for PNG-pHYs tags when
|
|
28
|
+
writing
|
|
29
|
+
|
|
30
|
+
Jan. 21, 2021 - Version 12.16 (production release)
|
|
31
|
+
|
|
32
|
+
- Extract another form of video subtitle text
|
|
33
|
+
- Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video
|
|
34
|
+
stream in MP4 files
|
|
35
|
+
- Changed a Nikon FlashMode value
|
|
36
|
+
- Fixed problem that caused a failed DPX test on Strawberry Perl
|
|
37
|
+
- API Changes:
|
|
38
|
+
- Enhanced ExtractEmbedded option
|
|
39
|
+
|
|
40
|
+
Jan. 18, 2021 - Version 12.15 (production release)
|
|
41
|
+
|
|
42
|
+
- Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
|
|
43
|
+
- Added a new Nikon FlashMode value (thanks Mike)
|
|
44
|
+
- Decode NikonSettings (thanks Warren Hatch)
|
|
45
|
+
- Decode thermal information from DJI RJPEG images
|
|
46
|
+
- Fixed extra newline in -echo3 and -echo4 outputs added in version 12.10
|
|
47
|
+
- Fixed out-of-memory problem when writing some very large PNG files under
|
|
48
|
+
Windows
|
|
49
|
+
|
|
50
|
+
Jan. 6, 2021 - Version 12.14
|
|
51
|
+
|
|
52
|
+
- Added support for 2 more types of timed GPS in video files (that makes 49
|
|
53
|
+
different formats now supported)
|
|
54
|
+
- Added validity check for PDF trailer dictionary Size
|
|
55
|
+
- Added a new Pentax LensType
|
|
56
|
+
- Extract metadata from Jpeg2000 Association box
|
|
57
|
+
- Changed -g:XX:YY and -G:XX:YY options to show empty strings for non-existent
|
|
58
|
+
groups
|
|
59
|
+
- Patched to issue warning and avoid writing date/time values with a zero
|
|
60
|
+
month or day number
|
|
61
|
+
- Patched to avoid runtime warnings if trying to set FileName to an empty
|
|
62
|
+
string
|
|
63
|
+
- Fixed issue that could cause GPS test number 12 to fail on some systems
|
|
64
|
+
- Fixed problem extracting XML as a block from Jpeg2000 images, and extract
|
|
65
|
+
XML tags in the XML group instead of XMP
|
|
66
|
+
|
|
10
67
|
Dec. 24, 2020 - Version 12.13
|
|
11
68
|
|
|
12
|
-
- Add time zone automatically to most string-based QuickTime date/time tags
|
|
13
|
-
when writing unless the PrintConv option is disabled
|
|
14
69
|
- Added -i HIDDEN option to ignore files with names that start with "."
|
|
15
70
|
- Added a few new Nikon ShutterMode values (thanks Jan Skoda)
|
|
16
71
|
- Added ability to write Google GCamera MicroVideo XMP tags
|
|
72
|
+
- Add time zone automatically to most string-based QuickTime date/time tags
|
|
73
|
+
when writing unless the PrintConv option is disabled
|
|
17
74
|
- Decode a new Sony tag (thanks LibRaw)
|
|
18
75
|
- Changed behaviour when writing only pseudo tags to return an error and avoid
|
|
19
76
|
writing any other tags if writing FileName fails
|
|
@@ -185,7 +242,7 @@ July 27, 2020 - Version 12.02
|
|
|
185
242
|
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
|
186
243
|
- Allow integer QuickTime TrackNumber and DiskNumber values
|
|
187
244
|
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
|
188
|
-
- Removed "Com" from the start of some unknown ItemList tag names
|
|
245
|
+
- Removed "Com" from the start of some unknown QuickTime ItemList tag names
|
|
189
246
|
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
|
190
247
|
- Changed QuickTime CleanAperture tags decode as signed rationals
|
|
191
248
|
|
data/bin/MANIFEST
CHANGED
|
@@ -115,6 +115,7 @@ html/TagNames/Motorola.html
|
|
|
115
115
|
html/TagNames/Nikon.html
|
|
116
116
|
html/TagNames/NikonCapture.html
|
|
117
117
|
html/TagNames/NikonCustom.html
|
|
118
|
+
html/TagNames/NikonSettings.html
|
|
118
119
|
html/TagNames/Nintendo.html
|
|
119
120
|
html/TagNames/OOXML.html
|
|
120
121
|
html/TagNames/Ogg.html
|
|
@@ -337,6 +338,7 @@ lib/Image/ExifTool/Motorola.pm
|
|
|
337
338
|
lib/Image/ExifTool/Nikon.pm
|
|
338
339
|
lib/Image/ExifTool/NikonCapture.pm
|
|
339
340
|
lib/Image/ExifTool/NikonCustom.pm
|
|
341
|
+
lib/Image/ExifTool/NikonSettings.pm
|
|
340
342
|
lib/Image/ExifTool/Nintendo.pm
|
|
341
343
|
lib/Image/ExifTool/OOXML.pm
|
|
342
344
|
lib/Image/ExifTool/Ogg.pm
|
|
@@ -603,6 +605,7 @@ t/Jpeg2000.t
|
|
|
603
605
|
t/Jpeg2000_2.out
|
|
604
606
|
t/Jpeg2000_3.out
|
|
605
607
|
t/Jpeg2000_4.out
|
|
608
|
+
t/Jpeg2000_5.out
|
|
606
609
|
t/Kodak.t
|
|
607
610
|
t/Kodak_2.out
|
|
608
611
|
t/Kodak_3.out
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
|
106
106
|
terminal window to extract and run ExifTool:
|
|
107
107
|
|
|
108
108
|
cd ~/Desktop
|
|
109
|
-
gzip -dc Image-ExifTool-12.
|
|
110
|
-
cd Image-ExifTool-12.
|
|
109
|
+
gzip -dc Image-ExifTool-12.17.tar.gz | tar -xf -
|
|
110
|
+
cd Image-ExifTool-12.17
|
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
|
112
112
|
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -161,7 +161,7 @@ for calculating digest values and providing other features listed below:
|
|
|
161
161
|
|
|
162
162
|
COPYRIGHT AND LICENSE
|
|
163
163
|
|
|
164
|
-
Copyright 2003-
|
|
164
|
+
Copyright 2003-2021, Phil Harvey
|
|
165
165
|
|
|
166
166
|
This is free software; you can redistribute it and/or modify it under the
|
|
167
167
|
same terms as Perl itself.
|
data/bin/exiftool
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
use strict;
|
|
11
11
|
require 5.004;
|
|
12
12
|
|
|
13
|
-
my $version = '12.
|
|
13
|
+
my $version = '12.17';
|
|
14
14
|
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
16
|
my $exeDir;
|
|
@@ -371,12 +371,12 @@ if (grep /^-common_args$/i, @ARGV) {
|
|
|
371
371
|
Command: for (;;) {
|
|
372
372
|
|
|
373
373
|
if (@echo3) {
|
|
374
|
-
my $str = join
|
|
374
|
+
my $str = join("\n", @echo3) . "\n";
|
|
375
375
|
$str =~ s/\$\{status\}/$rtnVal/ig;
|
|
376
376
|
print STDOUT $str;
|
|
377
377
|
}
|
|
378
378
|
if (@echo4) {
|
|
379
|
-
my $str = join
|
|
379
|
+
my $str = join("\n", @echo4) . "\n";
|
|
380
380
|
$str =~ s/\$\{status\}/$rtnVal/ig;
|
|
381
381
|
print STDERR $str;
|
|
382
382
|
}
|
|
@@ -894,8 +894,8 @@ for (;;) {
|
|
|
894
894
|
$helped = 1;
|
|
895
895
|
next;
|
|
896
896
|
}
|
|
897
|
-
if (/^(ee|extractembedded)$/i) {
|
|
898
|
-
$mt->Options(ExtractEmbedded => 1);
|
|
897
|
+
if (/^(ee|extractembedded)(\d*)$/i) {
|
|
898
|
+
$mt->Options(ExtractEmbedded => $2 || 1);
|
|
899
899
|
$mt->Options(Duplicates => 1);
|
|
900
900
|
next;
|
|
901
901
|
}
|
|
@@ -1264,7 +1264,7 @@ for (;;) {
|
|
|
1264
1264
|
if (/^php$/i) {
|
|
1265
1265
|
$json = 2;
|
|
1266
1266
|
$html = $xml = 0;
|
|
1267
|
-
$mt->Options(Duplicates=>1);
|
|
1267
|
+
$mt->Options(Duplicates => 1);
|
|
1268
1268
|
next;
|
|
1269
1269
|
}
|
|
1270
1270
|
if (/^z(ip)?$/i) {
|
|
@@ -1505,7 +1505,6 @@ if ($xml) {
|
|
|
1505
1505
|
require Image::ExifTool::XMP if $json == 1; # (for EncodeBase64)
|
|
1506
1506
|
}
|
|
1507
1507
|
$mt->Options(List => 1) unless $joinLists;
|
|
1508
|
-
$mt->Options(Duplicates => 0) unless defined $showGroup;
|
|
1509
1508
|
$showTagID = 'D' if $tabFormat and not $showTagID;
|
|
1510
1509
|
} elsif ($structOpt) {
|
|
1511
1510
|
$mt->Options(List => 1);
|
|
@@ -2304,7 +2303,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2304
2303
|
$group = $et->GetGroup($tag, $showGroup);
|
|
2305
2304
|
# look ahead to see if this tag may suppress a priority tag in
|
|
2306
2305
|
# the same group, and if so suppress this tag instead
|
|
2307
|
-
next if $noDups and $tag =~ /^(.*?)
|
|
2306
|
+
next if $noDups and $tag =~ /^(.*?) \(/ and defined $$info{$1} and
|
|
2308
2307
|
$group eq $et->GetGroup($1, $showGroup);
|
|
2309
2308
|
$group = 'Unknown' if not $group and ($xml or $json or $csv);
|
|
2310
2309
|
if ($fp and not ($allGroup or $csv)) {
|
|
@@ -2327,6 +2326,9 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2327
2326
|
}
|
|
2328
2327
|
undef $group; # undefine so we don't print it below
|
|
2329
2328
|
}
|
|
2329
|
+
} elsif ($noDups) {
|
|
2330
|
+
# don't allow duplicates, but avoid suppressing the priority tag
|
|
2331
|
+
next if $tag =~ /^(.*?) \(/ and defined $$info{$1};
|
|
2330
2332
|
}
|
|
2331
2333
|
|
|
2332
2334
|
++$lineCount; # we are printing something meaningful
|
|
@@ -2858,6 +2860,10 @@ sub SetImageInfo($$$)
|
|
|
2858
2860
|
# determine what our output file name should be
|
|
2859
2861
|
my $newFileName = $et->GetNewValues('FileName');
|
|
2860
2862
|
my $newDir = $et->GetNewValues('Directory');
|
|
2863
|
+
if (defined $newFileName and not length $newFileName) {
|
|
2864
|
+
Warn "Warning: New file name is empty - $ infile\n";
|
|
2865
|
+
undef $newFileName;
|
|
2866
|
+
}
|
|
2861
2867
|
if (defined $testName) {
|
|
2862
2868
|
my $err;
|
|
2863
2869
|
$err = "You shouldn't write FileName or Directory with TestFile" if defined $newFileName or defined $newDir;
|
|
@@ -4569,7 +4575,7 @@ L<Processing control|/Processing control>
|
|
|
4569
4575
|
|
|
4570
4576
|
-a (-duplicates) Allow duplicate tags to be extracted
|
|
4571
4577
|
-e (--composite) Do not generate composite tags
|
|
4572
|
-
-ee
|
|
4578
|
+
-ee[NUM] (-extractEmbedded) Extract information from embedded files
|
|
4573
4579
|
-ext[+] EXT (-extension) Process files with specified extension
|
|
4574
4580
|
-F[OFFSET] (-fixBase) Fix the base for maker notes offsets
|
|
4575
4581
|
-fast[NUM] Increase speed when extracting metadata
|
|
@@ -4913,7 +4919,7 @@ and the value is written to all possible groups/tags. For example, the
|
|
|
4913
4919
|
string form must be used in the following command since the intent is to set
|
|
4914
4920
|
the value of all existing date/time tags from C<CreateDate>:
|
|
4915
4921
|
|
|
4916
|
-
exiftool
|
|
4922
|
+
exiftool '-time:all<$createdate' -wm w FILE
|
|
4917
4923
|
|
|
4918
4924
|
=item B<-x> I<TAG> (B<-exclude>)
|
|
4919
4925
|
|
|
@@ -4939,7 +4945,7 @@ between images, but allows the metadata to be altered by editing the
|
|
|
4939
4945
|
intermediate file (C<out.args> in this example):
|
|
4940
4946
|
|
|
4941
4947
|
exiftool -args -G1 --filename --directory src.jpg > out.args
|
|
4942
|
-
exiftool -@ out.args -sep
|
|
4948
|
+
exiftool -@ out.args -sep ', ' dst.jpg
|
|
4943
4949
|
|
|
4944
4950
|
Note: Be careful when copying information with this technique since it is
|
|
4945
4951
|
easy to write tags which are normally considered "unsafe". For instance,
|
|
@@ -5203,18 +5209,18 @@ JSON arrays unless B<-sep> is used. By default XMP structures are flattened
|
|
|
5203
5209
|
into individual tags in the JSON output, but the original structure may be
|
|
5204
5210
|
preserved with the B<-struct> option (this also causes all list-type XMP
|
|
5205
5211
|
tags to be output as JSON arrays, otherwise single-item lists would be
|
|
5206
|
-
output as simple strings). The B<-a> option is implied
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5212
|
+
output as simple strings). The B<-a> option is implied when B<-json> is
|
|
5213
|
+
used, but entries with identical JSON names are suppressed in the output.
|
|
5214
|
+
(B<-G4> may be used to ensure that all tags have unique JSON names.) Adding
|
|
5215
|
+
the B<-D> or B<-H> option changes tag values to JSON objects with "val" and
|
|
5216
|
+
"id" fields, and adding B<-l> adds a "desc" field, and a "num" field if the
|
|
5217
|
+
numerical value is different from the converted "val". The B<-b> option may
|
|
5218
|
+
be added to output binary data, encoded in base64 if necessary (indicated by
|
|
5219
|
+
ASCII "base64:" as the first 7 bytes of the value), and B<-t> may be added
|
|
5220
|
+
to include tag table information (see B<-t> for details). The JSON output
|
|
5221
|
+
is UTF-8 regardless of any B<-L> or B<-charset> option setting, but the
|
|
5222
|
+
UTF-8 validation is disabled if a character set other than UTF-8 is
|
|
5223
|
+
specified.
|
|
5218
5224
|
|
|
5219
5225
|
If I<JSONFILE> is specified, the file is imported and the tag definitions
|
|
5220
5226
|
from the file are used to set tag values on a per-file basis. The special
|
|
@@ -5363,7 +5369,7 @@ with this command:
|
|
|
5363
5369
|
|
|
5364
5370
|
produces output like this:
|
|
5365
5371
|
|
|
5366
|
-
-- Generated by ExifTool 12.
|
|
5372
|
+
-- Generated by ExifTool 12.17 --
|
|
5367
5373
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5368
5374
|
(f/5.6, 1/60s, ISO 100)
|
|
5369
5375
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -5523,18 +5529,18 @@ Notes:
|
|
|
5523
5529
|
argument like C<%d%f.txt> is written as C<%%d%%f.txt>.
|
|
5524
5530
|
|
|
5525
5531
|
2) If the argument for B<-w> does not contain a valid format code (eg. %f),
|
|
5526
|
-
then it is interpreted as a file extension
|
|
5527
|
-
|
|
5528
|
-
multiple source files is typically done by shell redirection, ie)
|
|
5532
|
+
then it is interpreted as a file extension, but there are three different
|
|
5533
|
+
ways to create a single output file from multiple source files:
|
|
5529
5534
|
|
|
5535
|
+
# 1. Shell redirection
|
|
5530
5536
|
exiftool FILE1 FILE2 ... > out.txt
|
|
5531
5537
|
|
|
5532
|
-
|
|
5533
|
-
be interpreted as a format string, and the same result may be obtained
|
|
5534
|
-
without the use of shell redirection:
|
|
5535
|
-
|
|
5538
|
+
# 2. With the -w option and a zero-width format code
|
|
5536
5539
|
exiftool -w+! %0fout.txt FILE1 FILE2 ...
|
|
5537
5540
|
|
|
5541
|
+
# 3. With the -W option (see the -W option below)
|
|
5542
|
+
exiftool -W+! out.txt FILE1 FILE2 ...
|
|
5543
|
+
|
|
5538
5544
|
Advanced features:
|
|
5539
5545
|
|
|
5540
5546
|
A substring of the original file name, directory or extension may be taken
|
|
@@ -5702,7 +5708,7 @@ when copying.
|
|
|
5702
5708
|
|
|
5703
5709
|
Extract existing tags only -- don't generate composite tags.
|
|
5704
5710
|
|
|
5705
|
-
=item B<-ee> (B<-extractEmbedded>)
|
|
5711
|
+
=item B<-ee>[I<NUM>] (B<-extractEmbedded>)
|
|
5706
5712
|
|
|
5707
5713
|
Extract information from embedded documents in EPS files, embedded EPS
|
|
5708
5714
|
information and JPEG and Jpeg2000 images in PDF files, embedded MPF images
|
|
@@ -5720,6 +5726,11 @@ document as if it were a separate input file. This allows, for example,
|
|
|
5720
5726
|
generation of GPS track logs from timed metadata in videos. See
|
|
5721
5727
|
L<https://exiftool.org/geotag.html#Inverse> for examples.
|
|
5722
5728
|
|
|
5729
|
+
Setting I<NUM> to 2 causes the H264 video stream in MP4 videos to be parsed
|
|
5730
|
+
until the first Supplemental Enhancement Information (SEI) message is
|
|
5731
|
+
decoded, or 3 to parse the entire H624 stream and decode all SEI
|
|
5732
|
+
information.
|
|
5733
|
+
|
|
5723
5734
|
=item B<-ext>[+] I<EXT>, B<--ext> I<EXT> (B<-extension>)
|
|
5724
5735
|
|
|
5725
5736
|
Process only files with (B<-ext>) or without (B<--ext>) a specified
|
|
@@ -6369,10 +6380,10 @@ name and directory.
|
|
|
6369
6380
|
|
|
6370
6381
|
=item B<-stay_open> I<FLAG>
|
|
6371
6382
|
|
|
6372
|
-
If I<FLAG> is C<1> or C<True
|
|
6373
|
-
I<ARGFILE> even after reaching the end of file. This
|
|
6374
|
-
applications to pre-load exiftool, thus avoiding the
|
|
6375
|
-
exiftool for each command. The procedure is as follows:
|
|
6383
|
+
If I<FLAG> is C<1> or C<True> (case insensitive), causes exiftool keep
|
|
6384
|
+
reading from the B<-@> I<ARGFILE> even after reaching the end of file. This
|
|
6385
|
+
feature allows calling applications to pre-load exiftool, thus avoiding the
|
|
6386
|
+
overhead of loading exiftool for each command. The procedure is as follows:
|
|
6376
6387
|
|
|
6377
6388
|
1) Execute C<exiftool -stay_open True -@ I<ARGFILE>>, where I<ARGFILE> is the
|
|
6378
6389
|
name of an existing (possibly empty) argument file or C<-> to pipe arguments
|
|
@@ -6395,8 +6406,9 @@ signals back to your application.)
|
|
|
6395
6406
|
|
|
6396
6407
|
4) Repeat steps 2 and 3 for each command.
|
|
6397
6408
|
|
|
6398
|
-
5) Write C<-stay_open\nFalse\n> to I<ARGFILE> when
|
|
6399
|
-
exiftool to process any remaining command-line
|
|
6409
|
+
5) Write C<-stay_open\nFalse\n> (or C<-stay_open\n0\n>) to I<ARGFILE> when
|
|
6410
|
+
done. This will cause exiftool to process any remaining command-line
|
|
6411
|
+
arguments then exit normally.
|
|
6400
6412
|
|
|
6401
6413
|
The input I<ARGFILE> may be changed at any time before step 5 above by
|
|
6402
6414
|
writing the following lines to the currently open I<ARGFILE>:
|
|
@@ -6424,10 +6436,11 @@ an interface to the API UserParam option (see the
|
|
|
6424
6436
|
L<Image::ExifTool Options|Image::ExifTool/Options> documentation), and
|
|
6425
6437
|
provides a method to access user-defined parameters in arguments to the
|
|
6426
6438
|
B<-if> and B<-p> options as if they were any other tag. Appending a hash
|
|
6427
|
-
tag (C<#>) to I<PARAM> also causes the
|
|
6428
|
-
tag
|
|
6429
|
-
value is set to 1 if I<=VAL> is
|
|
6430
|
-
|
|
6439
|
+
tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also causes the
|
|
6440
|
+
parameter to be extracted as a normal tag in the UserParam group. Similar
|
|
6441
|
+
to the B<-api> option, the parameter value is set to 1 if I<=VAL> is
|
|
6442
|
+
omitted, undef if just I<VAL> is omitted with C<=>, or an empty string if
|
|
6443
|
+
I<VAL> is omitted with C<^=>.
|
|
6431
6444
|
|
|
6432
6445
|
exiftool -p '$test from $filename' -userparam test=Hello FILE
|
|
6433
6446
|
|
|
@@ -7137,6 +7150,13 @@ flexibility of ExifTool.)
|
|
|
7137
7150
|
|
|
7138
7151
|
=back
|
|
7139
7152
|
|
|
7153
|
+
=head1 INTERRUPTING EXIFTOOL
|
|
7154
|
+
|
|
7155
|
+
Interrupting exiftool with a CTRL-C or SIGINT will not result in partially
|
|
7156
|
+
written files or temporary files remaining on the hard disk. The exiftool
|
|
7157
|
+
application traps SIGINT and defers it until the end of critical processes
|
|
7158
|
+
if necessary, then does a proper cleanup before exiting.
|
|
7159
|
+
|
|
7140
7160
|
=head1 EXIT STATUS
|
|
7141
7161
|
|
|
7142
7162
|
The exiftool application exits with a status of 0 on success, or 1 if an
|
|
@@ -7145,7 +7165,7 @@ the commands if B<-execute> was used).
|
|
|
7145
7165
|
|
|
7146
7166
|
=head1 AUTHOR
|
|
7147
7167
|
|
|
7148
|
-
Copyright 2003-
|
|
7168
|
+
Copyright 2003-2021, Phil Harvey
|
|
7149
7169
|
|
|
7150
7170
|
This is free software; you can redistribute it and/or modify it under the
|
|
7151
7171
|
same terms as Perl itself.
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
#
|
|
26
26
|
# May also be used for string i/o (just pass a scalar reference)
|
|
27
27
|
#
|
|
28
|
-
# Legal: Copyright (c) 2003-
|
|
28
|
+
# Legal: Copyright (c) 2003-2021 Phil Harvey (philharvey66 at gmail.com)
|
|
29
29
|
# This library is free software; you can redistribute it and/or
|
|
30
30
|
# modify it under the same terms as Perl itself.
|
|
31
31
|
#------------------------------------------------------------------------------
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Description: Buffer to support random access reading of sequential file
|
|
5
5
|
#
|
|
6
|
-
# Legal: Copyright (c) 2003-
|
|
6
|
+
# Legal: Copyright (c) 2003-2021 Phil Harvey (philharvey66 at gmail.com)
|
|
7
7
|
# This library is free software; you can redistribute it and/or
|
|
8
8
|
# modify it under the same terms as Perl itself.
|
|
9
9
|
#------------------------------------------------------------------------------
|
|
@@ -236,7 +236,7 @@ the end of file is not allowed.
|
|
|
236
236
|
|
|
237
237
|
=head1 AUTHOR
|
|
238
238
|
|
|
239
|
-
Copyright 2003-
|
|
239
|
+
Copyright 2003-2021 Phil Harvey (philharvey66 at gmail.com)
|
|
240
240
|
|
|
241
241
|
This library is free software; you can redistribute it and/or modify it
|
|
242
242
|
under the same terms as Perl itself.
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Revisions: Nov. 12/2003 - P. Harvey Created
|
|
9
9
|
# (See html/history.html for revision history)
|
|
10
10
|
#
|
|
11
|
-
# Legal: Copyright (c) 2003-
|
|
11
|
+
# Legal: Copyright (c) 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
|
12
12
|
# This library is free software; you can redistribute it and/or
|
|
13
13
|
# modify it under the same terms as Perl itself.
|
|
14
14
|
#------------------------------------------------------------------------------
|
|
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
|
30
30
|
|
|
31
|
-
$VERSION = '12.
|
|
31
|
+
$VERSION = '12.17';
|
|
32
32
|
$RELEASE = '';
|
|
33
33
|
@ISA = qw(Exporter);
|
|
34
34
|
%EXPORT_TAGS = (
|
|
@@ -3395,7 +3395,11 @@ sub GetGroup($$;$)
|
|
|
3395
3395
|
my @grps;
|
|
3396
3396
|
# create list of group names (without identical adjacent groups if simplifying)
|
|
3397
3397
|
foreach (@families) {
|
|
3398
|
-
my $grp = $groups[$_]
|
|
3398
|
+
my $grp = $groups[$_];
|
|
3399
|
+
unless ($grp) {
|
|
3400
|
+
next if $simplify;
|
|
3401
|
+
$grp = '';
|
|
3402
|
+
}
|
|
3399
3403
|
push @grps, $grp unless $simplify and @grps and $grp eq $grps[-1];
|
|
3400
3404
|
}
|
|
3401
3405
|
# remove leading "Main:" if simplifying
|
|
@@ -6691,6 +6695,22 @@ sub ProcessJPEG($$)
|
|
|
6691
6695
|
# extract the Stim information (it is in standard TIFF format)
|
|
6692
6696
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Stim::Main');
|
|
6693
6697
|
$self->ProcessTIFF(\%dirInfo, $tagTablePtr);
|
|
6698
|
+
} elsif ($$self{Make} eq 'DJI') {
|
|
6699
|
+
$dumpType = 'DJI ThermalData';
|
|
6700
|
+
# add this data to the combined data if it exists
|
|
6701
|
+
my $dataPt = $segDataPt;
|
|
6702
|
+
if (defined $combinedSegData) {
|
|
6703
|
+
$combinedSegData .= $$segDataPt;
|
|
6704
|
+
$dataPt = \$combinedSegData;
|
|
6705
|
+
}
|
|
6706
|
+
if ($nextMarker == $marker) {
|
|
6707
|
+
$combinedSegData = $$segDataPt unless defined $combinedSegData;
|
|
6708
|
+
} else {
|
|
6709
|
+
# process DJI FLIR thermal data
|
|
6710
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
|
6711
|
+
$self->HandleTag($tagTablePtr, 'APP3', $$dataPt);
|
|
6712
|
+
undef $combinedSegData;
|
|
6713
|
+
}
|
|
6694
6714
|
} elsif ($$segDataPt =~ /^\xff\xd8\xff\xdb/) {
|
|
6695
6715
|
$dumpType = 'PreviewImage'; # (Samsung, HP, BenQ)
|
|
6696
6716
|
$preview = $$segDataPt;
|
|
@@ -6725,6 +6745,11 @@ sub ProcessJPEG($$)
|
|
|
6725
6745
|
# set flag if this is the last FPXR segment
|
|
6726
6746
|
$dirInfo{LastFPXR} = not ($nextMarker==$marker and $$nextSegDataPt=~/^FPXR\0/),
|
|
6727
6747
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
6748
|
+
} elsif ($$self{Make} eq 'DJI' and $$segDataPt =~ /^\xaa\x55\x12\x06/) {
|
|
6749
|
+
$dumpType = 'DJI ThermalParams';
|
|
6750
|
+
DirStart(\%dirInfo, 0, 0);
|
|
6751
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::DJI::ThermalParams');
|
|
6752
|
+
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
6728
6753
|
} elsif ($preview) {
|
|
6729
6754
|
# continued Samsung S1060 preview from APP3
|
|
6730
6755
|
$dumpType = 'PreviewImage';
|
|
@@ -6747,6 +6772,10 @@ sub ProcessJPEG($$)
|
|
|
6747
6772
|
} elsif ($$segDataPt =~ /^ssuniqueid\0/) {
|
|
6748
6773
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Samsung::APP5');
|
|
6749
6774
|
$self->HandleTag($tagTablePtr, 'ssuniqueid', substr($$segDataPt, 11));
|
|
6775
|
+
} elsif ($$self{Make} eq 'DJI') {
|
|
6776
|
+
$dumpType = 'DJI ThermalCal';
|
|
6777
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
|
6778
|
+
$self->HandleTag($tagTablePtr, 'APP5', $$segDataPt);
|
|
6750
6779
|
} elsif ($preview) {
|
|
6751
6780
|
$dumpType = 'PreviewImage';
|
|
6752
6781
|
$preview .= $$segDataPt;
|
|
@@ -6782,6 +6811,10 @@ sub ProcessJPEG($$)
|
|
|
6782
6811
|
my $tagTablePtr = GetTagTable('Image::ExifTool::GoPro::GPMF');
|
|
6783
6812
|
DirStart(\%dirInfo, 6);
|
|
6784
6813
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
6814
|
+
} elsif ($$segDataPt =~ /^DTAT\0\0.\{/s) {
|
|
6815
|
+
$dumpType = 'DJI_DTAT';
|
|
6816
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
|
6817
|
+
$self->HandleTag($tagTablePtr, 'APP6', $$segDataPt);
|
|
6785
6818
|
}
|
|
6786
6819
|
} elsif ($marker == 0xe7) { # APP7 (Pentax, Huawei, Qualcomm)
|
|
6787
6820
|
if ($$segDataPt =~ /^PENTAX \0(II|MM)/) {
|