exiftool_vendored 12.12.0 → 12.17.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 (196) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +73 -3
  3. data/bin/MANIFEST +3 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +3 -3
  7. data/bin/exiftool +87 -57
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool.pm +36 -3
  11. data/bin/lib/Image/ExifTool.pod +12 -8
  12. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  13. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  14. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  15. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  16. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  17. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  18. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  19. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  23. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  24. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +14 -7
  25. data/bin/lib/Image/ExifTool/Canon.pm +3 -2
  26. data/bin/lib/Image/ExifTool/CanonCustom.pm +20 -2
  27. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DJI.pm +28 -2
  34. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DPX.pm +4 -4
  36. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. data/bin/lib/Image/ExifTool/Exif.pm +45 -16
  41. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -2
  51. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GPS.pm +6 -6
  55. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. data/bin/lib/Image/ExifTool/H264.pm +21 -6
  59. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  63. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  68. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
  70. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  72. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
  74. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  96. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  97. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  98. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  99. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  101. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  109. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  110. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  111. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  113. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  114. data/bin/lib/Image/ExifTool/Nikon.pm +315 -36
  115. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  116. data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  117. data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
  118. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  119. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  120. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  122. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  124. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  125. data/bin/lib/Image/ExifTool/PDF.pm +10 -2
  126. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  127. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  128. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PNG.pm +12 -4
  131. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  134. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  137. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  138. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  141. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  144. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  145. data/bin/lib/Image/ExifTool/QuickTime.pm +20 -14
  146. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
  147. data/bin/lib/Image/ExifTool/README +5 -4
  148. data/bin/lib/Image/ExifTool/RIFF.pm +85 -7
  149. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  150. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  151. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  161. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  163. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Sony.pm +6 -2
  165. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  166. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  167. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  168. data/bin/lib/Image/ExifTool/TagLookup.pm +3985 -3807
  169. data/bin/lib/Image/ExifTool/TagNames.pod +432 -21
  170. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  174. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  175. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  177. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  178. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  179. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  184. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  185. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -7
  187. data/bin/lib/Image/ExifTool/Writer.pl +32 -18
  188. data/bin/lib/Image/ExifTool/XMP.pm +44 -9
  189. data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
  190. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  191. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  192. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  193. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  194. data/bin/perl-Image-ExifTool.spec +1 -1
  195. data/lib/exiftool_vendored/version.rb +1 -1
  196. metadata +9 -4
@@ -2034,7 +2034,7 @@ Casio maker notes in EXIF information.
2034
2034
 
2035
2035
  =head1 AUTHOR
2036
2036
 
2037
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2037
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2038
2038
 
2039
2039
  This library is free software; you can redistribute it and/or modify it
2040
2040
  under the same terms as Perl itself.
@@ -420,7 +420,7 @@ when decoding certain types of information.
420
420
 
421
421
  =head1 AUTHOR
422
422
 
423
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
423
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
424
424
 
425
425
  This library is free software; you can redistribute it and/or modify it
426
426
  under the same terms as Perl itself.
@@ -3853,7 +3853,7 @@ No translation of special characters sets is done.
3853
3853
 
3854
3854
  =head1 AUTHOR
3855
3855
 
3856
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
3856
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
3857
3857
 
3858
3858
  This library is free software; you can redistribute it and/or modify it
3859
3859
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use Image::ExifTool::Exif;
15
15
  use Image::ExifTool::XMP;
16
16
  use Image::ExifTool::GPS;
17
17
 
18
- $VERSION = '1.02';
18
+ $VERSION = '1.03';
19
19
 
