exiftool-vendored.exe 12.45.0 → 12.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/bin/exiftool_files/Changes +84 -3
  2. package/bin/exiftool_files/README +45 -44
  3. package/bin/exiftool_files/config_files/acdsee.config +2 -1
  4. package/bin/exiftool_files/config_files/frameCount.config +56 -0
  5. package/bin/exiftool_files/config_files/tiff_version.config +1 -1
  6. package/bin/exiftool_files/exiftool.pl +63 -55
  7. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +6 -2
  8. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +11 -6
  9. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +20 -8
  10. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +8 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +7 -3
  12. package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +17 -3
  13. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +4 -2
  14. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +31 -5
  15. package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +141 -0
  17. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +5 -5
  18. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +55 -8
  19. package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +9 -3
  20. package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +494 -0
  21. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +3 -1
  22. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +34 -31
  23. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +5 -3
  24. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +21 -4
  25. package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +12 -5
  26. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +29 -3
  27. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +34 -5
  28. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +42 -4
  29. package/bin/exiftool_files/lib/Image/ExifTool/README +1 -1
  30. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +106 -9
  31. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +2 -2
  32. package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +27 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +37 -13
  34. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +7 -3
  35. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +176 -6
  36. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +4782 -4486
  37. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +3 -4
  38. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +2 -3
  39. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +7 -0
  40. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +19 -1
  41. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +359 -0
  42. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +6 -2
  43. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +70 -56
  44. package/bin/exiftool_files/lib/Image/ExifTool.pm +75 -15
  45. package/bin/exiftool_files/lib/Image/ExifTool.pod +55 -52
  46. package/package.json +2 -2
@@ -7,6 +7,87 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.42. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Oct. 19, 2022 - Version 12.49
11
+
12
+ - Added read support for Windows ICO and CUR files
13
+ - Added ability to shift EXIF OffsetTime tags (eg. "-OffsetTime+=+02:00")
14
+ - Added a few new XMP tags and print conversions
15
+ - Added a print conversion for Photoshop:PrintFlags
16
+ - Added a new SonyModelID (thanks LibRaw)
17
+ - Added a few new Canon RF LensType values (thanks Norbert Wasser)
18
+ - Added a new Canon LensType
19
+ - Added a new Nikon LensID
20
+ - Decode 'riff' metadata blocks in FLAC audio files
21
+ - Decode RIFF 'acid' chunk written by Acidizer
22
+ - Enhanced the -d option %f sub-second date/time format code to allow the
23
+ decimal point to be dropped (eg. "%-3f")
24
+ - Patched another Sigma Photo Pro incompatibility when writing X3F images
25
+ (Sigma will also fix this at their end in the next SPP release)
26
+
27
+ Oct. 13, 2022 - Version 12.48
28
+
29
+ - Added support for new XMP-photoshop:CameraProfiles structure
30
+ - Added a new SonyModelID and Sony LensType (thanks Jos Roost)
31
+ - Decode more tags for the Sony ILME-FX30 (thanks Jos Roost)
32
+ - Decode a couple of new Panasonic tags, and improved decoding of others
33
+ - Decode STANAG-4609 MISB timed metadata from M2TS videos
34
+ - Decode a new Nikon tag (thanks Warren Hatch)
35
+ - Decode a couple of new FujiFilm tags (thanks Honza Pokorny)
36
+ - Improved round-off errors when writing QuickTime:MatrixStructure via the
37
+ Composite:Rotation tag
38
+ - Increased Verbose level of "nothing changed" message added in 12.45
39
+ - Removed "Z" (Zulu) designation from some of the MS-DOC date/time tags
40
+ because they most certainly are in local time as written by Word 2011 for
41
+ Mac (while some other MS-DOC and FlashPix date/time tags extracted without a
42
+ "Z" are actually in Zulu time -- a bit of a mess really)
43
+ - Prevent dynamically-generated Unknown tags from being extracted when the
44
+ -validate option is used without -u
45
+ - Patched to better handle irregular timestamps in streaming GPS of NextBase
46
+ dashcam videos
47
+ - Fixed incompatibility with Sigma Photo Pro which could result in Sigma Photo
48
+ Pro corrupting an ExifTool-edited X3F image (the section length in the
49
+ footer needed to include the padding to a 4-byte boundary, thanks Sigma
50
+ engineer Yuki Miyahara)
51
+ - Fixed problem which could prevent ExifTool from reading all GPS points from
52
+ some INNOV M2TS videos
53
+
54
+ Oct. 3, 2022 - Version 12.47
55
+
56
+ - Added a new Nikon LensID (thanks David Puschel)
57
+ - Fixed bug introduced in 12.46 which resulted in a runtime error when -j was
58
+ combined with -b
59
+
60
+ Oct. 1, 2022 - Version 12.46 - "Write WEBP"
61
+
62
+ - Added WEBP write support
63
+ - Added the abilty to write Panasonic GH6 RW2 files
64
+ - Added a new Canon LensType
65
+ - Added a number of new Sigma LensType values (thanks LibRaw)
66
+ - Added support for BigTIFF format code 16 in Apple ProRaw maker notes
67
+ - Added config_files/frameCount.config to extract MP4 FrameCount
68
+ - Added a MIE OriginalImageSize tag
69
+ - Added some extra -validate checks for RIFF-based file formats
70
+ - Extract FrameRate from MP4 tmcd box
71
+ - Decode a new Apple tag (thanks Neal Krawetz)
72
+ - Decode more information from Nikon Z-camera videos
73
+ - Decode streaming GPS from Garmin DriveAssist 51 MP4 videos
74
+ - Changed the names of two FujiFilm FirmwareVersion tags
75
+ - Enhanced WEBP FileType identification to denote Extended WEBP
76
+ - Preserve fractional seconds when extracting Samsung TimeStamp times
77
+ - Patched to avoid reporting Photoshop:ProgressiveScans unless PhotoshopFormat
78
+ is Progressive
79
+ - Patched to test QuickTime UserData tags with default 0x0000 language code to
80
+ see if they contain UTF8 characters, and if so assume UTF8 encoding and
81
+ ignore the CharsetQuickTime setting
82
+ - Patched to avoid potential deep recursion when reading/writing malicious CRW
83
+ images
84
+ - Fixed "Invalid ID3 frame size" problem when reading ID3v2 with an extended
85
+ header (very uncommon, but Audacity uses this)
86
+ - Fixed typo in the name of a new DNG 1.6 tag
87
+ - Fixed some verbose warnings when reading Nikon Z-camera NEF files
88
+ - Fixed decoding of a couple of Nikon Z9 tags for newer firmware versions
89
+ (thanks Warren Hatch)
90
+
10
91
  Sept. 16, 2022 - Version 12.45
