exiftool_vendored 12.38.0 → 12.42.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +83 -1
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -45
  7. data/bin/arg_files/exif2xmp.args +5 -0
  8. data/bin/arg_files/xmp2exif.args +6 -0
  9. data/bin/config_files/acdsee.config +6 -6
  10. data/bin/config_files/photoshop_paths.config +30 -7
  11. data/bin/config_files/picasa_faces.config +1 -1
  12. data/bin/config_files/pix4d.config +2 -2
  13. data/bin/config_files/tiff_version.config +2 -2
  14. data/bin/exiftool +98 -66
  15. data/bin/lib/File/RandomAccess.pm +1 -1
  16. data/bin/lib/File/RandomAccess.pod +2 -2
  17. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  18. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  20. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  21. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  22. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  23. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  25. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  26. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  27. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  28. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  29. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
  30. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Canon.pm +90 -7
  32. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  33. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  34. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  35. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  36. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  37. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  39. data/bin/lib/Image/ExifTool/DJI.pm +60 -2
  40. data/bin/lib/Image/ExifTool/DNG.pm +9 -3
  41. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  42. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  43. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  44. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  45. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Exif.pm +62 -21
  47. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  51. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  52. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  53. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  54. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  55. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  56. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  58. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  59. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  61. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  62. data/bin/lib/Image/ExifTool/Geotag.pm +4 -3
  63. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  64. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  65. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  66. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  67. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  68. data/bin/lib/Image/ExifTool/ICC_Profile.pm +11 -9
  69. data/bin/lib/Image/ExifTool/ID3.pm +6 -6
  70. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  71. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  74. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  76. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  77. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  78. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  81. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  82. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  83. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  98. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  99. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  100. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  101. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  102. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  103. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  106. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MacOS.pm +10 -10
  116. data/bin/lib/Image/ExifTool/MakerNotes.pm +18 -2
  117. data/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  118. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  119. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  120. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Nikon.pm +929 -184
  123. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  124. data/bin/lib/Image/ExifTool/NikonCustom.pm +522 -6
  125. data/bin/lib/Image/ExifTool/NikonSettings.pm +17 -18
  126. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  127. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  128. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  129. data/bin/lib/Image/ExifTool/Olympus.pm +28 -8
  130. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  131. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  133. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  134. data/bin/lib/Image/ExifTool/PDF.pm +3 -2
  135. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  136. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  138. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PNG.pm +28 -8
  140. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  142. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  143. data/bin/lib/Image/ExifTool/Panasonic.pm +11 -2
  144. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  145. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Pentax.pm +4 -3
  147. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  148. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  149. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Photoshop.pm +7 -6
  151. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  152. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  154. data/bin/lib/Image/ExifTool/QuickTime.pm +10 -6
  155. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
  156. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  157. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  158. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Samsung.pm +238 -3
  166. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  168. data/bin/lib/Image/ExifTool/Shift.pl +3 -1
  169. data/bin/lib/Image/ExifTool/Shortcuts.pm +4 -2
  170. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  171. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Sony.pm +11 -5
  173. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  175. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  176. data/bin/lib/Image/ExifTool/TagLookup.pm +6398 -6290
  177. data/bin/lib/Image/ExifTool/TagNames.pod +397 -47
  178. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  179. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  181. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  182. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  183. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  184. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  185. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  186. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  187. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  188. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  189. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  190. data/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  191. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  192. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  193. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +9 -4
  194. data/bin/lib/Image/ExifTool/WriteXMP.pl +3 -1
  195. data/bin/lib/Image/ExifTool/Writer.pl +7 -6
  196. data/bin/lib/Image/ExifTool/XMP.pm +49 -23
  197. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  198. data/bin/lib/Image/ExifTool/XMPStruct.pl +22 -8
  199. data/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  200. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  201. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  202. data/bin/lib/Image/ExifTool.pm +30 -14
  203. data/bin/lib/Image/ExifTool.pod +71 -69
  204. data/bin/perl-Image-ExifTool.spec +43 -43
  205. data/lib/exiftool_vendored/version.rb +1 -1
  206. metadata +2 -2
data/bin/exiftool CHANGED
@@ -8,9 +8,10 @@
8
8
  # (See html/history.html for revision history)