20
20
  my %convFloat2 = (
21
21
  PrintConv => 'sprintf("%+.2f", $val)',
@@ -44,6 +44,32 @@ my %convFloat2 = (
44
44
  0x0b => { Name => 'CameraRoll', Writable => 'float', %convFloat2 },
45
45
  );
46
46
 
47
+ # thermal parameters in APP4 of DJI ZH20T images (ref forum11401)
48
+ %Image::ExifTool::DJI::ThermalParams = (
49
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
50
+ GROUPS => { 0 => 'APP4', 2 => 'Image' },
51
+ NOTES => 'Thermal parameters extracted from APP4 of DJI RJPEG files from the ZH20T.',
52
+ # 0x00 - 0xaa551206 - temperature header magic number
53
+ 0x24 => { Name => 'K1', Format => 'float' },
54
+ 0x28 => { Name => 'K2', Format => 'float' },
55
+ 0x2c => { Name => 'K3', Format => 'float' },
56
+ 0x30 => { Name => 'K4', Format => 'float' },
57
+ 0x34 => { Name => 'KF', Format => 'float' },
58
+ 0x38 => { Name => 'B1', Format => 'float' },
59
+ 0x3c => { Name => 'B2', Format => 'float' },
60
+ 0x44 => { Name => 'ObjectDistance', Format => 'int16u' },
61
+ 0x46 => { Name => 'RelativeHumidity', Format => 'int16u' },
62
+ 0x48 => { Name => 'Emissivity', Format => 'int16u' },
63
+ 0x4a => { Name => 'Reflection', Format => 'int16u', },
64
+ 0x4c => { Name => 'AmbientTemperature', Format => 'int16u' }, # (aka D1)
65
+ 0x50 => { Name => 'D2', Format => 'int32s' },
66
+ 0x54 => { Name => 'KJ', Format => 'int16u' },
67
+ 0x56 => { Name => 'DB', Format => 'int16u' },
68
+ 0x58 => { Name => 'KK', Format => 'int16u' },
69
+ # 0x500 - 0x55aa1206 - device header magic number
70
+ # (nothing yet decoded from device header)
71
+ );
72
+
47
73
  %Image::ExifTool::DJI::XMP = (
48
74
  %Image::ExifTool::XMP::xmpTableDefaults,
49
75
  GROUPS => { 0 => 'XMP', 1 => 'XMP-drone-dji', 2 => 'Location' },
@@ -125,7 +151,7 @@ the maker notes in images from some DJI Phantom drones.
125
151
 
126
152
  =head1 AUTHOR
127
153
 
128
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
154
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
129
155
 
130
156
  This library is free software; you can redistribute it and/or modify it
131
157
  under the same terms as Perl itself.
@@ -820,7 +820,7 @@ information in DNG (Digital Negative) images.
820
820
 
821
821
  =head1 AUTHOR
822
822
 
823
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
823
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
824
824
 
825
825
  This library is free software; you can redistribute it and/or modify it
826
826
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use strict;
15
15
  use vars qw($VERSION);
16
16
  use Image::ExifTool qw(:DataAccess :Utils);
17
17
 
18
- $VERSION = '1.04';
18
+ $VERSION = '1.05';
19
19
 
20
20
  # DPX tags
21
21
  %Image::ExifTool::DPX::Main = (
@@ -158,11 +158,11 @@ $VERSION = '1.04';
158
158
  1588=> { Name => 'InputDeviceSerialNumber', Format => 'string[32]' },
159
159
  # 1620=> { Name => 'AspectRatio', Format => 'int32u' },
160
160
  1724 => { Name => 'OriginalFrameRate',Format => 'float' },
161
- 1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
161
+ 1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
162
162
  1732 => { Name => 'FrameID', Format => 'string[32]' },
163
163
  1764 => { Name => 'SlateInformation', Format => 'string[100]' },
164
164
  1920 => { Name => 'TimeCode', Format => 'int32u' }, #2
165
- 1940 => { Name => 'FrameRate', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
165
+ 1940 => { Name => 'FrameRate', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
166
166
  1972 => { Name => 'Reserved5', Format => 'string[76]', Unknown => 1 },
167
167
  2048 => { Name => 'UserID', Format => 'string[32]' },
168
168
  );
@@ -214,7 +214,7 @@ metadata from DPX (Digital Picture Exchange) images.
214
214
 
215
215
  =head1 AUTHOR
216
216
 
217
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
217
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
218
218
 
219
219
  This library is free software; you can redistribute it and/or modify it
220
220
  under the same terms as Perl itself.
@@ -291,7 +291,7 @@ information from DV (raw Digital Video) files.
291
291
 
292
292
  =head1 AUTHOR
293
293
 
294
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
294
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
295
295
 
296
296
  This library is free software; you can redistribute it and/or modify it
297
297
  under the same terms as Perl itself.
@@ -360,7 +360,7 @@ This file contains tag definitions for the Darwin Core XMP namespace.
360
360
 
361
361
  =head1 AUTHOR
362
362
 
363
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
363
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
364
364
 
365
365
  This library is free software; you can redistribute it and/or modify it
366
366
  under the same terms as Perl itself.
@@ -352,7 +352,7 @@ Image::ExifTool::AIFF.
352
352
 
353
353
  =head1 AUTHOR
354
354
 
355
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
355
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
356
356
 
357
357
  This library is free software; you can redistribute it and/or modify it
358
358
  under the same terms as Perl itself.
@@ -1398,7 +1398,7 @@ library files.
1398
1398
 
1399
1399
  =head1 AUTHOR
1400
1400
 
1401
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1401
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1402
1402
 
1403
1403
  This library is free software; you can redistribute it and/or modify it
1404
1404
  under the same terms as Perl itself.
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
56
56
  use Image::ExifTool qw(:DataAccess :Utils);
57
57
  use Image::ExifTool::MakerNotes;
58
58
 
59
- $VERSION = '4.31';
59
+ $VERSION = '4.32';
60
60
 
61
61
  sub ProcessExif($$$);
62
62
  sub WriteExif($$$);
@@ -1377,6 +1377,12 @@ my %opcodeInfo = (
1377
1377
  Count => 6,
1378
1378
  Priority => 0,
1379
1379
  },
1380
+ # 0x220 - int32u: 0 (IFD0, Xaiomi Redmi models)
1381
+ # 0x221 - int32u: 0 (IFD0, Xaiomi Redmi models)
1382
+ # 0x222 - int32u: 0 (IFD0, Xaiomi Redmi models)
1383
+ # 0x223 - int32u: 0 (IFD0, Xaiomi Redmi models)
1384
+ # 0x224 - int32u: 0,1 (IFD0, Xaiomi Redmi models)
1385
+ # 0x225 - string: "" (IFD0, Xaiomi Redmi models)
1380
1386
  0x22f => 'StripRowCounts',
1381
1387
  0x2bc => {
1382
1388
  Name => 'ApplicationNotes', # (writable directory!)
@@ -1998,6 +2004,7 @@ my %opcodeInfo = (
1998
2004
  0x885d => 'FaxSubAddress', #9
1999
2005
  0x885e => 'FaxRecvTime', #9
2000
2006
  0x8871 => 'FedexEDR', #exifprobe (NC)
2007
+ # 0x8889 - string: "portrait" (ExifIFD, Xiaomi POCO F1)
2001
2008
  0x888a => { #PH
2002
2009
  Name => 'LeafSubIFD',
2003
2010
  Format => 'int32u', # Leaf incorrectly uses 'undef' format!
@@ -2008,6 +2015,10 @@ my %opcodeInfo = (
2008
2015
  Start => '$val',
2009
2016
  },
2010
2017
  },
2018
+ # 0x8891 - int16u: 35 (ExifIFD, Xiaomi POCO F1)
2019
+ # 0x8894 - int16u: 0 (ExifIFD, Xiaomi POCO F1)
2020
+ # 0x8895 - int16u: 0 (ExifIFD, Xiaomi POCO F1)
2021
+ # 0x889a - int16u: 0 (ExifIFD, Xiaomi POCO F1)
2011
2022
  # 0x89ab - seen "11 100 130 16 0 0 0 0" in IFD0 of TIFF image from IR scanner (forum8470)
2012
2023
  0x9000 => {
2013
2024
  Name => 'ExifVersion',
@@ -2368,6 +2379,8 @@ my %opcodeInfo = (
2368
2379
  Name => 'CameraElevationAngle',
2369
2380
  Writable => 'rational64s',
2370
2381
  },
2382
+ # 0x9999 - string: camera settings (ExifIFD, Xiaomi POCO F1)
2383
+ # 0x9aaa - int8u[2176]: ? (ExifIFD, Xiaomi POCO F1)
2371
2384
  0x9c9b => {
2372
2385
  Name => 'XPTitle',
2373
2386
  Format => 'undef',
@@ -2547,6 +2560,7 @@ my %opcodeInfo = (
2547
2560
  5 => 'Color sequential area',
2548
2561
  7 => 'Trilinear',
2549
2562
  8 => 'Color sequential linear',
2563
+ # 15 - used by DJI XT2
2550
2564
  },
2551
2565
  },
2552
2566
  0xa300 => {
@@ -4715,8 +4729,8 @@ my %subSecConv = (
4715
4729
  },
4716
4730
  LensID => {
4717
4731
  Groups => { 2 => 'Camera' },
4732
+ Require => 'LensType',
4718
4733
  Desire => {
4719
- 0 => 'LensType',
4720
4734
  1 => 'FocalLength',
4721
4735
  2 => 'MaxAperture',
4722
4736
  3 => 'MaxApertureValue',
@@ -4735,25 +4749,16 @@ my %subSecConv = (
4735
4749
  Applies only to LensType values with a lookup table. May be configured
4736
4750
  by adding user-defined lenses
4737
4751
  },
4738
- # this LensID is only valid if the LensType has a PrintConv,
4739
- # or LensType or LensModel are the model name
4752
+ # this LensID is only valid if the LensType has a PrintConv or is a model name
4740
4753
  RawConv => q{
4741
4754
  my $printConv = $$self{TAG_INFO}{LensType}{PrintConv};
4742
- return $val if ref $printConv eq 'HASH' or
4743
- (ref $printConv eq 'ARRAY' and ref $$printConv[0] eq 'HASH') or
4744
- (defined $val[0] and $val[0] =~ /(mm|\d\/F)/) or
4745
- (defined $val[6] and $val[6] =~ /(mm|\d\/F)/);
4755
+ return $val if ref $printConv eq 'HASH' or (ref $printConv eq 'ARRAY' and
4756
+ ref $$printConv[0] eq 'HASH') or $val[0] =~ /(mm|\d\/F)/;
4746
4757
  return undef;
4747
4758
  },
4748
- ValueConv => '$val[0] || $val[6]',
4759
+ ValueConv => '$val',
4749
4760
  PrintConv => q{
4750
4761
  my $pcv;
4751
- # use LensModel ([6]) if LensType ([0]) is not populated
4752
- # (iPhone populates LensModel but not LensType)
4753
- if (not defined $val[0] and defined $val[6]) {
4754
- $val[0] = $val[6];
4755
- $prt[0] = $prt[6];
4756
- }
4757
4762
  # use LensType2 instead of LensType if available and valid (Sony E-mount lenses)
4758
4763
  # (0x8000 or greater; 0 for several older/3rd-party E-mount lenses)
4759
4764
  if (defined $val[9] and ($val[9] & 0x8000 or $val[9] == 0)) {
@@ -4781,6 +4786,30 @@ my %subSecConv = (
4781
4786
  return $lens;
4782
4787
  },
4783
4788
  },
4789
+ 'LensID-2' => {
4790
+ Name => 'LensID',
4791
+ Groups => { 2 => 'Camera' },
4792
+ Desire => {
4793
+ 0 => 'LensModel',
4794
+ 1 => 'Lens',
4795
+ 2 => 'XMP-aux:LensID',
4796
+ 3 => 'Make',
4797
+ },
4798
+ Inhibit => {
4799
+ 4 => 'Composite:LensID',
4800
+ },
4801
+ RawConv => q{
4802
+ return undef if defined $val[2] and defined $val[3];
4803
+ return $val if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
4804
+ return $val if defined $val[1] and $val[1] =~ /(mm|\d\/F)/;
4805
+ return undef;
4806
+ },
4807
+ ValueConv => q{
4808
+ return $val[0] if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
4809
+ return $val[1];
4810
+ },
4811
+ PrintConv => '$_=$val; s/(\d)\/F/$1mm F/; s/mmF/mm F/; s/(\d) mm/${1}mm/; s/ - /-/; $_',
4812
+ },
4784
4813
  );
4785
4814
 
4786
4815
  # table for unknown IFD entries
@@ -6591,7 +6620,7 @@ EXIF and TIFF meta information.
6591
6620
 
6592
6621
  =head1 AUTHOR
6593
6622
 
6594
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
6623
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6595
6624
 
6596
6625
  This library is free software; you can redistribute it and/or modify it
6597
6626
  under the same terms as Perl itself.
@@ -126,7 +126,7 @@ information from FITS (Flexible Image Transport System) images.
126
126
 
127
127
  =head1 AUTHOR
128
128
 
129
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
129
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
130
130
 
131
131
  This library is free software; you can redistribute it and/or modify it
132
132
  under the same terms as Perl itself.
@@ -284,7 +284,7 @@ information from Free Lossless Audio Codec (FLAC) audio files.
284
284
 
285
285
  =head1 AUTHOR
286
286
 
287
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
288
288
 
289
289
  This library is free software; you can redistribute it and/or modify it
290
290
  under the same terms as Perl itself.
@@ -329,7 +329,7 @@ meta information in FLIF (Free Lossless Image Format) images.
329
329
 
330
330
  =head1 AUTHOR
331
331
 
332
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
332
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
333
333
 
334
334
  This library is free software; you can redistribute it and/or modify it
335
335
  under the same terms as Perl itself.
@@ -1594,7 +1594,7 @@ Systems Inc. thermal image files (FFF, FPF and JPEG format).
1594
1594
 
1595
1595
  =head1 AUTHOR
1596
1596
 
1597
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1597
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1598
1598
 
1599
1599
  This library is free software; you can redistribute it and/or modify it
1600
1600
  under the same terms as Perl itself.
@@ -354,7 +354,7 @@ linear list when ApplyFixups() is called.
354
354
 
355
355
  =head1 AUTHOR
356
356
 
357
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
357
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
358
358
 
359
359
  This library is free software; you can redistribute it and/or modify it
360
360
  under the same terms as Perl itself.
@@ -721,7 +721,7 @@ will add AMF3 support.
721
721
 
722
722
  =head1 AUTHOR
723
723
 
724
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
724
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
725
725
 
726
726
  This library is free software; you can redistribute it and/or modify it
727
727
  under the same terms as Perl itself.
@@ -2370,7 +2370,7 @@ JPEG images.
2370
2370
 
2371
2371
  =head1 AUTHOR
2372
2372
 
2373
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2373
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2374
2374
 
2375
2375
  This library is free software; you can redistribute it and/or modify it
2376
2376
  under the same terms as Perl itself.
@@ -622,7 +622,7 @@ extracted from these formats.
622
622
 
623
623
  =head1 AUTHOR
624
624
 
625
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
625
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
626
626
 
627
627
  This library is free software; you can redistribute it and/or modify it
628
628
  under the same terms as Perl itself.
@@ -243,7 +243,7 @@ write information from the FotoWare FotoStation trailer.
243
243
 
244
244
  =head1 AUTHOR
245
245
 
246
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
246
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
247
247
 
248
248
  This library is free software; you can redistribute it and/or modify it
249
249
  under the same terms as Perl itself.
@@ -31,7 +31,7 @@ use vars qw($VERSION);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
  use Image::ExifTool::Exif;
33
33
 
34
- $VERSION = '1.78';
34
+ $VERSION = '1.79';
35
35
 
36
36
  sub ProcessFujiDir($$$);
37
37
  sub ProcessFaceRec($$$);
@@ -623,6 +623,7 @@ my %faceCategories = (
623
623
  0x700 => 'Eterna', #12
624
624
  0x800 => 'Classic Negative', #forum10536
625
625
  0x900 => 'Bleach Bypass', #forum10890
626
+ 0xa00 => 'Nostalgic Neg', #forum12085
626
627
  },
627
628
  },
628
629
  0x1402 => { #2
@@ -1658,7 +1659,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
1658
1659
 
1659
1660
  =head1 AUTHOR
1660
1661
 
1661
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1662
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1662
1663
 
1663
1664
  This library is free software; you can redistribute it and/or modify it
1664
1665
  under the same terms as Perl itself.
@@ -68,7 +68,7 @@ General Imaging maker notes.
68
68
 
69
69
  =head1 AUTHOR
70
70
 
71
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
71
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
72
72
 
73
73
  This library is free software; you can redistribute it and/or modify it
74
74
  under the same terms as Perl itself.
@@ -537,7 +537,7 @@ write GIF meta information.
537
537
 
538
538
  =head1 AUTHOR
539
539
 
540
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
540
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
541
541
 
542
542
  This library is free software; you can redistribute it and/or modify it
543
543
  under the same terms as Perl itself.
@@ -270,7 +270,7 @@ GIMP software.
270
270
 
271
271
  =head1 AUTHOR
272
272
 
273
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
273
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
274
274
 
275
275
  This library is free software; you can redistribute it and/or modify it
276
276
  under the same terms as Perl itself.