11
92
 
12
93
  - Added new IPTC Video Metadata version 1.3 tags
@@ -304,6 +385,8 @@ Aug. 12, 2021 - Version 12.30 (production release)
304
385
  currently can't be created)
305
386
  - Patched to remove 2 GB size limit when reading Photoshop ImageSourceData
306
387
 
388
+ History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
389
+
307
390
  July 9, 2021 - Version 12.29
308
391
 
309
392
  - Added a few new Nikon and Olympus lenses (thanks LibRaw)
@@ -358,8 +441,6 @@ May 20, 2021 - Version 12.26 (production release)
358
441
  - Fixed problem which could cause a "Wide character" warning and generate a
359
442
  corrupted output file when writing some illegal values
360
443
 
361
- History of older versions (back to Nov. 19, 2003 - Version 1.00) -->
362
-
363
444
  Apr. 22, 2021 - Version 12.25
364
445
 
365
446
  - JPEG XL support is now official
@@ -675,7 +756,7 @@ Aug. 10, 2020 - Version 12.04
675
756
  - Moved new QuckTime ItemList tags added in version 12.02 to the proper group
676
757
  (they were incorrectly added to the Keys group)
677
758
  - Improved QuickTime -v3 output to show default language codes
678
- - Patched -lang option to work for the values of somet tags with coded
759
+ - Patched -lang option to work for the values of some tags with coded
679
760
  translations
680
761
  - Patched the format of a number of QuickTime tags when writing for improved
681
762
  compatibility with iTunes and AtomicParsley
