exiftool_vendored 11.99.0 → 12.06.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +119 -2
  3. data/bin/MANIFEST +5 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +32 -32
  7. data/bin/exiftool +55 -50
  8. data/bin/lib/Image/ExifTool.pm +155 -109
  9. data/bin/lib/Image/ExifTool.pod +103 -77
  10. data/bin/lib/Image/ExifTool/AIFF.pm +2 -2
  11. data/bin/lib/Image/ExifTool/APE.pm +2 -2
  12. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +11 -6
  13. data/bin/lib/Image/ExifTool/Canon.pm +2 -1
  14. data/bin/lib/Image/ExifTool/CanonCustom.pm +82 -16
  15. data/bin/lib/Image/ExifTool/DPX.pm +56 -2
  16. data/bin/lib/Image/ExifTool/DarwinCore.pm +16 -3
  17. data/bin/lib/Image/ExifTool/Exif.pm +15 -6
  18. data/bin/lib/Image/ExifTool/Font.pm +9 -2
  19. data/bin/lib/Image/ExifTool/GIF.pm +5 -0
  20. data/bin/lib/Image/ExifTool/GeoTiff.pm +2 -0
  21. data/bin/lib/Image/ExifTool/GoPro.pm +10 -1
  22. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  23. data/bin/lib/Image/ExifTool/ID3.pm +86 -12
  24. data/bin/lib/Image/ExifTool/Lang/de.pm +3 -1
  25. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  26. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  27. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  28. data/bin/lib/Image/ExifTool/Minolta.pm +3 -2
  29. data/bin/lib/Image/ExifTool/Nikon.pm +134 -15
  30. data/bin/lib/Image/ExifTool/Olympus.pm +34 -17
  31. data/bin/lib/Image/ExifTool/PNG.pm +14 -3
  32. data/bin/lib/Image/ExifTool/PPM.pm +5 -5
  33. data/bin/lib/Image/ExifTool/Panasonic.pm +147 -13
  34. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +33 -0
  35. data/bin/lib/Image/ExifTool/Parrot.pm +2 -1
  36. data/bin/lib/Image/ExifTool/Pentax.pm +2 -1
  37. data/bin/lib/Image/ExifTool/Photoshop.pm +2 -1
  38. data/bin/lib/Image/ExifTool/QuickTime.pm +204 -27
  39. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +355 -19
  40. data/bin/lib/Image/ExifTool/README +20 -19
  41. data/bin/lib/Image/ExifTool/Ricoh.pm +19 -1
  42. data/bin/lib/Image/ExifTool/Shift.pl +1 -0
  43. data/bin/lib/Image/ExifTool/SigmaRaw.pm +40 -33
  44. data/bin/lib/Image/ExifTool/Sony.pm +376 -11
  45. data/bin/lib/Image/ExifTool/TagLookup.pm +1949 -1872
  46. data/bin/lib/Image/ExifTool/TagNames.pod +329 -53
  47. data/bin/lib/Image/ExifTool/Validate.pm +4 -4
  48. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -0
  49. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +23 -15
  50. data/bin/lib/Image/ExifTool/Writer.pl +44 -21
  51. data/bin/lib/Image/ExifTool/XMP.pm +41 -4
  52. data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
  53. data/bin/lib/Image/ExifTool/ZISRAW.pm +123 -0
  54. data/bin/perl-Image-ExifTool.spec +31 -31
  55. data/lib/exiftool_vendored/version.rb +1 -1
  56. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01eeff66f9e45f6f726a4e44141317b4eac1becc2ae9eb079f4a9aad0b05291f
4
- data.tar.gz: 4a26cd2011a6c4d1fb4aeb9b696b190d5fb83d8d61bd35cd24a90b2c00e7480a
3
+ metadata.gz: b6fbacc803486908bf63bd351d8ea3d31bbe0cf1217b6bbab9ef074cde3f0ee3
4
+ data.tar.gz: fcb3492aae1fbdf6587a73ea5546eed530c09ac20c67fc1a77057becd1e87b0b
5
5
  SHA512:
6
- metadata.gz: 8d2f03f98474b2af36bf5fa1b1163228c61727d374273fddf69209443d72c6fd952a4ae82350897573fab244e79d12151de5e4a6648bd30296b59b0c98203930
7
- data.tar.gz: dbe7f778f5a9d034303b738bd3258d05bdccbeb0ba44fb897095d987952c4461580b092be2e3a1bd71ac0b546a97bd901293f2adc10904ad2aaad3d28e483a47
6
+ metadata.gz: 7101bbb72920052732e86bb2c44b828bbb901f89363768ebc5346d5225db5919e79de5de2ca8b0af2c77ccd6d62a9f2bf677c61479b877d06fecb88bbd8b29f8
7
+ data.tar.gz: 0d08e16271b5bd6fe9c4f9d154190a799b3d4bd3b3bdd777a42afa4b29786595869a3068fbc213a68135559d275bcfcf07a08f22d9fdc242130770905ca826cc
@@ -4,9 +4,125 @@ ExifTool Version History
4
4
 
5
5
  RSS feed: https://exiftool.org/rss.xml
6
6
 
7
- Note: The most recent production release is Version 11.85. (Other versions are
7
+ Note: The most recent production release is Version 12.00. (Other versions are
8
8
  considered development releases, and are not uploaded to CPAN.)
9
9
 
10
+ (I'll be on vacation from Aug 26 to Sep 3, 2020 so don't expect any
11
+ forum or email responses from me during this time - Phil H.)
12
+
13
+ Sept. 11, 2020 - Version 12.06
14
+
15
+ - Added read support for Lyrics3 metadata (and fixed problem where APE
16
+ metadata may be ignored if Lyrics3 exists)
17
+ - Added a new Panasonic VideoBurstMode value (thanks Klaus Homeister)
18
+ - Added a new Olympus MultipleExposureMode value
19
+ - Added a new Nikon LensID
20
+ - Added back conversions for XMP-dwc EventTime that were removed in 12.04 with
21
+ a patch to allow time-only values
22
+ - Decode GIF AspectRatio
23
+ - Decode Olympus FocusBracketStepSize (thanks Karsten)
24
+ - Extract PNG iDOT chunk in Binary format with the name AppleDataOffsets
25
+ - Process PNG images which do not start with mandatory IHDR chunk
26
+
27
+ Aug. 24, 2020 - Version 12.05
28
+
29
+ - Added a new Panasonic SelfTimer value (thanks Herb)
30
+ - Decode a few more DPX tags (thanks Harry Mallon)
31
+ - Extract AIFF APPL tag as ApplicationData
32
+ - Fixed bug writing QuickTime ItemList 'gnre' Genre values
33
+ - Fixed an incorrect value for Panasonic VideoBurstResolution (thanks Herb)
34
+ - Fixed problem when applying a time shift to some invalid makernote date/time
35
+ values
36
+
37
+ Aug. 10, 2020 - Version 12.04
38
+
39
+ - Added read support for Zeiss ZISRAW CZI files
40
+ - Added some new values for a couple of Olympus tags (thanks Sebastian)
41
+ - Decode a number of new tags for the Sony ILCE-7SM3 (thanks Jos Roost)
42
+ - Removed formatting restrictions on XMP-dwc:EventTime to allow a time-only
43
+ value to be written
44
+ - Moved new QuckTime ItemList tags added in version 12.02 to the proper group
45
+ (they were incorrectly added to the Keys group)
46
+ - Improved QuickTime -v3 output to show default language codes
47
+ - Patched -lang option to work for the values of somet tags with coded
48
+ translations
49
+ - Patched the format of a number of QuickTime tags when writing for improved
50
+ compatibility with iTunes and AtomicParsley
51
+ - Patched to write a default QuickTime language code of 0x0000 (null) instead
52
+ of 0x55c4 ('und')
53
+
54
+ July 29, 2020 - Version 12.03
55
+
56
+ - Added family 7 group names to allow tag ID's to be specified when reading
57
+ and writing
58
+ - Fixed a couple of typos in tag values (thanks Herb)
59
+ - API Changes:
60
+ - Added HexTagIDs option
61
+ - Enhanced GetNewValue() to allow family 7 groups names to be used
62
+ - Internal Changes:
63
+ - Changed Composite tag ID's to use "-" instead of "::" as a separator
64
+
65
+ July 27, 2020 - Version 12.02
66
+
67
+ - Added support for a number of new QuickTime ItemList tags
68
+ - Added support for writing XMP-xmp:RatingPercent
69
+ - Added a new Sony LensType (thanks Jos Roost and LibRaw)
70
+ - Added a new Pentax LensType (thanks James O'Neill)
71
+ - Decode barcodes from Ricoh APP5 RMETA segment
72
+ - Decode a few new QuickTime tags written by Ricoh and Garmin cameras
73
+ - Decode timed GPS from Sony A7R IV MP4 videos
74
+ - Decode timed GPS from 70mai dashcam videos
75
+ - Decode a few new Panasonic tags (thanks Klaus Homeister)
76
+ - Decode altitude and more accurate latitude/longitude from Transcend Driver
77
+ Pro 230 MP4 videos
78
+ - Improved decoding of some Canon EOS 1DXmkIII custom functions
79
+ - Allow integer QuickTime TrackNumber and DiskNumber values
80
+ - Relax validity check of QuickTime:ContentCreateDate when writing with -n
81
+ - Removed "Com" from the start of some unknown ItemList tag names
82
+ - Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
83
+ - Changed QuickTime CleanAperture tags decode as signed rationals
84
+
85
+ June 24, 2020 - Version 12.01
86
+
87
+ - Added a new NEFCompression value (thanks Warren Hatch)
88
+ - Added a new Sony LensType (thanks Jos Roost)
89
+ - Decode timed GPS from Rove Stealth 4K dashcam videos
90
+ - Fixed bug which would corrupt TIFF images with 16-bit image data offsets
91
+ when writing (these are very rare)
92
+
93
+ June 11, 2020 - Version 12.00 (production release)
94
+
95
+ - Added two new Olympus LensTypes (thanks Don Komarechka for one)
96
+ - Added two new Sony LensType values (thanks Jos Roost)
97
+ - Added a few new Nikon LensID's (thanks Mathieu Carbou)
98
+ - Added support for the Sony ZV-1 (thanks Jos Roost)
99
+ - Added a new CanonModelID (thanks Jos Roost)
100
+ - Added missing MimeType values for HEICS and HEIFS files
101
+ - Added definitions for a number of new XMP-crs tags
102
+ - Recognize WOFF and WOFF2 font files
103
+ - Decode streaming GPS from Roadhawk, EEEkit and 360Fly MP4 videos
104
+ - Decode a number of new tags for the Nikon D6 (thanks Warren Hatch)
105
+ - Decode a couple more AF tags for the D500/D850
106
+ - Decode a number of new Panasonic tags
107
+ - Improved Composite LensID logic (thanks Matt Stancliff)
108
+ - Enhanced -v option to state when a directory has 0 entries
109
+ - Removed a couple of incorrect Validate warnings for bilevel TIFF images
110
+ - Drop ContrastCurve tag when copying from NEF to JPEG
111
+ - Changed -csv output to add "Unknown" group name to column headings for
112
+ missing tags when -f and -G options are used
113
+ - Patched to support new XMP LensID format for Nikon cameras as written by
114
+ Apple Photos (thanks Mattsta)
115
+ - Fixed problem extracting metadata from Sigma DP2 Quattro X3F files
116
+ - Fixed End() and EndDir() functions so they work when writing and when the -v
117
+ option is used
118
+ - Fixed problem recognizing some PGM files
119
+ - Fixed bug in offsets for some Photoshop information in -v3 output
120
+ - Fixed problem writing a list containing empty elements inside an XMP
121
+ structure
122
+ - API Changes:
123
+ - Added NoMultiExif option
124
+ - Changed FilterW option to not write tag if $_ is set to undef
125
+
10
126
  May 11, 2020 - Version 11.99
11
127
 
12
128
  - Added a new Nikon LensID (thanks Mykyta Kozlov)
@@ -44,7 +160,8 @@ Apr. 24, 2020 - Version 11.96
44
160
 
45
161
  Apr. 23, 2020 - Version 11.95
46
162
 
47
- - Added Exit() and ExitDir() functions for use in -if conditions
163
+ - Added Exit() and ExitDir() functions for use in -if conditions (NOTE: these
164
+ function names changed to End() and EndDir() in ExifTool 11.96)
48
165
  - Enhanced -geotag feature to support a more flexible input CSV file format
49
166
  - Enhanced -if and API Filter options to allow access to ExifTool object via
50
167
  $self
@@ -169,6 +169,7 @@ html/TagNames/Vorbis.html
169
169
  html/TagNames/WTV.html
170
170
  html/TagNames/XMP.html
171
171
  html/TagNames/ZIP.html
172
+ html/TagNames/ZISRAW.html
172
173
  html/TagNames/iWork.html
173
174
  html/TagNames/index.html
174
175
  html/TagNames/style.css
@@ -410,6 +411,7 @@ lib/Image/ExifTool/XMP.pm
410
411
  lib/Image/ExifTool/XMP2.pl
411
412
  lib/Image/ExifTool/XMPStruct.pl
412
413
  lib/Image/ExifTool/ZIP.pm
414
+ lib/Image/ExifTool/ZISRAW.pm
413
415
  lib/Image/ExifTool/iWork.pm
414
416
  perl-Image-ExifTool.spec
415
417
  t/AFCP.t
@@ -915,6 +917,8 @@ t/ZIP_4.out
915
917
  t/ZIP_5.out
916
918
  t/ZIP_6.out
917
919
  t/ZIP_7.out
920
+ t/ZISRAW.t
921
+ t/ZISRAW_2.out
918
922
  t/images/AFCP.jpg
919
923
  t/images/AIFF.aif
920
924
  t/images/APE.ape
@@ -1089,4 +1093,5 @@ t/images/XMP8.xmp
1089
1093
  t/images/XMP9.xmp
1090
1094
  t/images/ZIP.gz
1091
1095
  t/images/ZIP.zip
1096
+ t/images/ZISRAW.czi
1092
1097
  t/images/iWork.numbers
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.99"
50
+ "version" : "12.06"
51
51
  }
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 11.99
31
+ version: 12.06
data/bin/README CHANGED
@@ -14,35 +14,36 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 3FR r | DR4 r/w/c | ITC r | ODP r | RIFF r
18
- 3G2 r/w | DSS r | J2C r | ODS r | RSRC r
19
- 3GP r/w | DV r | JNG r/w | ODT r | RTF r
20
- A r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
21
- AA r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
22
- AAE r | DYLIB r | JSON r | OGV r | RWZ r
23
- AAX r/w | EIP r | K25 r | OPUS r | RM r
24
- ACR r | EPS r/w | KDC r | ORF r/w | SEQ r
25
- AFM r | EPUB r | KEY r | OTF r | SKETCH r
26
- AI r/w | ERF r/w | LA r | PAC r | SO r
27
- AIFF r | EXE r | LFP r | PAGES r | SR2 r/w
28
- APE r | EXIF r/w/c | LNK r | PBM r/w | SRF r
29
- ARQ r/w | EXR r | LRV r/w | PCD r | SRW r/w
30
- ARW r/w | EXV r/w/c | M2TS r | PCX r | SVG r
31
- ASF r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
32
- AVI r | FFF r/w | MAX r | PDF r/w | THM r/w
33
- AVIF r/w | FITS r | MEF r/w | PEF r/w | TIFF r/w
34
- AZW r | FLA r | MIE r/w/c | PFA r | TORRENT r
35
- BMP r | FLAC r | MIFF r | PFB r | TTC r
36
- BPG r | FLIF r/w | MKA r | PFM r | TTF r
37
- BTF r | FLV r | MKS r | PGF r | TXT r
38
- CHM r | FPF r | MKV r | PGM r/w | VCF r
39
- COS r | FPX r | MNG r/w | PLIST r | VRD r/w/c
40
- CR2 r/w | GIF r/w | MOBI r | PICT r | VSD r
41
- CR3 r/w | GPR r/w | MODD r | PMP r | WAV r
42
- CRM r/w | GZ r | MOI r | PNG r/w | WDP r/w
43
- CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
44
- CS1 r/w | HDR r | MOV r/w | PPT r | WEBM r
45
- CSV r | HEIC r/w | MP3 r | PPTX r | WMA r
17
+ 3FR r | DPX r | ISO r | O r | RAW r/w
18
+ 3G2 r/w | DR4 r/w/c | ITC r | ODP r | RIFF r
19
+ 3GP r/w | DSS r | J2C r | ODS r | RSRC r
20
+ A r | DV r | JNG r/w | ODT r | RTF r
21
+ AA r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
22
+ AAE r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
23
+ AAX r/w | DYLIB r | JSON r | OGV r | RWZ r
24
+ ACR r | EIP r | K25 r | OPUS r | RM r
25
+ AFM r | EPS r/w | KDC r | ORF r/w | SEQ r
26
+ AI r/w | EPUB r | KEY r | OTF r | SKETCH r
27
+ AIFF r | ERF r/w | LA r | PAC r | SO r
28
+ APE r | EXE r | LFP r | PAGES r | SR2 r/w
29
+ ARQ r/w | EXIF r/w/c | LNK r | PBM r/w | SRF r
30
+ ARW r/w | EXR r | LRV r/w | PCD r | SRW r/w
31
+ ASF r | EXV r/w/c | M2TS r | PCX r | SVG r
32
+ AVI r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
33
+ AVIF r/w | FFF r/w | MAX r | PDF r/w | THM r/w
34
+ AZW r | FITS r | MEF r/w | PEF r/w | TIFF r/w
35
+ BMP r | FLA r | MIE r/w/c | PFA r | TORRENT r
36
+ BPG r | FLAC r | MIFF r | PFB r | TTC r
37
+ BTF r | FLIF r/w | MKA r | PFM r | TTF r
38
+ CHM r | FLV r | MKS r | PGF r | TXT r
39
+ COS r | FPF r | MKV r | PGM r/w | VCF r
40
+ CR2 r/w | FPX r | MNG r/w | PLIST r | VRD r/w/c
41
+ CR3 r/w | GIF r/w | MOBI r | PICT r | VSD r
42
+ CRM r/w | GPR r/w | MODD r | PMP r | WAV r
43
+ CRW r/w | GZ r | MOI r | PNG r/w | WDP r/w
44
+ CS1 r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
45
+ CSV r | HDR r | MOV r/w | PPT r | WEBM r
46
+ CZI r | HEIC r/w | MP3 r | PPTX r | WMA r
46
47
  DCM r | HEIF r/w | MP4 r/w | PS r/w | WMV r
47
48
  DCP r/w | HTML r | MPC r | PSB r/w | WTV r
48
49
  DCR r | ICC r/w/c | MPG r | PSD r/w | WV r
@@ -53,7 +54,6 @@ supported by ExifTool (r = read, w = write, c = create):
53
54
  DNG r/w | INSP r/w | NEF r/w | RAF r/w | XMP r/w/c
54
55
  DOC r | INSV r | NRW r/w | RAM r | ZIP r
55
56
  DOCX r | INX r | NUMBERS r | RAR r |
56
- DPX r | ISO r | O r | RAW r/w |
57
57
 
58
58
  Meta Information
59
59
  ----------------------+----------------------+---------------------
@@ -105,8 +105,8 @@ your home directory, then you would type the following commands in a
105
105
  terminal window to extract and run ExifTool:
106
106
 
107
107
  cd ~/Desktop
108
- gzip -dc Image-ExifTool-11.99.tar.gz | tar -xf -
109
- cd Image-ExifTool-11.99
108
+ gzip -dc Image-ExifTool-12.06.tar.gz | tar -xf -
109
+ cd Image-ExifTool-12.06
110
110
  ./exiftool t/images/ExifTool.jpg
111
111
 
112
112
  Note: These commands extract meta information from one of the test images.
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '11.99';
13
+ my $version = '12.06';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -141,6 +141,7 @@ my $deleteOrig; # 0=restore original files, 1=delete originals, 2=delete w/o
141
141
  my $disableOutput; # flag to disable normal output
142
142
  my $doSetFileName; # flag set if FileName may be written
143
143
  my $doUnzip; # flag to extract info from .gz and .bz2 files
144
+ my ($end,$endDir); # flags to end processing
144
145
  my $escapeC; # C-style escape
145
146
  my $escapeHTML; # flag to escape printed values for html
146
147
  my $evalWarning; # warning from eval
@@ -293,8 +294,8 @@ my %altRecommends = (
293
294
  my %unescapeChar = ( 't'=>"\t", 'n'=>"\n", 'r'=>"\r" );
294
295
 
295
296
  # special subroutines used in -if condition
296
- sub Image::ExifTool::EndDir() { return $$mt{EndDir} = 1 }
297
- sub Image::ExifTool::End() { return $$mt{End} = 1 }
297
+ sub Image::ExifTool::EndDir() { return $endDir = 1 }
298
+ sub Image::ExifTool::End() { return $end = 1 }
298
299
 
299
300
  # exit routine
300
301
  sub Exit {
@@ -443,6 +444,8 @@ undef $deleteOrig;
443
444
  undef $disableOutput;
444
445
  undef $doSetFileName;
445
446
  undef $doUnzip;
447
+ undef $end;
448
+ undef $endDir;
446
449
  undef $escapeHTML;
447
450
  undef $escapeC;
448
451
  undef $evalWarning;
@@ -1762,6 +1765,8 @@ if (@dbKeys) {
1762
1765
  if ($verbose and $verbose > 1) {
1763
1766
  print $vout "Imported entry for '${_}' (full path: '${absPath}')\n";
1764
1767
  }
1768
+ } elsif ($verbose and $verbose > 1) {
1769
+ print $vout "Imported entry for '${_}' (non-existent file)\n";
1765
1770
  }
1766
1771
  }
1767
1772
  }
@@ -2271,7 +2276,7 @@ TAG: foreach $tag (@foundTags) {
2271
2276
  # the same group, and if so suppress this tag instead
2272
2277
  next if $noDups and $tag =~ /^(.*?) ?\(/ and defined $$info{$1} and
2273
2278
  $group eq $et->GetGroup($1, $showGroup);
2274
- $group = 'Unknown' if not $group and ($xml or $json);
2279
+ $group = 'Unknown' if not $group and ($xml or $json or $csv);
2275
2280
  if ($fp and not ($allGroup or $csv)) {
2276
2281
  if ($lastGroup ne $group) {
2277
2282
  if ($html) {
@@ -3546,11 +3551,11 @@ sub ProcessFiles($;$)
3546
3551
  push(@$list, $file);
3547
3552
  } else {
3548
3553
  GetImageInfo($et, $file);
3549
- $$et{End} and Warn("End called - $file\n");
3554
+ $end and Warn("End called - $file\n");
3550
3555
  }
3551
3556
  }
3552
3557
  $et->Options(CharsetFileName => $enc) if $utf8FileName{$file};
3553
- last if $$et{End};
3558
+ last if $end;
3554
3559
  }
3555
3560
  }
3556
3561
 
@@ -3628,7 +3633,7 @@ sub ScanDir($$;$)
3628
3633
  next if $file =~ /^\./ and ($recurse == 1 or $file eq '.' or $file eq '..');
3629
3634
  next if $ignore{$file} or ($ignore{SYMLINKS} and -l $path);
3630
3635
  ScanDir($et, $path, $list);
3631
- last if $$et{End};
3636
+ last if $end;
3632
3637
  next;
3633
3638
  }
3634
3639
  # apply rules from -ext options
@@ -3668,11 +3673,11 @@ sub ScanDir($$;$)
3668
3673
  push(@$list, $path);
3669
3674
  } else {
3670
3675
  GetImageInfo($et, $path);
3671
- if ($$et{End}) {
3676
+ if ($end) {
3672
3677
  Warn("End called - $file\n");
3673
3678
  last;
3674
3679
  }
3675
- if ($$et{EndDir}) {
3680
+ if ($endDir) {
3676
3681
  $dir =~ s(/$)();
3677
3682
  Warn("EndDir called - $path\n");
3678
3683
  last;
@@ -4379,35 +4384,36 @@ supported by ExifTool (r = read, w = write, c = create):
4379
4384
 
4380
4385
  File Types
4381
4386
  ------------+-------------+-------------+-------------+------------
4382
- 3FR r | DR4 r/w/c | ITC r | ODP r | RIFF r
4383
- 3G2 r/w | DSS r | J2C r | ODS r | RSRC r
4384
- 3GP r/w | DV r | JNG r/w | ODT r | RTF r
4385
- A r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
4386
- AA r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
4387
- AAE r | DYLIB r | JSON r | OGV r | RWZ r
4388
- AAX r/w | EIP r | K25 r | OPUS r | RM r
4389
- ACR r | EPS r/w | KDC r | ORF r/w | SEQ r
4390
- AFM r | EPUB r | KEY r | OTF r | SKETCH r
4391
- AI r/w | ERF r/w | LA r | PAC r | SO r
4392
- AIFF r | EXE r | LFP r | PAGES r | SR2 r/w
4393
- APE r | EXIF r/w/c | LNK r | PBM r/w | SRF r
4394
- ARQ r/w | EXR r | LRV r/w | PCD r | SRW r/w
4395
- ARW r/w | EXV r/w/c | M2TS r | PCX r | SVG r
4396
- ASF r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
4397
- AVI r | FFF r/w | MAX r | PDF r/w | THM r/w
4398
- AVIF r/w | FITS r | MEF r/w | PEF r/w | TIFF r/w
4399
- AZW r | FLA r | MIE r/w/c | PFA r | TORRENT r
4400
- BMP r | FLAC r | MIFF r | PFB r | TTC r
4401
- BPG r | FLIF r/w | MKA r | PFM r | TTF r
4402
- BTF r | FLV r | MKS r | PGF r | TXT r
4403
- CHM r | FPF r | MKV r | PGM r/w | VCF r
4404
- COS r | FPX r | MNG r/w | PLIST r | VRD r/w/c
4405
- CR2 r/w | GIF r/w | MOBI r | PICT r | VSD r
4406
- CR3 r/w | GPR r/w | MODD r | PMP r | WAV r
4407
- CRM r/w | GZ r | MOI r | PNG r/w | WDP r/w
4408
- CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
4409
- CS1 r/w | HDR r | MOV r/w | PPT r | WEBM r
4410
- CSV r | HEIC r/w | MP3 r | PPTX r | WMA r
4387
+ 3FR r | DPX r | ISO r | O r | RAW r/w
4388
+ 3G2 r/w | DR4 r/w/c | ITC r | ODP r | RIFF r
4389
+ 3GP r/w | DSS r | J2C r | ODS r | RSRC r
4390
+ A r | DV r | JNG r/w | ODT r | RTF r
4391
+ AA r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
4392
+ AAE r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
4393
+ AAX r/w | DYLIB r | JSON r | OGV r | RWZ r
4394
+ ACR r | EIP r | K25 r | OPUS r | RM r
4395
+ AFM r | EPS r/w | KDC r | ORF r/w | SEQ r
4396
+ AI r/w | EPUB r | KEY r | OTF r | SKETCH r
4397
+ AIFF r | ERF r/w | LA r | PAC r | SO r
4398
+ APE r | EXE r | LFP r | PAGES r | SR2 r/w
4399
+ ARQ r/w | EXIF r/w/c | LNK r | PBM r/w | SRF r
4400
+ ARW r/w | EXR r | LRV r/w | PCD r | SRW r/w
4401
+ ASF r | EXV r/w/c | M2TS r | PCX r | SVG r
4402
+ AVI r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
4403
+ AVIF r/w | FFF r/w | MAX r | PDF r/w | THM r/w
4404
+ AZW r | FITS r | MEF r/w | PEF r/w | TIFF r/w
4405
+ BMP r | FLA r | MIE r/w/c | PFA r | TORRENT r
4406
+ BPG r | FLAC r | MIFF r | PFB r | TTC r
4407
+ BTF r | FLIF r/w | MKA r | PFM r | TTF r
4408
+ CHM r | FLV r | MKS r | PGF r | TXT r
4409
+ COS r | FPF r | MKV r | PGM r/w | VCF r
4410
+ CR2 r/w | FPX r | MNG r/w | PLIST r | VRD r/w/c
4411
+ CR3 r/w | GIF r/w | MOBI r | PICT r | VSD r
4412
+ CRM r/w | GPR r/w | MODD r | PMP r | WAV r
4413
+ CRW r/w | GZ r | MOI r | PNG r/w | WDP r/w
4414
+ CS1 r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
4415
+ CSV r | HDR r | MOV r/w | PPT r | WEBM r
4416
+ CZI r | HEIC r/w | MP3 r | PPTX r | WMA r
4411
4417
  DCM r | HEIF r/w | MP4 r/w | PS r/w | WMV r
4412
4418
  DCP r/w | HTML r | MPC r | PSB r/w | WTV r
4413
4419
  DCR r | ICC r/w/c | MPG r | PSD r/w | WV r
@@ -4418,7 +4424,6 @@ supported by ExifTool (r = read, w = write, c = create):
4418
4424
  DNG r/w | INSP r/w | NEF r/w | RAF r/w | XMP r/w/c
4419
4425
  DOC r | INSV r | NRW r/w | RAM r | ZIP r
4420
4426
  DOCX r | INX r | NUMBERS r | RAR r |
4421
- DPX r | ISO r | O r | RAW r/w |
4422
4427
 
4423
4428
  Meta Information
4424
4429
  ----------------------+----------------------+---------------------
@@ -4474,7 +4479,7 @@ L<Input-output text formatting|/Input-output text formatting>
4474
4479
  -f (-forcePrint) Force printing of all specified tags
4475
4480
  -g[NUM...] (-groupHeadings) Organize output by tag group
4476
4481
  -G[NUM...] (-groupNames) Print group name for each tag
4477
- -h (-htmlFormat) Use HMTL formatting for output
4482
+ -h (-htmlFormat) Use HTML formatting for output
4478
4483
  -H (-hex) Show tag ID numbers in hexadecimal
4479
4484
  -htmlDump[OFFSET] Generate HTML-format binary dump
4480
4485
  -j[[+]=JSONFILE] (-json) Export/import tags in JSON format
@@ -4620,7 +4625,7 @@ delete or replace a tag (see L</WRITING EXAMPLES> for examples). C<^=> is
4620
4625
  used to write an empty string instead of deleting the tag when no I<VALUE>
4621
4626
  is given, but otherwise it is equivalent to C<=>.
4622
4627
 
4623
- I<TAG> may contain one or more leading family 0, 1 or 2 group names,
4628
+ I<TAG> may contain one or more leading family 0, 1, 2 or 7 group names,
4624
4629
  prefixed by optional family numbers, and separated colons. If no group name
4625
4630
  is specified, the tag is created in the preferred group, and updated in any
4626
4631
  other location where a same-named tag already exists. The preferred group
@@ -4675,7 +4680,7 @@ the specified group(s) are removed individually, and in this case is it
4675
4680
  possible to exclude individual tags from a mass delete. For example,
4676
4681
  C<-time:all --Exif:Time:All> removes all deletable Time tags except those in
4677
4682
  the EXIF. This difference also applies if family 2 is specified when
4678
- deleting all groups. For example, C<-2all:all=> deletes tags individually,
4683
+ deleting all groups. For example, C<-2all:all=> deletes tags individually,
4679
4684
  while C<-all:all=> deletes entire blocks.
4680
4685
 
4681
4686
  5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
@@ -5075,13 +5080,13 @@ B<-csv>=I<CSVFILE> feature.
5075
5080
 
5076
5081
  Organize output by tag group. I<NUM> specifies a group family number, and
5077
5082
  may be 0 (general location), 1 (specific location), 2 (category), 3
5078
- (document number), 4 (instance number), 5 (metadata path) or 6 (EXIF/TIFF
5079
- format). B<-g0> is assumed if a family number is not specified, and family
5080
- numbers may be added wherever B<-g> is mentioned in the documentation.
5081
- Multiple families may be specified by separating them with colons. By
5082
- default the resulting group name is simplified by removing any leading
5083
+ (document number), 4 (instance number), 5 (metadata path), 6 (EXIF/TIFF
5084
+ format) or 7 (tag ID). B<-g0> is assumed if a family number is not
5085
+ specified. May be combined with other options to add group names to the
5086
+ output. Multiple families may be specified by separating them with colons.
5087
+ By default the resulting group name is simplified by removing any leading
5083
5088
  C<Main:> and collapsing adjacent identical group names, but this can be
5084
- avoided by placing a colon before the first family number (eg. B<-g:3:1>).
5089
+ avoided by placing a colon before the first family number (eg. B<-g:3:1>).
5085
5090
  Use the B<-listg> option to list group names for a specified family. The
5086
5091
  SavePath and SaveFormat API options are automatically enabled if the
5087
5092
  respective family 5 or 6 group names are requested. See the
@@ -5286,7 +5291,7 @@ with this command:
5286
5291
 
5287
5292
  produces output like this:
5288
5293
 
5289
- -- Generated by ExifTool 11.99 --
5294
+ -- Generated by ExifTool 12.06 --
5290
5295
  File: a.jpg - 2003:10:31 15:44:19
5291
5296
  (f/5.6, 1/60s, ISO 100)
5292
5297
  File: b.jpg - 2006:05:23 11:57:38
@@ -6297,7 +6302,7 @@ line (see the B<-@> option for details).
6297
6302
 
6298
6303
  3) Write C<-execute\n> to I<ARGFILE>, where C<\n> represents a newline
6299
6304
  sequence. (Note: You may need to flush your write buffers here if using
6300
- buffered output.) Exiftool will then execute the command with the arguments
6305
+ buffered output.) ExifTool will then execute the command with the arguments
6301
6306
  received up to this point, send a "{ready}" message to stdout when done
6302
6307
  (unless the B<-q> or B<-T> option is used), and continue trying to read
6303
6308
  arguments for the next command from I<ARGFILE>. To aid in command/response