exiftool_vendored 10.65.0 → 11.41.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +818 -19
  3. data/bin/MANIFEST +38 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +48 -44
  7. data/bin/arg_files/exif2xmp.args +4 -1
  8. data/bin/arg_files/gps2xmp.args +4 -1
  9. data/bin/arg_files/iptcCore.args +8 -0
  10. data/bin/arg_files/xmp2exif.args +4 -1
  11. data/bin/arg_files/xmp2gps.args +4 -1
  12. data/bin/config_files/dji.config +131 -0
  13. data/bin/config_files/example.config +6 -2
  14. data/bin/config_files/gps2utm.config +256 -256
  15. data/bin/config_files/nksc.config +146 -0
  16. data/bin/config_files/picasa_faces.config +382 -382
  17. data/bin/exiftool +688 -408
  18. data/bin/fmt_files/gpx.fmt +10 -6
  19. data/bin/fmt_files/gpx_wpt.fmt +10 -6
  20. data/bin/fmt_files/kml.fmt +8 -5
  21. data/bin/lib/File/RandomAccess.pm +48 -8
  22. data/bin/lib/File/RandomAccess.pod +21 -2
  23. data/bin/lib/Image/ExifTool.pm +645 -256
  24. data/bin/lib/Image/ExifTool.pod +219 -164
  25. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  26. data/bin/lib/Image/ExifTool/AFCP.pm +3 -8
  27. data/bin/lib/Image/ExifTool/AIFF.pm +12 -4
  28. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  29. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  30. data/bin/lib/Image/ExifTool/ASF.pm +19 -6
  31. data/bin/lib/Image/ExifTool/Apple.pm +13 -5
  32. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  33. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  34. data/bin/lib/Image/ExifTool/BPG.pm +17 -15
  35. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  36. data/bin/lib/Image/ExifTool/BigTIFF.pm +30 -15
  37. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +103 -52
  38. data/bin/lib/Image/ExifTool/Canon.pm +684 -112
  39. data/bin/lib/Image/ExifTool/CanonCustom.pm +119 -9
  40. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  41. data/bin/lib/Image/ExifTool/CanonVRD.pm +13 -26
  42. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  43. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  44. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  45. data/bin/lib/Image/ExifTool/DICOM.pm +12 -5
  46. data/bin/lib/Image/ExifTool/DJI.pm +51 -3
  47. data/bin/lib/Image/ExifTool/DNG.pm +15 -8
  48. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  49. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  50. data/bin/lib/Image/ExifTool/DarwinCore.pm +63 -23
  51. data/bin/lib/Image/ExifTool/DjVu.pm +4 -2
  52. data/bin/lib/Image/ExifTool/EXE.pm +30 -6
  53. data/bin/lib/Image/ExifTool/Exif.pm +351 -109
  54. data/bin/lib/Image/ExifTool/FITS.pm +148 -0
  55. data/bin/lib/Image/ExifTool/FLAC.pm +2 -2
  56. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  57. data/bin/lib/Image/ExifTool/FLIR.pm +109 -13
  58. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  59. data/bin/lib/Image/ExifTool/Flash.pm +3 -3
  60. data/bin/lib/Image/ExifTool/FlashPix.pm +433 -9
  61. data/bin/lib/Image/ExifTool/Font.pm +2 -2
  62. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  63. data/bin/lib/Image/ExifTool/FujiFilm.pm +336 -16
  64. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  65. data/bin/lib/Image/ExifTool/GIF.pm +5 -7
  66. data/bin/lib/Image/ExifTool/GIMP.pm +39 -3
  67. data/bin/lib/Image/ExifTool/GPS.pm +48 -22
  68. data/bin/lib/Image/ExifTool/GeoTiff.pm +23 -23
  69. data/bin/lib/Image/ExifTool/Geotag.pm +80 -45
  70. data/bin/lib/Image/ExifTool/GoPro.pm +709 -0
  71. data/bin/lib/Image/ExifTool/H264.pm +40 -18
  72. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  73. data/bin/lib/Image/ExifTool/HTML.pm +19 -12
  74. data/bin/lib/Image/ExifTool/HtmlDump.pm +37 -26
  75. data/bin/lib/Image/ExifTool/ICC_Profile.pm +297 -23
  76. data/bin/lib/Image/ExifTool/ID3.pm +12 -7
  77. data/bin/lib/Image/ExifTool/IPTC.pm +48 -19
  78. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  79. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Import.pm +13 -9
  81. data/bin/lib/Image/ExifTool/InDesign.pm +3 -5
  82. data/bin/lib/Image/ExifTool/JPEG.pm +22 -11
  83. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  84. data/bin/lib/Image/ExifTool/JSON.pm +3 -3
  85. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Jpeg2000.pm +2 -2
  87. data/bin/lib/Image/ExifTool/Kodak.pm +1233 -58
  88. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  89. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/de.pm +33 -24
  92. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +64 -2
  93. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +64 -2
  94. data/bin/lib/Image/ExifTool/Lang/es.pm +8 -4
  95. data/bin/lib/Image/ExifTool/Lang/fi.pm +46 -4
  96. data/bin/lib/Image/ExifTool/Lang/fr.pm +5 -3
  97. data/bin/lib/Image/ExifTool/Lang/it.pm +6 -3
  98. data/bin/lib/Image/ExifTool/Lang/ja.pm +15 -3
  99. data/bin/lib/Image/ExifTool/Lang/ko.pm +5 -2
  100. data/bin/lib/Image/ExifTool/Lang/nl.pm +6 -3
  101. data/bin/lib/Image/ExifTool/Lang/pl.pm +2 -2
  102. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  103. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  104. data/bin/lib/Image/ExifTool/Lang/tr.pm +4 -2
  105. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  106. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  107. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  108. data/bin/lib/Image/ExifTool/Lytro.pm +4 -8
  109. data/bin/lib/Image/ExifTool/M2TS.pm +10 -9
  110. data/bin/lib/Image/ExifTool/MIE.pm +12 -8
  111. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  112. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  116. data/bin/lib/Image/ExifTool/MPEG.pm +2 -3
  117. data/bin/lib/Image/ExifTool/MPF.pm +6 -6
  118. data/bin/lib/Image/ExifTool/MWG.pm +4 -4
  119. data/bin/lib/Image/ExifTool/MXF.pm +2 -2
  120. data/bin/lib/Image/ExifTool/MacOS.pm +184 -34
  121. data/bin/lib/Image/ExifTool/MakerNotes.pm +101 -18
  122. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Microsoft.pm +5 -3
  124. data/bin/lib/Image/ExifTool/Minolta.pm +89 -62
  125. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  126. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  127. data/bin/lib/Image/ExifTool/Nikon.pm +1511 -380
  128. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  129. data/bin/lib/Image/ExifTool/NikonCustom.pm +2758 -2935
  130. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  131. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Olympus.pm +47 -8
  134. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  135. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  136. data/bin/lib/Image/ExifTool/PCX.pm +138 -0
  137. data/bin/lib/Image/ExifTool/PDF.pm +58 -42
  138. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PLIST.pm +12 -5
  141. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PNG.pm +108 -10
  143. data/bin/lib/Image/ExifTool/PPM.pm +3 -3
  144. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  145. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Panasonic.pm +299 -31
  147. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +201 -19
  148. data/bin/lib/Image/ExifTool/Pentax.pm +164 -143
  149. data/bin/lib/Image/ExifTool/PhaseOne.pm +12 -5
  150. data/bin/lib/Image/ExifTool/PhotoCD.pm +9 -10
  151. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Photoshop.pm +230 -60
  153. data/bin/lib/Image/ExifTool/PostScript.pm +29 -4
  154. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Qualcomm.pm +2 -2
  156. data/bin/lib/Image/ExifTool/QuickTime.pm +1539 -279
  157. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1857 -0
  158. data/bin/lib/Image/ExifTool/README +84 -46
  159. data/bin/lib/Image/ExifTool/RIFF.pm +116 -23
  160. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  161. data/bin/lib/Image/ExifTool/RTF.pm +6 -4
  162. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Rawzor.pm +3 -2
  164. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Reconyx.pm +261 -7
  166. data/bin/lib/Image/ExifTool/Red.pm +325 -0
  167. data/bin/lib/Image/ExifTool/Ricoh.pm +3 -7
  168. data/bin/lib/Image/ExifTool/Samsung.pm +95 -25
  169. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  170. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Shift.pl +26 -12
  172. data/bin/lib/Image/ExifTool/Shortcuts.pm +9 -2
  173. data/bin/lib/Image/ExifTool/Sigma.pm +36 -30
  174. data/bin/lib/Image/ExifTool/SigmaRaw.pm +3 -8
  175. data/bin/lib/Image/ExifTool/Sony.pm +531 -177
  176. data/bin/lib/Image/ExifTool/SonyIDC.pm +63 -3
  177. data/bin/lib/Image/ExifTool/Stim.pm +2 -2
  178. data/bin/lib/Image/ExifTool/TagInfoXML.pm +23 -23
  179. data/bin/lib/Image/ExifTool/TagLookup.pm +6352 -5062
  180. data/bin/lib/Image/ExifTool/TagNames.pod +3024 -565
  181. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  182. data/bin/lib/Image/ExifTool/Torrent.pm +2 -2
  183. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  184. data/bin/lib/Image/ExifTool/VCard.pm +47 -9
  185. data/bin/lib/Image/ExifTool/Validate.pm +391 -99
  186. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  187. data/bin/lib/Image/ExifTool/WTV.pm +319 -0
  188. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  189. data/bin/lib/Image/ExifTool/WriteExif.pl +91 -18
  190. data/bin/lib/Image/ExifTool/WriteIPTC.pl +6 -6
  191. data/bin/lib/Image/ExifTool/WritePDF.pl +13 -12
  192. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  193. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  194. data/bin/lib/Image/ExifTool/WritePostScript.pl +2 -2
  195. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +764 -121
  196. data/bin/lib/Image/ExifTool/WriteXMP.pl +176 -67
  197. data/bin/lib/Image/ExifTool/Writer.pl +490 -246
  198. data/bin/lib/Image/ExifTool/XMP.pm +216 -76
  199. data/bin/lib/Image/ExifTool/XMP2.pl +54 -10
  200. data/bin/lib/Image/ExifTool/XMPStruct.pl +14 -11
  201. data/bin/lib/Image/ExifTool/ZIP.pm +60 -15
  202. data/bin/lib/Image/ExifTool/iWork.pm +12 -5
  203. data/bin/perl-Image-ExifTool.spec +46 -44
  204. data/lib/exiftool_vendored/version.rb +1 -1
  205. metadata +14 -4