@@ -14,48 +14,48 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
18
- 3FR r | DSS r | JP2 r/w | ODP r | RIFF r
19
- 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
20
- 3GP r/w | DVB r/w | JSON r | ODT r | RTF r
21
- A r | DVR-MS r | JXL r | OFR r | RW2 r/w
22
- AA r | DYLIB r | K25 r | OGG r | RWL r/w
23
- AAE r | EIP r | KDC r | OGV r | RWZ r
24
- AAX r/w | EPS r/w | KEY r | ONP r | RM r
25
- ACR r | EPUB r | LA r | OPUS r | SEQ r
26
- AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
27
- AI r/w | EXE r | LIF r | ORI r/w | SO r
28
- AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
29
- APE r | EXR r | LRV r/w | PAC r | SRF r
30
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
31
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
32
- ASF r | FFF r/w | MACOS r | PCD r | SWF r
33
- AVI r | FITS r | MAX r | PCX r | THM r/w
34
- AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
35
- AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
36
- BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
37
- BPG r | FLV r | MKA r | PFA r | TTF r
38
- BTF r | FPF r | MKS r | PFB r | TXT r
39
- CHM r | FPX r | MKV r | PFM r | VCF r
40
- COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
41
- CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
42
- CR3 r/w | GZ r | MODD r | PLIST r | WAV r
43
- CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
44
- CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
45
- CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
46
- CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
47
- CZI r | HTML r | MP4 r/w | PPT r | WMV r
48
- DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
49
- DCP r/w | ICS r | MPG r | PS r/w | WV r
50
- DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
51
- DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
52
- DIVX r | IND r/w | MRC r | PSP r | XLS r
53
- DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
54
- DLL r | INSV r | MXF r | R3D r | XMP r/w/c
55
- DNG r/w | INX r | NEF r/w | RA r | ZIP r
56
- DOC r | ISO r | NKSC r/w | RAF r/w |
57
- DOCX r | ITC r | NRW r/w | RAM r |
58
- DPX r | J2C r | NUMBERS r | RAR r |
17
+ 360 r/w | DPX r | ITC r | NRW r/w | RAM r
18
+ 3FR r | DR4 r/w/c | J2C r | NUMBERS r | RAR r
19
+ 3G2 r/w | DSS r | JNG r/w | O r | RAW r/w
20
+ 3GP r/w | DV r | JP2 r/w | ODP r | RIFF r
21
+ A r | DVB r/w | JPEG r/w | ODS r | RSRC r
22
+ AA r | DVR-MS r | JSON r | ODT r | RTF r
23
+ AAE r | DYLIB r | JXL r | OFR r | RW2 r/w
24
+ AAX r/w | EIP r | K25 r | OGG r | RWL r/w
25
+ ACR r | EPS r/w | KDC r | OGV r | RWZ r
26
+ AFM r | EPUB r | KEY r | ONP r | RM r
27
+ AI r/w | ERF r/w | LA r | OPUS r | SEQ r
28
+ AIFF r | EXE r | LFP r | ORF r/w | SKETCH r
29
+ APE r | EXIF r/w/c | LIF r | ORI r/w | SO r
30
+ ARQ r/w | EXR r | LNK r | OTF r | SR2 r/w
31
+ ARW r/w | EXV r/w/c | LRV r/w | PAC r | SRF r
32
+ ASF r | F4A/V r/w | M2TS r | PAGES r | SRW r/w
33
+ AVI r | FFF r/w | M4A/V r/w | PBM r/w | SVG r
34
+ AVIF r/w | FITS r | MACOS r | PCD r | SWF r
35
+ AZW r | FLA r | MAX r | PCX r | THM r/w
36
+ BMP r | FLAC r | MEF r/w | PDB r | TIFF r/w
37
+ BPG r | FLIF r/w | MIE r/w/c | PDF r/w | TORRENT r
38
+ BTF r | FLV r | MIFF r | PEF r/w | TTC r
39
+ CHM r | FPF r | MKA r | PFA r | TTF r
40
+ COS r | FPX r | MKS r | PFB r | TXT r
41
+ CR2 r/w | GIF r/w | MKV r | PFM r | VCF r
42
+ CR3 r/w | GPR r/w | MNG r/w | PGF r | VRD r/w/c
43
+ CRM r/w | GZ r | MOBI r | PGM r/w | VSD r
44
+ CRW r/w | HDP r/w | MODD r | PLIST r | WAV r
45
+ CS1 r/w | HDR r | MOI r | PICT r | WDP r/w
46
+ CSV r | HEIC r/w | MOS r/w | PMP r | WEBP r/w
47
+ CUR r | HEIF r/w | MOV r/w | PNG r/w | WEBM r
48
+ CZI r | HTML r | MP3 r | PPM r/w | WMA r
49
+ DCM r | ICC r/w/c | MP4 r/w | PPT r | WMV r
50
+ DCP r/w | ICO r | MPC r | PPTX r | WTV r
51
+ DCR r | ICS r | MPG r | PS r/w | WV r
52
+ DFONT r | IDML r | MPO r/w | PSB r/w | X3F r/w
53
+ DIVX r | IIQ r/w | MQV r/w | PSD r/w | XCF r
54
+ DJVU r | IND r/w | MRC r | PSP r | XLS r
55
+ DLL r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
56
+ DNG r/w | INSV r | MXF r | R3D r | XMP r/w/c
57
+ DOC r | INX r | NEF r/w | RA r | ZIP r
58
+ DOCX r | ISO r | NKSC r/w | RAF r/w |
59
59
 