9
9
  #------------------------------------------------------------------------------
10
10
  use strict;
11
+ use warnings;
11
12
  require 5.004;
12
13
 
13
- my $version = '12.38';
14
+ my $version = '12.42';
14
15
 
15
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
17
  BEGIN {
@@ -109,6 +110,8 @@ my %database; # lookup for database information based on file name (in Exi
109
110
  my %filterExt; # lookup for filtered extensions
110
111
  my %ignore; # directory names to ignore
111
112
  my $ignoreHidden; # flag to ignore hidden files
113
+ my %outComma; # flag that output text file needs a comma
114
+ my %outTrailer; # trailer for output text file
112
115
  my %preserveTime; # preserved timestamps for files
113
116
  my %printFmt; # the contents of the print format file
114
117
  my %setTags; # hash of list references for tags to set from files
@@ -441,6 +444,8 @@ undef %database;
441
444
  undef %endDir;
442
445
  undef %filterExt;
443
446
  undef %ignore;
447
+ undef %outComma;
448
+ undef %outTrailer;
444
449
  undef %printFmt;
445
450
  undef %preserveTime;
446
451
  undef %setTags;
@@ -1821,8 +1826,21 @@ if ($filtered and not $validFile) {
1821
1826
  PrintCSV() if $csv and not $isWriting;
1822
1827
 
1823
1828
  # print folder/file trailer if necessary
1824
- print $sectTrailer if $sectTrailer and not $textOut;
1825
- print $fileTrailer if $fileTrailer and not $textOut and not $fileHeader;
1829
+ if ($textOut) {
1830
+ foreach (keys %outTrailer) {
1831
+ next unless $outTrailer{$_};
1832
+ if ($mt->Open(\*OUTTRAIL, $_, '>>')) {
1833
+ my $fp = \*OUTTRAIL;
1834
+ print $fp $outTrailer{$_};
1835
+ close $fp;
1836
+ } else {
1837
+ Error("Error appending to $_\n");
1838
+ }
1839
+ }
1840
+ } else {
1841
+ print $sectTrailer if $sectTrailer;
1842
+ print $fileTrailer if $fileTrailer and not $fileHeader;
1843
+ }
1826
1844
 
1827
1845
  my $totWr = $countGoodWr + $countBadWr + $countSameWr + $countCopyWr +
1828
1846
  $countGoodCr + $countBadCr;
@@ -2160,6 +2178,9 @@ sub GetImageInfo($$)
2160
2178
  $tmpText = $outfile unless $append;
2161
2179
  }
2162
2180
 
2181
+ # restore state of comma flag for this file if appending
2182
+ $comma = $outComma{$outfile} if $append and ($textOverwrite & 0x02);
2183
+
2163
2184
  # print the results for this file
2164
2185
  if (%printFmt) {
2165
2186
  # output using print format file (-p) option
@@ -2221,7 +2242,7 @@ sub GetImageInfo($$)
2221
2242
  if ($fp) {
2222
2243
  # print file header (only once)
2223
2244
  if ($fileHeader) {
2224
- print $fp $fileHeader;
2245
+ print $fp $fileHeader unless defined $outfile and ($created{$outfile} or $appended{$outfile});
2225
2246
  undef $fileHeader unless $textOut;
2226
2247
  }
2227
2248
  if ($html) {
@@ -2533,8 +2554,9 @@ TAG: foreach $tag (@foundTags) {
2533
2554
  if ($showTagID or $outFormat < 0) {
2534
2555
  $val = { val => $val };
2535
2556
  if ($showTagID) {
2536
- my $id = $et->GetTagID($tag);
2557
+ my ($id, $lang) = $et->GetTagID($tag);
2537
2558
  $id = sprintf('0x%.4x', $id) if $showTagID eq 'H' and $id =~ /^\d+$/;
2559
+ $$val{lang} = $lang if $lang;
2538
2560
  $$val{id} = $id;
2539
2561
  }
2540
2562
  if ($tabFormat) {
@@ -2674,9 +2696,17 @@ TAG: foreach $tag (@foundTags) {
2674
2696
  }
2675
2697
  }
2676
2698
  if ($outfile) {
2677
- # write section and file trailers before closing the file
2678
- print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
2679
- print $fp $fileTrailer if $fileTrailer;
2699
+ if ($textOverwrite & 0x02) {
2700
+ # save state of this file if we may be appending
2701
+ $outComma{$outfile} = $comma;
2702
+ $outTrailer{$outfile} = '';
2703
+ $outTrailer{$outfile} .= $sectTrailer and $sectTrailer = '' if $sectTrailer;
2704
+ $outTrailer{$outfile} .= $fileTrailer if $fileTrailer;
2705
+ } else {
2706
+ # write section and file trailers before closing the file
2707
+ print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
2708
+ print $fp $fileTrailer if $fileTrailer;
2709
+ }
2680
2710
  close($fp);
2681
2711
  undef $tmpText;
2682
2712
  if ($lineCount) {
@@ -2926,7 +2956,7 @@ sub SetImageInfo($$$)
2926
2956
  }
2927
2957
  }
2928
2958
  if (defined $outfile) {
2929
- $verbose and print $vout "'${infile}' --> '${outfile}'\n";
2959
+ defined $verbose and print $vout "'${infile}' --> '${outfile}'\n";
2930
2960
  # create output directory if necessary
2931
2961
  CreateDirectory($outfile);
2932
2962
  # set temporary file (automatically erased on abnormal exit)
@@ -4459,7 +4489,7 @@ B<exiftool> [I<OPTIONS>] -I<TAG>[+-E<lt>]=[I<VALUE>]... I<FILE>...
4459
4489
  =head2 Copying
4460
4490
 
4461
4491
  B<exiftool> [I<OPTIONS>] B<-tagsFromFile> I<SRCFILE>
4462
- [-I<SRCTAG>[E<gt>I<DSTTAG>]...] I<FILE>...
4492
+ [-[I<DSTTAG>E<lt>]I<SRCTAG>...] I<FILE>...
4463
4493
 
4464
4494
  =head2 Other
4465
4495
 
@@ -4499,48 +4529,48 @@ supported by ExifTool (r = read, w = write, c = create):
4499
4529
 
4500
4530
  File Types
4501
4531
  ------------+-------------+-------------+-------------+------------
4502
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RIFF r
4503
- 3FR r | DSS r | JP2 r/w | ODS r | RSRC r
4504
- 3G2 r/w | DV r | JPEG r/w | ODT r | RTF r
4505
- 3GP r/w | DVB r/w | JSON r | OFR r | RW2 r/w
4506
- A r | DVR-MS r | JXL r | OGG r | RWL r/w
4507
- AA r | DYLIB r | K25 r | OGV r | RWZ r
4508
- AAE r | EIP r | KDC r | ONP r | RM r
4509
- AAX r/w | EPS r/w | KEY r | OPUS r | SEQ r
4510
- ACR r | EPUB r | LA r | ORF r/w | SKETCH r
4511
- AFM r | ERF r/w | LFP r | ORI r/w | SO r
4512
- AI r/w | EXE r | LIF r | OTF r | SR2 r/w
4513
- AIFF r | EXIF r/w/c | LNK r | PAC r | SRF r
4514
- APE r | EXR r | LRV r/w | PAGES r | SRW r/w
4515
- ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SVG r
4516
- ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | SWF r
4517
- ASF r | FFF r/w | MACOS r | PCX r | THM r/w
4518
- AVI r | FITS r | MAX r | PDB r | TIFF r/w
4519
- AVIF r/w | FLA r | MEF r/w | PDF r/w | TORRENT r
4520
- AZW r | FLAC r | MIE r/w/ | PEF r/w | TTC r
4521
- BMP r | FLIF r/w | MIFF r c | PFA r | TTF r
4522
- BPG r | FLV r | MKA r | PFB r | TXT r
4523
- BTF r | FPF r | MKS r | PFM r | VCF r
4524
- CHM r | FPX r | MKV r | PGF r | VRD r/w/c
4525
- COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
4526
- CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
4527
- CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
4528
- CRM r/w | HDP r/w | MOI r | PMP r | WEBP r
4529
- CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
4530
- CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
4531
- CSV r | HEIF r/w | MP3 r | PPT r | WMV r
4532
- CZI r | HTML r | MP4 r/w | PPTX r | WTV r
4533
- DCM r | ICC r/w/c | MPC r | PS r/w | WV r
4534
- DCP r/w | ICS r | MPG r | PSB r/w | X3F r/w
4535
- DCR r | IDML r | MPO r/w | PSD r/w | XCF r
4536
- DFONT r | IIQ r/w | MQV r/w | PSP r | XLS r
4537
- DIVX r | IND r/w | MRC r | QTIF r/w | XLSX r
4538
- DJVU r | INSP r/w | MRW r/w | R3D r | XMP r/w/c
4539
- DLL r | INSV r | MXF r | RA r | ZIP r
4540
- DNG r/w | INX r | NEF r/w | RAF r/w |
4541
- DOC r | ISO r | NRW r/w | RAM r |
4542
- DOCX r | ITC r | NUMBERS r | RAR r |
4543
- DPX r | J2C r | O r | RAW r/w |
4532
+ 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
4533
+ 3FR r | DSS r | JP2 r/w | ODP r | RIFF r
4534
+ 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
4535
+ 3GP r/w | DVB r/w | JSON r | ODT r | RTF r
4536
+ A r | DVR-MS r | JXL r | OFR r | RW2 r/w
4537
+ AA r | DYLIB r | K25 r | OGG r | RWL r/w
4538
+ AAE r | EIP r | KDC r | OGV r | RWZ r
4539
+ AAX r/w | EPS r/w | KEY r | ONP r | RM r
4540
+ ACR r | EPUB r | LA r | OPUS r | SEQ r
4541
+ AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
4542
+ AI r/w | EXE r | LIF r | ORI r/w | SO r
4543
+ AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
4544
+ APE r | EXR r | LRV r/w | PAC r | SRF r
4545
+ ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
4546
+ ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
4547
+ ASF r | FFF r/w | MACOS r | PCD r | SWF r
4548
+ AVI r | FITS r | MAX r | PCX r | THM r/w
4549
+ AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
4550
+ AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
4551
+ BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
4552
+ BPG r | FLV r | MKA r | PFA r | TTF r
4553
+ BTF r | FPF r | MKS r | PFB r | TXT r
4554
+ CHM r | FPX r | MKV r | PFM r | VCF r
4555
+ COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
4556
+ CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
4557
+ CR3 r/w | GZ r | MODD r | PLIST r | WAV r
4558
+ CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
4559
+ CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
4560
+ CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
4561
+ CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
4562
+ CZI r | HTML r | MP4 r/w | PPT r | WMV r
4563
+ DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
4564
+ DCP r/w | ICS r | MPG r | PS r/w | WV r
4565
+ DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
4566
+ DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
4567
+ DIVX r | IND r/w | MRC r | PSP r | XLS r
4568
+ DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
4569
+ DLL r | INSV r | MXF r | R3D r | XMP r/w/c
4570
+ DNG r/w | INX r | NEF r/w | RA r | ZIP r
4571
+ DOC r | ISO r | NKSC r/w | RAF r/w |
4572
+ DOCX r | ITC r | NRW r/w | RAM r |
4573
+ DPX r | J2C r | NUMBERS r | RAR r |
4544
4574
 
4545
4575
  Meta Information
4546
4576
  ----------------------+----------------------+---------------------
@@ -5136,13 +5166,14 @@ The following examples demonstrate basic use of the B<-csv> option:
5136
5166
  # update metadata for all images in a directory from CSV file
5137
5167
  exiftool -csv=a.csv dir
5138
5168
 
5139
- Empty values are ignored when importing (unless the B<-f> option is used and
5140
- the API MissingTagValue is set to an empty string, in which case the tag is
5169
+ When importing, empty values are ignored unless the B<-f> option is used and
5170
+ the API MissingTagValue is set to an empty string (in which case the tag is
5141
5171
  deleted). Also, FileName and Directory columns are ignored if they exist
5142
- (ie. ExifTool will not attempt to write these tags with a CSV import). To
5143
- force a tag to be deleted, use the B<-f> option and set the value to "-" in
5144
- the CSV file (or to the MissingTagValue if this API option was used).
5145
- Multiple databases may be imported in a single command.
5172
+ (ie. ExifTool will not attempt to write these tags with a CSV import), but
5173
+ all other columns are imported. To force a tag to be deleted, use the B<-f>
5174
+ option and set the value to "-" in the CSV file (or to the MissingTagValue
5175
+ if this API option was used). Multiple databases may be imported in a
5176
+ single command.
5146
5177
 
5147
5178
  When exporting a CSV file, the B<-g> or B<-G> option adds group names to the
5148
5179
  tag headings. If the B<-a> option is used to allow duplicate tag names, the
@@ -5436,7 +5467,7 @@ with this command:
5436
5467
 
5437
5468
  produces output like this:
5438
5469
 
5439
- -- Generated by ExifTool 12.38 --
5470
+ -- Generated by ExifTool 12.42 --
5440
5471
  File: a.jpg - 2003:10:31 15:44:19
5441
5472
  (f/5.6, 1/60s, ISO 100)
5442
5473
  File: b.jpg - 2006:05:23 11:57:38
@@ -5555,7 +5586,9 @@ level greater than 0, most other options are ignored and normal console
5555
5586
  output is suppressed unless specific tags are extracted. Using B<-v0>
5556
5587
  causes the console output buffer to be flushed after each line (which may be
5557
5588
  useful to avoid delays when piping exiftool output), and prints the name of
5558
- each processed file when writing. Also see the B<-progress> option.
5589
+ each processed file when writing and the new file name when renaming,
5590
+ moving or copying. Verbose levels above B<-v0> do not flush after each
5591
+ line. Also see the B<-progress> option.
5559
5592
 
5560
5593
  =item B<-w>[+|!] I<EXT> or I<FMT> (B<-textOut>)
5561
5594
 
@@ -5768,11 +5801,10 @@ an XMP extension for the output file.
5768
5801
  =item B<-a>, B<--a> (B<-duplicates>, B<--duplicates>)
5769
5802
 
5770
5803
  Allow (B<-a>) or suppress (B<--a>) duplicate tag names to be extracted. By
5771
- default, duplicate tags are suppressed when reading unless the B<-ee> or
5772
- B<-X> options are used or the Duplicates option is enabled in the
5773
- configuration file. This option has an affect when writing only to allow
5774
- duplicate Warning messages to be shown. Duplicate tags are always extracted
5775
- when copying.
5804
+ default, duplicate tags are suppressed when reading unless the B<-ee> or B<-X>
5805
+ options are used or the Duplicates option is enabled in the configuration file.
5806
+ When writing, this option allows multiple Warning messages to be shown.
5807
+ Duplicate tags are always extracted when copying.
5776
5808
 
5777
5809
  =item B<-e> (B<--composite>)
5778
5810
 
@@ -7250,7 +7282,7 @@ the commands if B<-execute> was used).
7250
7282
 
7251
7283
  =head1 AUTHOR
7252
7284
 
7253
- Copyright 2003-2021, Phil Harvey
7285
+ Copyright 2003-2022, Phil Harvey
7254
7286
 
7255
7287
  This is free software; you can redistribute it and/or modify it under the
7256
7288
  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-2021 Phil Harvey (philharvey66 at gmail.com)
28
+ # Legal: Copyright (c) 2003-2022 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-2021 Phil Harvey (philharvey66 at gmail.com)
6
+ # Legal: Copyright (c) 2003-2022 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-2021 Phil Harvey (philharvey66 at gmail.com)
239
+ Copyright 2003-2022 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.
@@ -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-2021, Phil Harvey (philharvey66 at gmail.com)
480
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
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.
@@ -259,7 +259,7 @@ scanning for AFCP information.
259
259
 
260
260
  =head1 AUTHOR
261
261
 
262
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
262
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
263
263
 
264
264
  This library is free software; you can redistribute it and/or modify it
265
265
  under the same terms as Perl itself.
@@ -287,7 +287,7 @@ information from AIFF (Audio Interchange File Format) audio files.
287
287
 
288
288
  =head1 AUTHOR
289
289
 
290
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
290
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
291
291
 
292
292
  This library is free software; you can redistribute it and/or modify it
293
293
  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-2021, Phil Harvey (philharvey66 at gmail.com)
266
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
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-2021, Phil Harvey (philharvey66 at gmail.com)
308
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
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.
@@ -876,7 +876,7 @@ Windows Media Audio (WMA) and Windows Media Video (WMV) files.
876
876
 
877
877
  =head1 AUTHOR
878
878
 
879
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
879
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
880
880
 
881
881
  This library is free software; you can redistribute it and/or modify it
882
882
  under the same terms as Perl itself.
@@ -149,7 +149,7 @@ Apple maker notes in EXIF information.
149
149
 
150
150
  =head1 AUTHOR
151
151
 
152
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
152
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
153
153
 
154
154
  This library is free software; you can redistribute it and/or modify it
155
155
  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-2021, Phil Harvey (philharvey66 at gmail.com)
294
+ Copyright 2003-2022, 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.
@@ -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-2021, Phil Harvey (philharvey66 at gmail.com)
338
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
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.
@@ -231,7 +231,7 @@ This module contains definitions required by Image::ExifTool to read BPG
231
231
 
232
232
  =head1 AUTHOR
233
233
 
234
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
234
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
235
235
 
236
236
  This library is free software; you can redistribute it and/or modify it
237
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-2021, Phil Harvey (philharvey66 at gmail.com)
448
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
449
449
  Copyright 2002, Leon Bottou and Yann Le Cun
450
450
  Copyright 2001, AT&T
451
451
  Copyright 1999-2001, LizardTech Inc.
@@ -275,7 +275,7 @@ information in BigTIFF images.
275
275
 
276
276
  =head1 AUTHOR
277
277
 
278
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
278
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
279
279
 
280
280
  This library is free software; you can redistribute it and/or modify it
281
281
  under the same terms as Perl itself.
@@ -669,7 +669,7 @@ L<Image::ExifTool::BuildTagLookup|Image::ExifTool::BuildTagLookup>.
669
669
 
670
670
  ~head1 AUTHOR
671
671
 
672
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
672
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
673
673
 
674
674
  This library is free software; you can redistribute it and/or modify it
675
675
  under the same terms as Perl itself.
@@ -905,8 +905,10 @@ TagID: foreach $tagID (@keys) {
905
905
  foreach (@grps) {
906
906
  warn "Group name starts with 'ID-' for $short $name\n" if /^ID-/i;
907
907
  }
908
- if ($isXMP and not $$tagInfo{Avoid} and not $$tagInfo{Struct}) {
909
- $dupXmpTag{$name} and warn "Duplicate XMP tag $name\n";
908
+ if ($isXMP and not $$tagInfo{Avoid} and not $$tagInfo{Struct} and
909
+ ($$tagInfo{Writable} or $$table{WRITABLE}))
910
+ {
911
+ $dupXmpTag{$name} and warn "Duplicate writable XMP tag $name\n";
910
912
  $dupXmpTag{$name} = 1;
911
913
  }
912
914
  # validate Name (must not start with a digit or else XML output will not be valid;
@@ -2760,7 +2762,7 @@ Returned list of writable pseudo tags.
2760
2762
 
2761
2763
  =head1 AUTHOR
2762
2764
 
2763
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2765
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2764
2766
 
2765
2767
  This library is free software; you can redistribute it and/or modify it
2766
2768
  under the same terms as Perl itself.
@@ -307,7 +307,7 @@ specification.
307
307
 
308
308
  =head1 AUTHOR
309
309
 
310
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
310
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
311
311
 
312
312
  This library is free software; you can redistribute it and/or modify it
313
313
  under the same terms as Perl itself.
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.55';
91
+ $VERSION = '4.58';
92
92
 
93
93
  # Note: Removed 'USM' from 'L' lenses since it is redundant - PH
94
94
  # (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -197,6 +197,7 @@ $VERSION = '4.55';
197
197
  44 => 'Canon EF 90-300mm f/4.5-5.6', #32
198
198
  45 => 'Canon EF-S 18-55mm f/3.5-5.6 [II]', #PH (same ID for version II, ref 20)
199
199
  46 => 'Canon EF 28-90mm f/4-5.6', #32
200
+ # 46 => 'Tamron 28-300mm f/3.5-6.3 Di VC PZD (A010)', # (also possibly?)
200
201
  47 => 'Zeiss Milvus 35mm f/2 or 50mm f/2', #IB
201
202
  47.1 => 'Zeiss Milvus 50mm f/2 Makro', #IB
202
203
  47.2 => 'Zeiss Milvus 135mm f/2 ZE', #IB
@@ -208,6 +209,7 @@ $VERSION = '4.55';
208
209
  53 => 'Canon EF-S 18-55mm f/3.5-5.6 III', #Jon Charnas
209
210
  54 => 'Canon EF-S 55-250mm f/4-5.6 IS II', #47
210
211
  60 => 'Irix 11mm f/4', #50
212
+ 63 => 'Irix 30mm F1.4 Dragonfly', #IB
211
213
  80 => 'Canon TS-E 50mm f/2.8L Macro', #42
212
214
  81 => 'Canon TS-E 90mm f/2.8L Macro', #42
213
215
  82 => 'Canon TS-E 135mm f/4L Macro', #42
@@ -570,7 +572,9 @@ $VERSION = '4.55';
570
572
  61494 => 'Canon CN-E 85mm T1.3 L F', #PH
571
573
  61495 => 'Canon CN-E 135mm T2.2 L F', #PH
572
574
  61496 => 'Canon CN-E 35mm T1.5 L F', #PH
573
- # see RFLensType tag for master list of 61182 RF lenses
575
+ #
576
+ # see RFLensType tag for master list of 61182 RF lenses
577
+ #
574
578
  61182 => 'Canon RF 50mm F1.2L USM or other Canon RF Lens',
575
579
  61182.1 => 'Canon RF 24-105mm F4L IS USM',
576
580
  61182.2 => 'Canon RF 28-70mm F2L USM',
@@ -599,7 +603,15 @@ $VERSION = '4.55';
599
603
  '61182.25' => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
600
604
  '61182.26' => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
601
605
  '61182.27' => 'Canon RF 16mm F2.8 STM', #42
602
- #'61182.xx' => 'Canon RF 100mm F2.8L MACRO IS USM',
606
+ '61182.28' => 'Canon RF 400mm F2.8L IS USM', #IB
607
+ '61182.29' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
608
+ '61182.30' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
609
+ '61182.31' => 'Canon RF 600mm F4L IS USM', #GiaZopatti
610
+ # we need the RFLensType values for the following...
611
+ '61182.32' => 'Canon RF 800mm F5.6L IS USM', #PH (NC)
612
+ '61182.33' => 'Canon RF 1200mm F8L IS USM', #PH (NC)
613
+ '61182.34' => 'Canon RF 5.2mm F2.8L Dual Fisheye 3D VR', #PH (NC)
614
+ '61182.35' => 'Canon RF 100mm F2.8L MACRO IS USM', #(NC)
603
615
  65535 => 'n/a',
604
616
  );
605
617
 
@@ -970,8 +982,8 @@ my %canonQuality = (
970
982
  4 => 'RAW',
971
983
  5 => 'Superfine',
972
984
  7 => 'CRAW', #42
973
- 130 => 'Normal Movie', #22
974
- 131 => 'Movie (2)', #PH (7DmkII 1920x1080)
985
+ 130 => 'Light (RAW)', #github#119
986
+ 131 => 'Standard (RAW)', #github#119
975
987
  );
976
988
  my %canonImageSize = (
977
989
  -1 => 'n/a',
@@ -1018,7 +1030,7 @@ my %canonWhiteBalance = (
1018
1030
  20 => 'PC Set4', #PH
1019
1031
  21 => 'PC Set5', #PH
1020
1032
  # 22 - Custom 2?
1021
- 23 => 'Auto (ambience priority)', #PH (5DS)
1033
+ 23 => 'Auto (ambience priority)', #PH (5DS) (perhaps this needs re-thinking?: forum13295)
1022
1034
  # 30 - Click White Balance?
1023
1035
  # 31 - Shot Settings?
1024
1036
  # 137 - Tungsten?
@@ -2053,6 +2065,13 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
2053
2065
  TagTable => 'Image::ExifTool::Canon::HDRInfo',
2054
2066
  }
2055
2067
  },
2068
+ 0x4026 => { #github#119
2069
+ Name => 'LogInfo',
2070
+ SubDirectory => {
2071
+ Validate => 'Image::ExifTool::Canon::Validate($dirData,$subdirStart,$size)',
2072
+ TagTable => 'Image::ExifTool::Canon::LogInfo',
2073
+ }
2074
+ },
2056
2075
  0x4028 => { #PH
2057
2076
  Name => 'AFConfig', # (AFTabInfo)
2058
2077
  SubDirectory => {
@@ -2126,6 +2145,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
2126
2145
  4 => 'Continuous, Low', #PH
2127
2146
  5 => 'Continuous, High', #PH
2128
2147
  6 => 'Silent Single', #PH
2148
+ 8 => 'Continuous, High+', #WolfgangGulcker
2129
2149
  # ref A: https://exiftool.org/forum/index.php/topic,5701.msg27843.html#msg27843
2130
2150
  9 => 'Single, Silent', #A
2131
2151
  10 => 'Continuous, Silent', #A
@@ -6789,6 +6809,10 @@ my %ciMaxFocal = (
6789
6809
  284 => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
6790
6810
  285 => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
6791
6811
  288 => 'Canon RF 16mm F2.8 STM', #42
6812
+ 289 => 'Canon RF 400mm F2.8L IS USM', #IB
6813
+ 290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
6814
+ 291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
6815
+ 292 => 'Canon RF 600mm F4L IS USM', #GiaZopatti
6792
6816
  #xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
6793
6817
  # Note: add new RF lenses to %canonLensTypes with ID 61182
6794
6818
  },
@@ -8701,6 +8725,65 @@ my %filterConv = (
8701
8725
  # 3 - maybe related to AutoImageAlign?
8702
8726
  );
8703
8727
 
8728
+ # More color information (MakerNotes tag 0x4026) (ref github issue #119)
8729
+ %Image::ExifTool::Canon::LogInfo = (
8730
+ %binaryDataAttrs,
8731
+ FORMAT => 'int32s',
8732
+ FIRST_ENTRY => 1,
8733
+ PRIORITY => 0,
8734
+ 4 => {
8735
+ Name => 'CompressionFormat',
8736
+ PrintConv => {
8737
+ 0 => 'Editing (ALL-I)',
8738
+ 1 => 'Standard (IPB)',
8739
+ 2 => 'Light (IPB)',
8740
+ 3 => 'Motion JPEG',
8741
+ 4 => 'RAW', # either Standard or Light, depending on Quality
8742
+ },
8743
+ },
8744
+ 6 => { # 0 to 7
8745
+ Name => 'Sharpness',
8746
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8747
+ },
8748
+ 7 => { # -4 to 4
8749
+ Name => 'Saturation',
8750
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8751
+ %Image::ExifTool::Exif::printParameter,
8752
+ },
8753
+ 8 => { # -4 to 4
8754
+ Name => 'ColorTone',
8755
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8756
+ %Image::ExifTool::Exif::printParameter,
8757
+ },
8758
+ 9 => {
8759
+ Name => 'ColorSpace2',
8760
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8761
+ PrintConv => {
8762
+ 0 => 'BT.709',
8763
+ 1 => 'BT.2020',
8764
+ 2 => 'CinemaGamut',
8765
+ },
8766
+ },
8767
+ 10 => {
8768
+ Name => 'ColorMatrix',
8769
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8770
+ PrintConv => {
8771
+ 0 => 'EOS Original',
8772
+ 1 => 'Neutral',
8773
+ },
8774
+ },
8775
+ 11 => {
8776
+ Name => 'CanonLogVersion', # (increases dynamic range of sensor data)
8777
+ RawConv => '$val == 0x7fffffff ? undef : $val',
8778
+ PrintConv => {
8779
+ 0 => 'OFF',
8780
+ 1 => 'CLogV1',
8781
+ 2 => 'CLogV2', # (NC)
8782
+ 3 => 'CLogV3',
8783
+ },
8784
+ },
8785
+ );
8786
+
8704
8787
  # AF configuration info (MakerNotes tag 0x4028) (ref PH)
8705
8788
  %Image::ExifTool::Canon::AFConfig = (
8706
8789
  %binaryDataAttrs,
@@ -10064,7 +10147,7 @@ Canon maker notes in EXIF information.
10064
10147
 
10065
10148
  =head1 AUTHOR
10066
10149
 
10067
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
10150
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
10068
10151
 
10069
10152
  This library is free software; you can redistribute it and/or modify it
10070
10153
  under the same terms as Perl itself.