@@ -477,7 +477,7 @@ main purpose of encryption, so this really can't be considered a bug.
477
477
 
478
478
  =head1 AUTHOR
479
479
 
480
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
480
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
481
481
 
482
482
  This library is free software; you can redistribute it and/or modify it
483
483
  under the same terms as Perl itself.
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.07';
17
+ $VERSION = '1.08';
18
18
 
19
19
  sub ProcessAFCP($$);
20
20
 
@@ -149,12 +149,7 @@ NoAFCP: for (;;) {
149
149
  if ($verbose > 2 and not $outfile) {
150
150
  my $dat = $buff . $dir;
151
151
  print $out " AFCP Directory:\n";
152
- HexDump(\$dat, undef,
153
- Addr => $$dirInfo{DataPos},
154
- Width => 12,
155
- Prefix => $$et{INDENT},
156
- Out => $out,
157
- );
152
+ $et->VerboseDump(\$dat, Addr => $$dirInfo{DataPos}, Width => 12);
158
153
  }
159
154
  $fix and $et->Warn("Adjusted AFCP offsets by $fix", 1);
160
155
  #
@@ -264,7 +259,7 @@ scanning for AFCP information.
264
259
 
265
260
  =head1 AUTHOR
266
261
 
267
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
262
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
268
263
 
269
264
  This library is free software; you can redistribute it and/or modify it
270
265
  under the same terms as Perl itself.
@@ -18,7 +18,7 @@ use vars qw($VERSION);
18
18
  use Image::ExifTool qw(:DataAccess :Utils);
19
19
  use Image::ExifTool::ID3;
20
20
 
21
- $VERSION = '1.07';
21
+ $VERSION = '1.09';
22
22
 
23
23
  # information for time/date-based tags (time zero is Jan 1, 1904)
24
24
  my %timeInfo = (
@@ -99,6 +99,14 @@ my %timeInfo = (
99
99
  MAC3 => 'MAC 3-to-1',
100
100
  MAC6 => 'MAC 6-to-1',
101
101
  sowt => 'Little-endian, no compression',
102
+ alaw => 'a-law',
103
+ ALAW => 'A-law',
104
+ ulaw => 'mu-law',
105
+ ULAW => 'Mu-law',
106
+ 'GSM '=> 'GSM',
107
+ G722 => 'G722',
108
+ G726 => 'G726',
109
+ G728 => 'G728',
102
110
  },
103
111
  },
104
112
  11 => { #PH
@@ -214,7 +222,7 @@ sub ProcessAIFF($$)
214
222
  $pos += 8;
215
223
  my ($tag, $len) = unpack('a4N', $buff);
216
224
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
217
- $et->VPrint(0, "AIFF '$tag' chunk ($len bytes of data):\n");
225
+ $et->VPrint(0, "AIFF '${tag}' chunk ($len bytes of data):\n");
218
226
  # AIFF chunks are padded to an even number of bytes
219
227
  my $len2 = $len + ($len & 0x01);
220
228
  if ($tagInfo) {
@@ -235,7 +243,7 @@ sub ProcessAIFF($$)
235
243
  );
236
244
  } elsif ($verbose > 2 and $len2 < 1024000) {
237
245
  $raf->Read($buff, $len2) == $len2 or $err = 1, last;
238
- HexDump(\$buff, undef, MaxLen => 512);
246
+ $et->VerboseDump(\$buff);
239
247
  } else {
240
248
  $raf->Seek($len2, 1) or $err=1, last;
241
249
  }
@@ -264,7 +272,7 @@ information from AIFF (Audio Interchange File Format) audio files.
264
272
 
265
273
  =head1 AUTHOR
266
274
 
267
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
275
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
268
276
 
269
277
  This library is free software; you can redistribute it and/or modify it
270
278
  under the same terms as Perl itself.
@@ -263,7 +263,7 @@ Currently doesn't parse MAC header unless it is at the start of the file.
263
263
 
264
264
  =head1 AUTHOR
265
265
 
266
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
266
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
267
267
 
268
268
  This library is free software; you can redistribute it and/or modify it
269
269
  under the same terms as Perl itself.
@@ -305,7 +305,7 @@ APP12 meta information.
305
305
 
306
306
  =head1 AUTHOR
307
307
 
308
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
308
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
309
309
 
310
310
  This library is free software; you can redistribute it and/or modify it
311
311
  under the same terms as Perl itself.
@@ -17,7 +17,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
17
17
  use Image::ExifTool::Exif;
18
18
  use Image::ExifTool::RIFF;
19
19
 
20
- $VERSION = '1.23';
20
+ $VERSION = '1.25';
21
21
 
22
22
  sub ProcessASF($$;$);
23
23
  sub ProcessContentDescription($$$);
@@ -154,6 +154,9 @@ my %advancedContentEncryption = (
154
154
  3 => 'CopyrightURL',
155
155
  );
156
156
 
157
+ # Note: Many of these tags are similar to those in Image::ExifTool::Microsoft::Xtra
158
+ # and Image::ExifTool::WTV::Metadata
159
+ # (tags in this table may have a leading "WM/" removed)
157
160
  %Image::ExifTool::ASF::ExtendedDescr = (
158
161
  PROCESS_PROC => \&ProcessExtendedContentDescription,
159
162
  GROUPS => { 2 => 'Video' },
@@ -238,7 +241,7 @@ my %advancedContentEncryption = (
238
241
  DVDID => {},
239
242
  EncodedBy => {},
240
243
  EncodingSettings => {},
241
- EncodingTime => { Groups => { 2 => 'Time' } },
244
+ EncodingTime => { Groups => { 2 => 'Time' }, PrintConv => '$self->ConvertDateTime($val)' },
242
245
  Genre => {},
243
246
  GenreID => {},
244
247
  InitialKey => {},
@@ -260,7 +263,11 @@ my %advancedContentEncryption = (
260
263
  MediaIsSubtitled => {},
261
264
  MediaIsTape => {},
262
265
  MediaNetworkAffiliation => {},
263
- MediaOriginalBroadcastDateTime => { Groups => { 2 => 'Time' } },
266
+ MediaOriginalBroadcastDateTime => {
267
+ Groups => { 2 => 'Time' },
268
+ ValueConv => '$val=~tr/-T/: /; $val',
269
+ PrintConv => '$self->ConvertDateTime($val)',
270
+ },
264
271
  MediaOriginalChannel => {},
265
272
  MediaStationCallSign => {},
266
273
  MediaStationName => {},
@@ -270,7 +277,11 @@ my %advancedContentEncryption = (
270
277
  OriginalArtist => {},
271
278
  OriginalFilename => 'OriginalFileName',
272
279
  OriginalLyricist => {},
273
- OriginalReleaseTime => { Groups => { 2 => 'Time' } },
280
+ OriginalReleaseTime => {
281
+ Groups => { 2 => 'Time' },
282
+ ValueConv => '$val=~tr/-T/: /; $val',
283
+ PrintConv => '$self->ConvertDateTime($val)',
284
+ },
274
285
  OriginalReleaseYear => { Groups => { 2 => 'Time' } },
275
286
  ParentalRating => {},
276
287
  ParentalRatingReason => {},
@@ -380,8 +391,10 @@ my %advancedContentEncryption = (
380
391
  },
381
392
  32 => { Name => 'DataPackets', Format => 'int64u' },
382
393
  40 => {
383
- Name => 'PlayDuration',
394
+ Name => 'Duration',
384
395
  Format => 'int64u',
396
+ Notes => 'called PlayDuration by the ASF spec',
397
+ Priority => 0,
385
398
  ValueConv => '$val / 1e7',
386
399
  PrintConv => 'ConvertDuration($val)',
387
400
  },
@@ -863,7 +876,7 @@ Windows Media Audio (WMA) and Windows Media Video (WMV) files.
863
876
 
864
877
  =head1 AUTHOR
865
878
 
866
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
879
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
867
880
 
868
881
  This library is free software; you can redistribute it and/or modify it
869
882
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool::Exif;
16
16
  use Image::ExifTool::PLIST;
17
17
 
18
- $VERSION = '1.03';
18
+ $VERSION = '1.04';
19
19
 
20
20
  # Apple iPhone metadata (ref PH)
21
21
  %Image::ExifTool::Apple::Main = (
@@ -24,7 +24,7 @@ $VERSION = '1.03';
24
24
  WRITABLE => 1,
25
25
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
26
26
  NOTES => 'Tags extracted from the maker notes of iPhone images.',
27
- # 0x0001 - int32s: seen 0,1,2,3,4
27
+ # 0x0001 - int32s: seen 0,1,2,3,4,9
28
28
  # 0x0002 - binary plist with a single data object of size 512 bytes (iPhone5s)
29
29
  0x0003 => {
30
30
  Name => 'RunTime', # (includes time plugged in, but not when suspended, ref 1)
@@ -67,16 +67,24 @@ $VERSION = '1.03';
67
67
  Notes => 'unique ID for all images in a burst',
68
68
  },
69
69
  # 0x000c - rational64s[2]: eg) "0.1640625 0.19921875"
70
- # 0x000d - int32s: 0,1,6,20,40
70
+ # 0x000d - int32s: 0,1,6,20,24,32,40
71
71
  # 0x000e - int32s: 0,1,4,12 (Orienation? 0=landscape? 4=portrait? ref 1)
72
72
  # 0x000f - int32s: 2,3
73
73
  # 0x0010 - int32s: 1
74
- # 0x0011 - string[37]: some type of UID, eg. "FFCBAC24-E547-4BBC-AF47-38B1A3D845E3\0" (iPhone 6s, iOS 6.1)
74
+ 0x0011 => {
75
+ Name => 'ContentIdentifier', #forum8750
76
+ Writable => 'string',
77
+ },
75
78
  # 0x0014 - int32s: 1,2,3,4,5 (iPhone 6s, iOS 6.1)
76
79
  0x0015 => {
77
80
  Name => 'ImageUniqueID',
78
81
  Writable => 'string',
79
82
  },
83
+ # 0x0016 - string[29]: "AXZ6pMTOh2L+acSh4Kg630XCScoO\0"
84
+ # 0x0017 - int32s: 0,8192
85
+ # 0x0019 - int32s: 0,2,128
86
+ # 0x001a - string[6]: "q825s\0"
87
+ # 0x001f - int32s: 0
80
88
  );
81
89
 
82
90
  # PLIST-format CMTime structure (ref PH)
@@ -140,7 +148,7 @@ Apple maker notes in EXIF information.
140
148
 
141
149
  =head1 AUTHOR
142
150
 
143
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
151
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
144
152
 
145
153
  This library is free software; you can redistribute it and/or modify it
146
154
  under the same terms as Perl itself.
@@ -291,7 +291,7 @@ information from Audible audio books.
291
291
 
292
292
  =head1 AUTHOR
293
293
 
294
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
294
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
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.
@@ -335,7 +335,7 @@ This module contains definitions required by Image::ExifTool to read BMP
335
335
 
336
336
  =head1 AUTHOR
337
337
 
338
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
338
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
339
339
 
340
340
  This library is free software; you can redistribute it and/or modify it
341
341
  under the same terms as Perl itself.
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.00';
17
+ $VERSION = '1.01';
18
18
 
19
19
  # BPG information
20
20
  %Image::ExifTool::BPG::Main = (
@@ -29,18 +29,20 @@ $VERSION = '1.00';
29
29
  Format => 'int16u',
30
30
  Mask => 0xe000,
31
31
  PrintConv => {
32
- 0x0000 => 'Grayscale',
33
- 0x2000 => '4:2:0 (chroma at 0.5, 0.5)',
34
- 0x4000 => '4:2:2 (chroma at 0.5, 0)',
35
- 0x6000 => '4:4:4',
36
- 0x8000 => '4:2:0 (chroma at 0, 0.5)',
37
- 0xa000 => '4:2:2 (chroma at 0, 0)',
32
+ 0 => 'Grayscale',
33
+ 1 => '4:2:0 (chroma at 0.5, 0.5)',
34
+ 2 => '4:2:2 (chroma at 0.5, 0)',
35
+ 3 => '4:4:4',
36
+ 4 => '4:2:0 (chroma at 0, 0.5)',
37
+ 5 => '4:2:2 (chroma at 0, 0)',
38
38
  },
39
39
  },
40
40
  4.1 => {
41
41
  Name => 'Alpha',
42
42
  Format => 'int16u',
43
43
  Mask => 0x1004,
44
+ BitShift => 0,
45
+ PrintHex => 1,
44
46
  PrintConv => {
45
47
  0x0000 => 'No Alpha Plane',
46
48
  0x1000 => 'Alpha Exists (color not premultiplied)',
@@ -52,19 +54,19 @@ $VERSION = '1.00';
52
54
  Name => 'BitDepth',
53
55
  Format => 'int16u',
54
56
  Mask => 0x0f00,
55
- ValueConv => '($val >> 8) + 8',
57
+ ValueConv => '$val + 8',
56
58
  },
57
59
  4.3 => {
58
60
  Name => 'ColorSpace',
59
61
  Format => 'int16u',
60
62
  Mask => 0x00f0,
61
63
  PrintConv => {
62
- 0x0000 => 'YCbCr (BT 601)',
63
- 0x0010 => 'RGB',
64
- 0x0020 => 'YCgCo',
65
- 0x0030 => 'YCbCr (BT 709)',
66
- 0x0040 => 'YCbCr (BT 2020)',
67
- 0x0050 => 'BT 2020 Constant Luminance',
64
+ 0 => 'YCbCr (BT 601)',
65
+ 1 => 'RGB',
66
+ 2 => 'YCgCo',
67
+ 3 => 'YCbCr (BT 709)',
68
+ 4 => 'YCbCr (BT 2020)',
69
+ 5 => 'BT 2020 Constant Luminance',
68
70
  },
69
71
  },
70
72
  4.4 => {
@@ -229,7 +231,7 @@ This module contains definitions required by Image::ExifTool to read BPG
229
231
 
230
232
  =head1 AUTHOR
231
233
 
232
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
234
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
233
235
 
234
236
  This library is free software; you can redistribute it and/or modify it
235
237
  under the same terms as Perl itself.
@@ -445,7 +445,7 @@ compression ability).
445
445
 
446
446
  =head1 AUTHOR
447
447
 
448
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
448
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
449
449
  Copyright 2002, Leon Bottou and Yann Le Cun
450
450
  Copyright 2001, AT&T
451
451
  Copyright 1999-2001, LizardTech Inc.
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
  use Image::ExifTool::Exif;
17
17
 
18
- $VERSION = '1.06';
18
+ $VERSION = '1.07';
19
19
 
20
20
  my $maxOffset = 0x7fffffff; # currently supported maximum data offset/size
21
21
 
@@ -31,8 +31,12 @@ sub ProcessBigIFD($$$)
31
31
  my $htmlDump = $$et{HTML_DUMP};
32
32
  my $dirName = $$dirInfo{DirName};
33
33
  my $dirStart = $$dirInfo{DirStart};
34
+ my ($offName, $nextOffName);
34
35
 
35
- $verbose = -1 if $htmlDump; # mix htmlDump into verbose so we can test for both at once
36
+ if ($htmlDump) {
37
+ $verbose = -1; # mix htmlDump into verbose so we can test for both at once
38
+ $offName = $$dirInfo{OffsetName};
39
+ }
36
40
 
37
41
  # loop through IFD chain
38
42
  for (;;) {
@@ -64,10 +68,13 @@ sub ProcessBigIFD($$$)
64
68
  my $nextIFD;
65
69
  $raf->Read($nextIFD, 8) == 8 or undef $nextIFD; # try to read next IFD pointer
66
70
  if ($htmlDump) {
67
- $et->HDump($bufPos-8, 8, "$dirName entries", "Entry count: $numEntries");
71
+ $et->HDump($bufPos-8, 8, "$dirName entries", "Entry count: $numEntries", undef, $offName);
68
72
  if (defined $nextIFD) {
69
- my $tip = sprintf("Offset: 0x%.8x", Image::ExifTool::Get64u(\$nextIFD, 0));
70
- $et->HDump($bufPos + 20 * $numEntries, 8, "Next IFD", $tip, 0);
73
+ my $off = Image::ExifTool::Get64u(\$nextIFD, 0);
74
+ my $tip = sprintf("Offset: 0x%.8x", $off);
75
+ my $id = $offName;
76
+ ($nextOffName, $id) = Image::ExifTool::Exif::NextOffsetName($et, $id) if $off;
77
+ $et->HDump($bufPos + 20 * $numEntries, 8, "Next IFD", $tip, 0, $id);
71
78
  }
72
79
  }
73
80
  # loop through all entries in this BigTIFF IFD
@@ -79,7 +86,7 @@ sub ProcessBigIFD($$$)
79
86
  my $formatSize = $Image::ExifTool::Exif::formatSize[$format];
80
87
  unless (defined $formatSize) {
81
88
  $et->HDump($bufPos+$entry,20,"[invalid IFD entry]",
82
- "Bad format value: $format", 1);
89
+ "Bad format value: $format", 1, $offName);
83
90
  # warn unless the IFD was just padded with zeros
84
91
  $et->Warn(sprintf("Unknown format ($format) for $dirName tag 0x%x",$tagID));
85
92
  return 0; # assume corrupted IFD
@@ -89,7 +96,7 @@ sub ProcessBigIFD($$$)
89
96
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tagID);
90
97
  next unless defined $tagInfo or $verbose;
91
98
  my $valuePtr = $entry + 12;
92
- my ($valBuff, $valBase, $rational);
99
+ my ($valBuff, $valBase, $rational, $subOffName);
93
100
  if ($size > 8) {
94
101
  if ($size > $maxOffset) {
95
102
  $et->Warn("Can't handle $dirName entry $index (huge size)");
@@ -148,11 +155,17 @@ sub ProcessBigIFD($$$)
148
155
  }
149
156
  }
150
157
  $tip .= "Value: $tval";
151
- $et->HDump($entry+$bufPos, 20, "$dname $colName", $tip, 1);
158
+ my ($id, $sid);
159
+ if ($tagInfo and $$tagInfo{SubIFD}) {
160
+ ($subOffName, $id, $sid) = Image::ExifTool::Exif::NextOffsetName($et, $offName);
161
+ } else {
162
+ $id = $offName;
163
+ }
164
+ $et->HDump($entry+$bufPos, 20, "$dname $colName", $tip, 1, $id);
152
165
  if ($size > 8) {
153
166
  # add value data block
154
167
  my $flg = ($tagInfo and $$tagInfo{SubDirectory} and $$tagInfo{MakerNotes}) ? 4 : 0;
155
- $et->HDump($valuePtr,$size,"$tagName value",'SAME', $flg);
168
+ $et->HDump($valuePtr,$size,"$tagName value",'SAME', $flg, $sid);
156
169
  }
157
170
  }
158
171
  if ($tagInfo and $$tagInfo{SubIFD}) {
@@ -174,11 +187,12 @@ sub ProcessBigIFD($$$)
174
187
  my $subdirName = $$tagInfo{Name};
175
188
  $subdirName .= $i if $i;
176
189
  my %subdirInfo = (
177
- RAF => $raf,
178
- DataPos => 0,
179
- DirStart => $offsets[$i],
180
- DirName => $subdirName,
181
- Parent => $dirInfo,
190
+ RAF => $raf,
191
+ DataPos => 0,
192
+ DirStart => $offsets[$i],
193
+ DirName => $subdirName,
194
+ Parent => $dirName,
195
+ OffsetName => $subOffName,
182
196
  );
183
197
  $et->ProcessDirectory(\%subdirInfo, $tagTablePtr, \&ProcessBigIFD);
184
198
  }
@@ -201,6 +215,7 @@ sub ProcessBigIFD($$$)
201
215
  defined $nextIFD or $et->Warn("Bad $dirName pointer"), return 0;
202
216
  $dirStart = Image::ExifTool::Get64u(\$nextIFD, 0);
203
217
  $dirStart or last;
218
+ $offName = $nextOffName;
204
219
  }
205
220
  return 1;
206
221
  }
@@ -260,7 +275,7 @@ information in BigTIFF images.
260
275
 
261
276
  =head1 AUTHOR
262
277
 
263
- Copyright 2003-2017, Phil Harvey (phil at owl.phy.queensu.ca)
278
+ Copyright 2003-2019, Phil Harvey (phil at owl.phy.queensu.ca)
264
279
 
265
280
  This library is free software; you can redistribute it and/or modify it
266
281
  under the same terms as Perl itself.