60
60
  Meta Information
61
61
  ----------------------+----------------------+---------------------
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
107
107
  terminal window to extract and run ExifTool:
108
108
 
109
109
  cd ~/Desktop
110
- gzip -dc Image-ExifTool-12.45.tar.gz | tar -xf -
111
- cd Image-ExifTool-12.45
110
+ gzip -dc Image-ExifTool-12.49.tar.gz | tar -xf -
111
+ cd Image-ExifTool-12.49
112
112
  ./exiftool t/images/ExifTool.jpg
113
113
 
114
114
  Note: These commands extract meta information from one of the test images.
@@ -199,6 +199,7 @@ distribution package:
199
199
  depthmap.config - Extract Google DepthMap images
200
200
  example.config - General example showing config features
201
201
  fotoware.config - Definitions for writing Fotoware XMP tags
202
+ frameCount.config - Extract FrameCount from MP4 videos
202
203
  gps2utm.config - Generate UTM coordinate tags from GPS info
203
204
  gpsdatetime.config - Make GPSDateTime from CreateDate+SampleTime
204
205
  nksc.config - Decode tags in Nikon ViewNX NKSC files
@@ -63,6 +63,7 @@
63
63
  # from original names to new names, for example
64
64
  # "RegionInfoACDSeeAppliedToDimensions*" -> "ACDSeeRegionAppliedToDimensions*"
65
65
  # "RegionInfoACDSeeRegionList* -> "ACDSeeRegion*"
66
+ # 2022/10/03 - PH Set group name properly to XMP-acdsee-rs
66
67
  #------------------------------------------------------------------------------
67
68
  use Data::Dumper;
68
69
 
@@ -211,7 +212,7 @@ my %sACDSeeRegionStruct = (
211
212
  );
212
213
 
213
214
  %Image::ExifTool::UserDefined::ACDSeeRegions = (
214
- GROUPS => { 0 => 'XMP', 1 => 'XMP-acdsee', 2 => 'Image' },
215
+ GROUPS => { 0 => 'XMP', 1 => 'XMP-acdsee-rs', 2 => 'Image' },
215
216
  NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
216
217
  WRITABLE => 'string', # (default to string-type tags)
217
218
  Regions => {
@@ -0,0 +1,56 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: frameCount.config
3
+ #
4
+ # Description: ExifTool config file to extract MP4 video FrameCount
5
+ #
6
+ # Usage: exiftool -config frameCount.config -frameCount FILE
7
+ #
8
+ # Requires: ExifTool version 7.99 or later
9
+ #
10
+ # Revisions: 2022-09-22 - P. Harvey Created
11
+ #
12
+ # Notes: Enables Unknown option to extract the required SampleSizes atom
13
+ #------------------------------------------------------------------------------
14
+
15
+ %Image::ExifTool::UserDefined = (
16
+ 'Image::ExifTool::Composite' => {
17
+ 'FrameCount' => {
18
+ Require => {
19
+ 0 => 'HandlerType',
20
+ },
21
+ Desire => {
22
+ 1 => 'SampleSizes',
23
+ 2 => 'CompactSampleSizes',
24
+ },
25
+ Groups => { 2 => 'Video' },
26
+ ValueConv => q{
27
+ my ($i, $tag, $ptr);
28
+ my $key = 'HandlerType';
29
+ # find video track number
30
+ for ($i=1; defined $val[0]; ++$i) {
31
+ last if $val[0] eq 'Video Track';
32
+ $key = "HandlerType ($i)";
33
+ $val[0] = $self->GetValue($key);
34
+ }
35
+ my $trk = $self->GetGroup($key, 1);
36
+ # search for SampleSizes or CompactSampleSizes for this track
37
+ foreach $tag ('SampleSizes', 'CompactSampleSizes') {
38
+ $key = $tag;
39
+ for ($i=1; ; ++$i) {
40
+ $ptr = $self->GetValue($key);
41
+ last unless $ptr;
42
+ last if $self->GetGroup($key, 1) eq $trk;
43
+ $key = "$tag ($i)";
44
+ }
45
+ last if $ptr;
46
+ }
47
+ return undef unless $ptr;
48
+ return unpack('x8N', $$ptr);
49
+ },
50
+ },
51
+ },
52
+ );
53
+
54
+ %Image::ExifTool::UserDefined::Options = (
55
+ Unknown => 1, # (otherwise SampleSizes won't be extracted)
56
+ );
@@ -113,7 +113,7 @@ sub has_defined {
113
113
  ],
114
114
  );
115
115
 
116
- # Must set undocumented SaveFormat option to provide access to the tag format types
116
+ # Must set SaveFormat option to provide access to the tag format types
117
117
  %Image::ExifTool::UserDefined::Options = (
118
118
  SaveFormat => 1,
119
119
  );
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '12.45';
14
+ my $version = '12.49';
15
15
 
16
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
17
  my $exePath;
@@ -3252,7 +3252,7 @@ sub EncodeXML($)
3252
3252
  {
3253
3253
  my $strPt = shift;
3254
3254
  if ($$strPt =~ /[\0-\x08\x0b\x0c\x0e-\x1f]/ or
3255
- (not $altEnc and Image::ExifTool::XMP::IsUTF8($strPt) < 0))
3255
+ (not $altEnc and Image::ExifTool::IsUTF8($strPt) < 0))
3256
3256
  {
3257
3257
  # encode binary data and non-UTF8 with special characters as base64
3258
3258
  $$strPt = Image::ExifTool::XMP::EncodeBase64($$strPt);
@@ -3316,7 +3316,7 @@ sub EscapeJSON($;$)
3316
3316
  return $str if $str =~ /^-?(\d|[1-9]\d{1,14})(\.\d{1,16})?(e[-+]?\d{1,3})?$/i;
3317
3317
  }
3318
3318
  # encode JSON string in base64 if necessary
3319
- if ($json < 2 and defined $binaryOutput and Image::ExifTool::XMP::IsUTF8(\$str) < 0) {
3319
+ if ($json < 2 and defined $binaryOutput and Image::ExifTool::IsUTF8(\$str) < 0) {
3320
3320
  return '"base64:' . Image::ExifTool::XMP::EncodeBase64($str, 1) . '"';
3321
3321
  }
3322
3322
  # escape special characters
@@ -3392,7 +3392,7 @@ sub FormatCSV($)
3392
3392
  my $val = shift;
3393
3393
  # check for valid encoding if the Charset option was used
3394
3394
  if ($setCharset and ($val =~ /[^\x09\x0a\x0d\x20-\x7e\x80-\xff]/ or
3395
- ($setCharset eq 'UTF8' and Image::ExifTool::XMP::IsUTF8(\$val) < 0)))
3395
+ ($setCharset eq 'UTF8' and Image::ExifTool::IsUTF8(\$val) < 0)))
3396
3396
  {
3397
3397
  $val = 'base64:' . Image::ExifTool::XMP::EncodeBase64($val, 1);
3398
3398
  }
@@ -3479,7 +3479,7 @@ sub ConvertBinary($)
3479
3479
  $obj = $$obj;
3480
3480
  # encode in base64 if necessary (0xf7 allows for up to 21-bit UTF-8 code space)
3481
3481
  if ($json == 1 and ($obj =~ /[^\x09\x0a\x0d\x20-\x7e\x80-\xf7]/ or
3482
- Image::ExifTool::XMP::IsUTF8(\$obj) < 0))
3482
+ Image::ExifTool::IsUTF8(\$obj) < 0))
3483
3483
  {
3484
3484
  $obj = 'base64:' . Image::ExifTool::XMP::EncodeBase64($obj, 1);
3485
3485
  }
@@ -3613,8 +3613,7 @@ sub CheckUTF8($$)
3613
3613
  my ($file, $enc) = @_;
3614
3614
  my $isUTF8 = 0;
3615
3615
  if ($file =~ /[\x80-\xff]/) {
3616
- require Image::ExifTool::XMP;
3617
- $isUTF8 = Image::ExifTool::XMP::IsUTF8(\$file);
3616
+ $isUTF8 = Image::ExifTool::IsUTF8(\$file);
3618
3617
  if ($isUTF8 < 0) {
3619
3618
  if ($enc) {
3620
3619
  Warn("Invalid filename encoding for $file\n");
@@ -4538,48 +4537,48 @@ DESCRIPTION
4538
4537
 
4539
4538
  File Types
4540
4539
  ------------+-------------+-------------+-------------+------------
4541
- 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
4542
- 3FR r | DSS r | JP2 r/w | ODP r | RIFF r
4543
- 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
4544
- 3GP r/w | DVB r/w | JSON r | ODT r | RTF r
4545
- A r | DVR-MS r | JXL r | OFR r | RW2 r/w
4546
- AA r | DYLIB r | K25 r | OGG r | RWL r/w
4547
- AAE r | EIP r | KDC r | OGV r | RWZ r
4548
- AAX r/w | EPS r/w | KEY r | ONP r | RM r
4549
- ACR r | EPUB r | LA r | OPUS r | SEQ r
4550
- AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
4551
- AI r/w | EXE r | LIF r | ORI r/w | SO r
4552
- AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
4553
- APE r | EXR r | LRV r/w | PAC r | SRF r
4554
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
4555
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
4556
- ASF r | FFF r/w | MACOS r | PCD r | SWF r
4557
- AVI r | FITS r | MAX r | PCX r | THM r/w
4558
- AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
4559
- AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
4560
- BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
4561
- BPG r | FLV r | MKA r | PFA r | TTF r
4562
- BTF r | FPF r | MKS r | PFB r | TXT r
4563
- CHM r | FPX r | MKV r | PFM r | VCF r
4564
- COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
4565
- CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
4566
- CR3 r/w | GZ r | MODD r | PLIST r | WAV r
4567
- CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
4568
- CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
4569
- CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
4570
- CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
4571
- CZI r | HTML r | MP4 r/w | PPT r | WMV r
4572
- DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
4573
- DCP r/w | ICS r | MPG r | PS r/w | WV r
4574
- DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
4575
- DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
4576
- DIVX r | IND r/w | MRC r | PSP r | XLS r
4577
- DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
4578
- DLL r | INSV r | MXF r | R3D r | XMP r/w/c
4579
- DNG r/w | INX r | NEF r/w | RA r | ZIP r
4580
- DOC r | ISO r | NKSC r/w | RAF r/w |
4581
- DOCX r | ITC r | NRW r/w | RAM r |
4582
- DPX r | J2C r | NUMBERS r | RAR r |
4540
+ 360 r/w | DPX r | ITC r | NRW r/w | RAM r
4541
+ 3FR r | DR4 r/w/c | J2C r | NUMBERS r | RAR r
4542
+ 3G2 r/w | DSS r | JNG r/w | O r | RAW r/w
4543
+ 3GP r/w | DV r | JP2 r/w | ODP r | RIFF r
4544
+ A r | DVB r/w | JPEG r/w | ODS r | RSRC r
4545
+ AA r | DVR-MS r | JSON r | ODT r | RTF r
4546
+ AAE r | DYLIB r | JXL r | OFR r | RW2 r/w
4547
+ AAX r/w | EIP r | K25 r | OGG r | RWL r/w
4548
+ ACR r | EPS r/w | KDC r | OGV r | RWZ r
4549
+ AFM r | EPUB r | KEY r | ONP r | RM r
4550
+ AI r/w | ERF r/w | LA r | OPUS r | SEQ r
4551
+ AIFF r | EXE r | LFP r | ORF r/w | SKETCH r
4552
+ APE r | EXIF r/w/c | LIF r | ORI r/w | SO r
4553
+ ARQ r/w | EXR r | LNK r | OTF r | SR2 r/w
4554
+ ARW r/w | EXV r/w/c | LRV r/w | PAC r | SRF r
4555
+ ASF r | F4A/V r/w | M2TS r | PAGES r | SRW r/w
4556
+ AVI r | FFF r/w | M4A/V r/w | PBM r/w | SVG r
4557
+ AVIF r/w | FITS r | MACOS r | PCD r | SWF r
4558
+ AZW r | FLA r | MAX r | PCX r | THM r/w
4559
+ BMP r | FLAC r | MEF r/w | PDB r | TIFF r/w
4560
+ BPG r | FLIF r/w | MIE r/w/c | PDF r/w | TORRENT r
4561
+ BTF r | FLV r | MIFF r | PEF r/w | TTC r
4562
+ CHM r | FPF r | MKA r | PFA r | TTF r
4563
+ COS r | FPX r | MKS r | PFB r | TXT r
4564
+ CR2 r/w | GIF r/w | MKV r | PFM r | VCF r
4565
+ CR3 r/w | GPR r/w | MNG r/w | PGF r | VRD r/w/c
4566
+ CRM r/w | GZ r | MOBI r | PGM r/w | VSD r
4567
+ CRW r/w | HDP r/w | MODD r | PLIST r | WAV r
4568
+ CS1 r/w | HDR r | MOI r | PICT r | WDP r/w
4569
+ CSV r | HEIC r/w | MOS r/w | PMP r | WEBP r/w
4570
+ CUR r | HEIF r/w | MOV r/w | PNG r/w | WEBM r
4571
+ CZI r | HTML r | MP3 r | PPM r/w | WMA r
4572
+ DCM r | ICC r/w/c | MP4 r/w | PPT r | WMV r
4573
+ DCP r/w | ICO r | MPC r | PPTX r | WTV r
4574
+ DCR r | ICS r | MPG r | PS r/w | WV r
4575
+ DFONT r | IDML r | MPO r/w | PSB r/w | X3F r/w
4576
+ DIVX r | IIQ r/w | MQV r/w | PSD r/w | XCF r
4577
+ DJVU r | IND r/w | MRC r | PSP r | XLS r
4578
+ DLL r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
4579
+ DNG r/w | INSV r | MXF r | R3D r | XMP r/w/c
4580
+ DOC r | INX r | NEF r/w | RA r | ZIP r
4581
+ DOCX r | ISO r | NKSC r/w | RAF r/w |
4583
4582
 
4584
4583
  Meta Information
4585
4584
  ----------------------+----------------------+---------------------
@@ -5248,7 +5247,8 @@ OPTIONS
5248
5247
  present. ExifTool adds a %f format code to represent fractional
5249
5248
  seconds, and supports an optional width to specify the number of
5250
5249
  digits after the decimal point (eg. %3f would give something like
5251
- .437). Only one -d option may be used per command. Requires
5250
+ .437), and a minus sign to drop the decimal point (eg. "%-3f" would
5251
+ give 437). Only one -d option may be used per command. Requires
5252
5252
  POSIX::strptime or Time::Piece for the inversion conversion when
5253
5253
  writing.
5254
5254
 
@@ -5383,7 +5383,7 @@ OPTIONS
5383
5383
  combined with -listx to output descriptions in one language only.
5384
5384
 
5385
5385
  By default, ExifTool uses UTF-8 encoding for special characters,
5386
- but the the -L or -charset option may be used to invoke other
5386
+ but the -L or -charset option may be used to invoke other
5387
5387
  encodings. Note that ExifTool uses Unicode::LineBreak if available
5388
5388
  to help preserve the column alignment of the plain text output for
5389
5389
  languages with a variable-width character set.
@@ -5494,7 +5494,7 @@ OPTIONS
5494
5494
 
5495
5495
  produces output like this:
5496
5496
 
5497
- -- Generated by ExifTool 12.45 --
5497
+ -- Generated by ExifTool 12.49 --
5498
5498
  File: a.jpg - 2003:10:31 15:44:19
5499
5499
  (f/5.6, 1/60s, ISO 100)
5500
5500
  File: b.jpg - 2006:05:23 11:57:38
@@ -5502,7 +5502,7 @@ OPTIONS
5502
5502
  -- end --
5503
5503
 
5504
5504
  The values of List-type tags with multiple items and Shortcut tags
5505
- representing multiple tags are joined according the the -sep option
5505
+ representing multiple tags are joined according the -sep option
5506
5506
  setting when interpolated in the string.
5507
5507
 
5508
5508
  When -ee (-extractEmbedded) is combined with -p, embedded documents
@@ -5517,7 +5517,12 @@ OPTIONS
5517
5517
  suppress the warning messages.
5518
5518
 
5519
5519
  The "Advanced formatting feature" may be used to modify the values
5520
- of individual tags with the -p option.
5520
+ of individual tags within the -p option string.
5521
+
5522
+ Note that the API RequestTags option is automatically set for all
5523
+ tags used in the *FMTFILE* or *STR*. This allows all other tags to
5524
+ be ignored using -API IgnoreTags=all, resulting in reduced memory
5525
+ usage and increased speed.
5521
5526
 
5522
5527
  -php Format output as a PHP Array. The -g, -G, -D, -H, -l, -sep and
5523
5528
  -struct options combine with -php, and duplicate tags are handled
@@ -6008,7 +6013,7 @@ OPTIONS
6008
6013
  alternative is to use the $GROUP:all syntax. (eg. Use $exif:all
6009
6014
  instead of $exif in *EXPR* to test for the existence of EXIF tags.)
6010
6015
 
6011
- 3) Tags in the string are interpolated the same way as with -p
6016
+ 3) Tags in the string are interpolated in a similar way to -p
6012
6017
  before the expression is evaluated. In this interpolation, $/ is
6013
6018
  converted to a newline and $$ represents a single "$" symbol. So
6014
6019
  Perl variables, if used, require a double "$", and regular
@@ -6031,6 +6036,9 @@ OPTIONS
6031
6036
  previous command when -execute was used, and may be used like any
6032
6037
  other tag in the condition (ie. "$OK").
6033
6038
 
6039
+ 7) The API RequestTags option is automatically set for all tags
6040
+ used in the -if condition.
6041
+
6034
6042
  -m (-ignoreMinorErrors)
6035
6043
  Ignore minor errors and warnings. This enables writing to files
6036
6044
  with minor errors and disables some validation checks which could
@@ -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.06';
18
+ $VERSION = '1.07';
19
19
 
20
20
  # Apple iPhone metadata (ref PH)
21
21
  %Image::ExifTool::Apple::Main = (
@@ -80,7 +80,7 @@ $VERSION = '1.06';
80
80
  # 0x000e - int32s: 0,1,4,12 (Orientation? 0=landscape? 4=portrait? ref 1)
81
81
  # 0x000f - int32s: 2,3
82
82
  # 0x0010 - int32s: 1
83
- 0x0011 => {
83
+ 0x0011 => { # (if defined, there is a live photo associated with the video, #forum13565)
84
84
  Name => 'MediaGroupUUID', #NealKrawetz private communication
85
85
  # (changed in 12.19 from Name => 'ContentIdentifier', #forum8750)
86
86
  Writable => 'string',
@@ -91,6 +91,10 @@ $VERSION = '1.06';
91
91
  Writable => 'string',
92
92
  },
93
93
  # 0x0016 - string[29]: "AXZ6pMTOh2L+acSh4Kg630XCScoO\0"
94
+ 0x0017 => { #forum13565 (only valid if MediaGroupUUID exists)
95
+ Name => 'LivePhotoVideoIndex',
96
+ Notes => 'divide by RunTimeScale to get time in seconds',
97
+ },
94
98
  # 0x0017 - int32s: 0,8192
95
99
  # 0x0019 - int32s: 0,2,128
96
100
  # 0x001a - string[6]: "q825s\0"
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
35
35
  use Image::ExifTool::Validate;
36
36
  use Image::ExifTool::MacOS;
37
37
 
38
- $VERSION = '3.48';
38
+ $VERSION = '3.49';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -501,11 +501,13 @@ been decoded. Use the L<Unknown|../ExifTool.html#Unknown> (-u) option to extrac
501
501
  },
502
502
  GeoTiff => q{
503
503
  ExifTool extracts the following tags from GeoTIFF images. See
504
- L<http://www.remotesensing.org/geotiff/spec/geotiffhome.html> for the
505
- complete GeoTIFF specification. Also included in the table below are
506
- ChartTIFF tags (see L<http://www.charttiff.com/whitepapers.shtml>). GeoTIFF
507
- tags are not writable individually, but they may be copied en mass via the
508
- block tags GeoTiffDirectory, GeoTiffDoubleParams and GeoTiffAsciiParams.
504
+ L<https://web.archive.org/web/20070820121549/http://www.remotesensing.org/geotiff/spec/geotiffhome.html>
505
+ for the complete GeoTIFF specification. Also included in the table below
506
+ are ChartTIFF tags (see
507
+ L<https://web.archive.org/web/20020828193928/http://www.charttiff.com/whitepapers.shtml>).
508
+ GeoTIFF tags are not writable individually, but they may be copied en mass
509
+ via the block tags GeoTiffDirectory, GeoTiffDoubleParams and
510
+ GeoTiffAsciiParams.
509
511
  },
510
512
  JFIF => q{
511
513
  The following information is extracted from the JPEG JFIF header. See
@@ -2573,6 +2575,9 @@ sub WriteTagNames($$)
2573
2575
  $tip = '';
2574
2576
  # use copyright symbol in QuickTime UserData tags
2575
2577
  $tagIDstr =~ s/^"\\xa9/"&copy;/;
2578
+ # escape necessary characters in html
2579
+ $tagIDstr =~ s/>/&gt;/g;
2580
+ $tagIDstr =~ s/</&lt;/g;
2576
2581
  }
2577
2582
  # add tooltip for special writable attributes
2578
2583
  my $wtip = '';