exiftool_vendored 12.60.0 → 12.62.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 348c2538720f815bacaf609de1dbb52e18f720663ea9e2194c92941b5f80d5ec
4
- data.tar.gz: 124c2564aba8f2fa4af8b2bf16c654b46624031b38bb64e6ed4ed3d6cc2fb596
3
+ metadata.gz: b9425d3689f85ae893c11f1e1ebb63d8392eefe696b6ff685a35536da9b2b79c
4
+ data.tar.gz: a343f14b8c717420458456579562c12d399c0687865a6e54ea5df8945b096e66
5
5
  SHA512:
6
- metadata.gz: b32a41d3586f914940ddfc5f3f947c323006f627ce6c3a050f34111817776e26a4a5e535f56194998ec38aa5ea7f27e350388fbbd517dd366d826324c9dcd9e4
7
- data.tar.gz: 9b3d5cb69b62ca6bc41293ec56110e0c28e7510561303bc8c3f3eb0ee01500f5c92dd8ff60ace8f53c54c64a28c92cfa84b0fbebe7238cb190872433c62f4103
6
+ metadata.gz: 559fb2be9a0a2c441ff8e12fd13dd077825c71655a9e99407f602e2ecaae8f997cb9475b3bb5a79dddec1897a9f22ef3c9d9506b8df885da5ee4dfc9baad1a7d
7
+ data.tar.gz: bcd3a86f5375904081c86ef8c4904bf6cf5283d4f67519df0d05711b456ab63721dd0412fe6c46d7c2774919e0f4b13a00e8eb745253937c252a86fac423182e
data/bin/Changes CHANGED
@@ -7,6 +7,41 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.60. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ May 3, 2023 - Version 12.62
11
+
12
+ - Added basic read support for WPG images
13
+ - Added ImageDataMD5 support for HEIC images
14
+ - Added support for RAR version 5.0 compressed files (thanks Amir Gooran)
15
+ - Added a few new XMP-aux tags (thanks John Ellis)
16
+ - Made Composite tags available for use in -fileNUM argument
17
+ - Better handling of FlashPix VT_EMPTY value
18
+ - Fixed "Can't write" error when specifying a .webp file for the -o option
19
+ - API Changes:
20
+ - Added NoWarning option
21
+
22
+ Apr. 24, 2023 - Version 12.61
23
+
24
+ - Added ImageDataMD5 support for J2C and JXL images
25
+ - Added support for PDF 2.0 (specification is finally freely available)
26
+ - Added ability to extract timed Accelerometer data from Azdome GS63H MP4
27
+ videos which don't contain GPS
28
+ - Added some new Sony lenses (thanks Jos Roost)
29
+ - Decode some new tags for the Sony ZV-E1 (thanks Jos Roost)
30
+ - Decode more tags for the Nikon Z30 (thanks Xavier)
31
+ - Enhanced -fileNUM option to allow tags from the main file to be used in the
32
+ file name string
33
+ - Validate sample offset and size when calculating ImageDataMD5 for MP4 videos
34
+ (note: may change ImageDataMD5 value for videos where audio data runs past
35
+ end of media data)
36
+ - Return error when attempting to write a fragmented JXL file
37
+ - Improved robustness for determining image size for corrupted JPEG
38
+ - Patched to allow Insta360 GPS records of unexpected length and tweaked
39
+ verification algorithm to determine validity of these records
40
+ - Fixed bug introduced in 12.57 where -progress:%f gave runtime warnings
41
+ - Fixed "--" option to ignore subsequent -common_args option
42
+ - Fixed incorrect ImageDataMD5 for Sony A100 ARW images
43
+ - Fixed problem reading new XMP-et:OriginalImageMD5 tag
44
+
10
45
  Apr. 5, 2023 - Version 12.60 (production release)
11
46
 
12
47
  - Added a new Sony FileFormat value
data/bin/MANIFEST CHANGED
@@ -176,6 +176,7 @@ html/TagNames/Torrent.html
176
176
  html/TagNames/Unknown.html
177
177
  html/TagNames/VCard.html
178
178
  html/TagNames/Vorbis.html
179
+ html/TagNames/WPG.html
179
180
  html/TagNames/WTV.html
180
181
  html/TagNames/XMP.html
181
182
  html/TagNames/ZIP.html
@@ -416,6 +417,7 @@ lib/Image/ExifTool/Unknown.pm
416
417
  lib/Image/ExifTool/VCard.pm
417
418
  lib/Image/ExifTool/Validate.pm
418
419
  lib/Image/ExifTool/Vorbis.pm
420
+ lib/Image/ExifTool/WPG.pm
419
421
  lib/Image/ExifTool/WTV.pm
420
422
  lib/Image/ExifTool/WriteCanonRaw.pl
421
423
  lib/Image/ExifTool/WriteExif.pl
@@ -856,6 +858,8 @@ t/VCard_2.out
856
858
  t/VCard_3.out
857
859
  t/Vorbis.t
858
860
  t/Vorbis_2.out
861
+ t/WPG.t
862
+ t/WPG_2.out
859
863
  t/WTV.t
860
864
  t/WTV_2.out
861
865
  t/Writer.t
@@ -965,6 +969,7 @@ t/ZIP_4.out
965
969
  t/ZIP_5.out
966
970
  t/ZIP_6.out
967
971
  t/ZIP_7.out
972
+ t/ZIP_8.out
968
973
  t/ZISRAW.t
969
974
  t/ZISRAW_2.out
970
975
  t/images/AFCP.jpg
@@ -1132,6 +1137,7 @@ t/images/Unknown.jpg
1132
1137
  t/images/VCard.ics
1133
1138
  t/images/VCard.vcf
1134
1139
  t/images/Vorbis.ogg
1140
+ t/images/WPG.wpg
1135
1141
  t/images/WTV.wtv
1136
1142
  t/images/Writer.jpg
1137
1143
  t/images/XMP.inx
@@ -1148,6 +1154,7 @@ t/images/XMP7.xmp
1148
1154
  t/images/XMP8.xmp
1149
1155
  t/images/XMP9.xmp
1150
1156
  t/images/ZIP.gz
1157
+ t/images/ZIP.rar
1151
1158
  t/images/ZIP.zip
1152
1159
  t/images/ZISRAW.czi
1153
1160
  t/images/iWork.numbers
data/bin/META.json CHANGED
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.60"
50
+ "version" : "12.62"
51
51
  }
data/bin/META.yml CHANGED
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.60
31
+ version: 12.62
data/bin/README CHANGED
@@ -14,48 +14,49 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
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 | VNT r
43
- CRM r/w | GZ r | MOBI r | PGM r/w | VRD r/w/c
44
- CRW r/w | HDP r/w | MODD r | PLIST r | VSD r
45
- CS1 r/w | HDR r | MOI r | PICT r | WAV r
46
- CSV r | HEIC r/w | MOS r/w | PMP r | WDP r/w
47
- CUR r | HEIF r/w | MOV r/w | PNG r/w | WEBP r/w
48
- CZI r | HTML r | MP3 r | PPM r/w | WEBM r
49
- DCM r | ICC r/w/c | MP4 r/w | PPT r | WMA r
50
- DCP r/w | ICO r | MPC r | PPTX r | WMV r
51
- DCR r | ICS r | MPG r | PS r/w | WTV r
52
- DFONT r | IDML r | MPO r/w | PSB r/w | WV r
53
- DIVX r | IIQ r/w | MQV r/w | PSD r/w | X3F r/w
54
- DJVU r | IND r/w | MRC r | PSP r | XCF r
55
- DLL r | INSP r/w | MRW r/w | QTIF r/w | XLS r
56
- DNG r/w | INSV r | MXF r | R3D r | XLSX r
57
- DOC r | INX r | NEF r/w | RA r | XMP r/w/c
58
- DOCX r | ISO r | NKSC r/w | RAF r/w | ZIP r
17
+ 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
18
+ 3FR r | DSS r | JP2 r/w | ODS r | RTF r
19
+ 3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
20
+ 3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
21
+ A r | DVR-MS r | JXL r | OGG r | RWZ r
22
+ AA r | DYLIB r | K25 r | OGV r | RM r
23
+ AAE r | EIP r | KDC r | ONP r | SEQ r
24
+ AAX r/w | EPS r/w | KEY r | OPUS r | SKETCH r
25
+ ACR r | EPUB r | LA r | ORF r/w | SO r
26
+ AFM r | ERF r/w | LFP r | ORI r/w | SR2 r/w
27
+ AI r/w | EXE r | LIF r | OTF r | SRF r
28
+ AIFF r | EXIF r/w/c | LNK r | PAC r | SRW r/w
29
+ APE r | EXR r | LRV r/w | PAGES r | SVG r
30
+ ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SWF r
31
+ ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | THM r/w
32
+ ASF r | FFF r/w | MACOS r | PCX r | TIFF r/w
33
+ AVI r | FITS r | MAX r | PDB r | TORRENT r
34
+ AVIF r/w | FLA r | MEF r/w | PDF r/w | TTC r
35
+ AZW r | FLAC r | MIE r/w/c | PEF r/w | TTF r
36
+ BMP r | FLIF r/w | MIFF r | PFA r | TXT r
37
+ BPG r | FLV r | MKA r | PFB r | VCF r
38
+ BTF r | FPF r | MKS r | PFM r | VNT r
39
+ CHM r | FPX r | MKV r | PGF r | VRD r/w/c
40
+ COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
41
+ CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
42
+ CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
43
+ CRM r/w | HDP r/w | MOI r | PMP r | WEBP r/w
44
+ CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
45
+ CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
46
+ CSV r | HEIF r/w | MP3 r | PPT r | WMV r
47
+ CUR r | HTML r | MP4 r/w | PPTX r | WPG r
48
+ CZI r | ICC r/w/c | MPC r | PS r/w | WTV r
49
+ DCM r | ICO r | MPG r | PSB r/w | WV r
50
+ DCP r/w | ICS r | MPO r/w | PSD r/w | X3F r/w
51
+ DCR r | IDML r | MQV r/w | PSP r | XCF r
52
+ DFONT r | IIQ r/w | MRC r | QTIF r/w | XLS r
53
+ DIVX r | IND r/w | MRW r/w | R3D r | XLSX r
54
+ DJVU r | INSP r/w | MXF r | RA r | XMP r/w/c
55
+ DLL r | INSV r | NEF r/w | RAF r/w | ZIP r
56
+ DNG r/w | INX r | NKSC r/w | RAM r |
57
+ DOC r | ISO r | NRW r/w | RAR r |
58
+ DOCX r | ITC r | NUMBERS r | RAW r/w |
59
+ DPX r | J2C r | O r | RIFF r |
59
60
 
60
61
  Meta Information
61
62
  ----------------------+----------------------+---------------------
@@ -107,8 +108,8 @@ your home directory, then you would type the following commands in a
107
108
  terminal window to extract and run ExifTool:
108
109
 
109
110
  cd ~/Desktop
110
- gzip -dc Image-ExifTool-12.60.tar.gz | tar -xf -
111
- cd Image-ExifTool-12.60
111
+ gzip -dc Image-ExifTool-12.62.tar.gz | tar -xf -
112
+ cd Image-ExifTool-12.62
112
113
  ./exiftool t/images/ExifTool.jpg
113
114
 
114
115
  Note: These commands extract meta information from one of the test images.
data/bin/exiftool CHANGED
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '12.60';
14
+ my $version = '12.62';
15
15
 
16
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
17
  BEGIN {
@@ -365,13 +365,14 @@ sub Cleanup() {
365
365
 
366
366
  # isolate arguments common to all commands
367
367
  if (grep /^-common_args$/i, @ARGV) {
368
- my (@newArgs, $common);
368
+ my (@newArgs, $common, $end);
369
369
  foreach (@ARGV) {
370
- if (/^-common_args$/i) {
370
+ if (/^-common_args$/i and not $end) {
371
371
  $common = 1;
372
372
  } elsif ($common) {
373
373
  push @commonArgs, $_;
374
374
  } else {
375
+ $end = 1 if $_ eq '--';
375
376
  push @newArgs, $_;
376
377
  }
377
378
  }
@@ -836,7 +837,7 @@ for (;;) {
836
837
  $mt->Options(Charset => $charset);
837
838
  }
838
839
  if ($evalWarning) {
839
- warn $evalWarning;
840
+ Warn $evalWarning;
840
841
  } else {
841
842
  $setCharset = $mt->Options('Charset');
842
843
  }
@@ -1737,7 +1738,8 @@ if ($textOut) {
1737
1738
  if ($outOpt) {
1738
1739
  my $type = GetFileType($outOpt);
1739
1740
  if ($type) {
1740
- unless (CanWrite($type)) {
1741
+ # (must test original file name because we can write .webp but not other RIFF types)
1742
+ unless (CanWrite($outOpt)) {
1741
1743
  Warn "Can't write $type files\n";
1742
1744
  $rtnVal = 1;
1743
1745
  next;
@@ -1951,23 +1953,31 @@ sub GetImageInfo($$)
1951
1953
  my (@foundTags, $info, $file, $ind, $g8);
1952
1954
 
1953
1955
  # set window title for this file if necessary
1954
- if (defined $windowTitle and $progressCount >= $progressNext) {
1955
- my $prog = $progressMax ? "$progressCount/$progressMax" : '0/0';
1956
- my $title = $windowTitle;
1957
- my ($num, $denom) = split '/', $prog;
1958
- my $frac = $num / ($denom || 1);
1959
- my $n = $title =~ s/%(\d+)b/%b/ ? $1 : 20; # length of bar
1960
- my $bar = int($frac * $n + 0.5);
1961
- my %lkup = (
1962
- b => ('I' x $bar) . ('.' x ($n - $bar)), # (undocumented)
1963
- f => $orig,
1964
- p => int(100 * $frac + 0.5),
1965
- r => $prog,
1966
- '%'=> '%',
1967
- );
1968
- $title =~ s/%([%bfpr])/$lkup{$1}/eg;
1969
- SetWindowTitle($title);
1970
- undef $progressNext;
1956
+ if (defined $windowTitle) {
1957
+ if ($progressCount >= $progressNext) {
1958
+ my $prog = $progressMax ? "$progressCount/$progressMax" : '0/0';
1959
+ my $title = $windowTitle;
1960
+ my ($num, $denom) = split '/', $prog;
1961
+ my $frac = $num / ($denom || 1);
1962
+ my $n = $title =~ s/%(\d+)b/%b/ ? $1 : 20; # length of bar
1963
+ my $bar = int($frac * $n + 0.5);
1964
+ my %lkup = (
1965
+ b => ('I' x $bar) . ('.' x ($n - $bar)),
1966
+ f => $orig,
1967
+ p => int(100 * $frac + 0.5),
1968
+ r => $prog,
1969
+ '%'=> '%',
1970
+ );
1971
+ $title =~ s/%([%bfpr])/$lkup{$1}/eg;
1972
+ SetWindowTitle($title);
1973
+ if (defined $progressMax) {
1974
+ undef $progressNext;
1975
+ } else {
1976
+ $progressNext += $progressIncr;
1977
+ }
1978
+ }
1979
+ # ($progressMax is not defined for "-progress:%f")
1980
+ ++$progressCount unless defined $progressMax;
1971
1981
  }
1972
1982
  unless (length $orig or $outOpt) {
1973
1983
  Warn qq(Error: Zero-length file name - ""\n);
@@ -1993,7 +2003,11 @@ sub GetImageInfo($$)
1993
2003
  }
1994
2004
  # set alternate file names
1995
2005
  foreach $g8 (sort keys %altFile) {
1996
- my $altName = FilenameSPrintf($altFile{$g8}, $orig);
2006
+ my $altName = $orig;
2007
+ # must double any '$' symbols in the original file name because
2008
+ # they are used for tag names in a -fileNUM argument
2009
+ $altName =~ s/\$/\$\$/g;
2010
+ $altName = FilenameSPrintf($altFile{$g8}, $altName);
1997
2011
  $et->SetAlternateFile($g8, $altName);
1998
2012
  }
1999
2013
 
@@ -2536,6 +2550,7 @@ TAG: foreach $tag (@foundTags) {
2536
2550
  $xtra .= " et:table='${table}'";
2537
2551
  $xtra .= " et:index='${index}'" if defined $index;
2538
2552
  }
2553
+ # Note: New $xtra attributes must be added to %ignoreEtProp in XMP.pm!
2539
2554
  my $lastVal = $val;
2540
2555
  for ($valNum=0; $valNum<2; ++$valNum) {
2541
2556
  $val = FormatXML($val, $ind, $group);
@@ -3700,7 +3715,7 @@ sub ProcessFiles($;$)
3700
3715
  if (defined $progressMax) {
3701
3716
  unless (defined $progressNext) {
3702
3717
  $progressNext = $progressCount + $progressIncr;
3703
- $progressNext -= $progressNext % $progressIncr;
3718
+ $progressNext -= $progressNext % $progressIncr; # (show even multiples)
3704
3719
  $progressNext = $progressMax if $progressNext > $progressMax;
3705
3720
  }
3706
3721
  ++$progressCount;
@@ -4479,7 +4494,7 @@ sub Progress($$)
4479
4494
  my ($file, $msg) = @_;
4480
4495
  if (defined $progStr) {
4481
4496
  print $file $msg, $progStr, "\n";
4482
- undef $progressNext;
4497
+ undef $progressNext if defined $progressMax;
4483
4498
  }
4484
4499
  }
4485
4500
 
@@ -4590,48 +4605,49 @@ supported by ExifTool (r = read, w = write, c = create):
4590
4605
 
4591
4606
  File Types
4592
4607
  ------------+-------------+-------------+-------------+------------
4593
- 360 r/w | DPX r | ITC r | NRW r/w | RAM r
4594
- 3FR r | DR4 r/w/c | J2C r | NUMBERS r | RAR r
4595
- 3G2 r/w | DSS r | JNG r/w | O r | RAW r/w
4596
- 3GP r/w | DV r | JP2 r/w | ODP r | RIFF r
4597
- A r | DVB r/w | JPEG r/w | ODS r | RSRC r
4598
- AA r | DVR-MS r | JSON r | ODT r | RTF r
4599
- AAE r | DYLIB r | JXL r | OFR r | RW2 r/w
4600
- AAX r/w | EIP r | K25 r | OGG r | RWL r/w
4601
- ACR r | EPS r/w | KDC r | OGV r | RWZ r
4602
- AFM r | EPUB r | KEY r | ONP r | RM r
4603
- AI r/w | ERF r/w | LA r | OPUS r | SEQ r
4604
- AIFF r | EXE r | LFP r | ORF r/w | SKETCH r
4605
- APE r | EXIF r/w/c | LIF r | ORI r/w | SO r
4606
- ARQ r/w | EXR r | LNK r | OTF r | SR2 r/w
4607
- ARW r/w | EXV r/w/c | LRV r/w | PAC r | SRF r
4608
- ASF r | F4A/V r/w | M2TS r | PAGES r | SRW r/w
4609
- AVI r | FFF r/w | M4A/V r/w | PBM r/w | SVG r
4610
- AVIF r/w | FITS r | MACOS r | PCD r | SWF r
4611
- AZW r | FLA r | MAX r | PCX r | THM r/w
4612
- BMP r | FLAC r | MEF r/w | PDB r | TIFF r/w
4613
- BPG r | FLIF r/w | MIE r/w/c | PDF r/w | TORRENT r
4614
- BTF r | FLV r | MIFF r | PEF r/w | TTC r
4615
- CHM r | FPF r | MKA r | PFA r | TTF r
4616
- COS r | FPX r | MKS r | PFB r | TXT r
4617
- CR2 r/w | GIF r/w | MKV r | PFM r | VCF r
4618
- CR3 r/w | GPR r/w | MNG r/w | PGF r | VNT r
4619
- CRM r/w | GZ r | MOBI r | PGM r/w | VRD r/w/c
4620
- CRW r/w | HDP r/w | MODD r | PLIST r | VSD r
4621
- CS1 r/w | HDR r | MOI r | PICT r | WAV r
4622
- CSV r | HEIC r/w | MOS r/w | PMP r | WDP r/w
4623
- CUR r | HEIF r/w | MOV r/w | PNG r/w | WEBP r/w
4624
- CZI r | HTML r | MP3 r | PPM r/w | WEBM r
4625
- DCM r | ICC r/w/c | MP4 r/w | PPT r | WMA r
4626
- DCP r/w | ICO r | MPC r | PPTX r | WMV r
4627
- DCR r | ICS r | MPG r | PS r/w | WTV r
4628
- DFONT r | IDML r | MPO r/w | PSB r/w | WV r
4629
- DIVX r | IIQ r/w | MQV r/w | PSD r/w | X3F r/w
4630
- DJVU r | IND r/w | MRC r | PSP r | XCF r
4631
- DLL r | INSP r/w | MRW r/w | QTIF r/w | XLS r
4632
- DNG r/w | INSV r | MXF r | R3D r | XLSX r
4633
- DOC r | INX r | NEF r/w | RA r | XMP r/w/c
4634
- DOCX r | ISO r | NKSC r/w | RAF r/w | ZIP r
4608
+ 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RSRC r
4609
+ 3FR r | DSS r | JP2 r/w | ODS r | RTF r
4610
+ 3G2 r/w | DV r | JPEG r/w | ODT r | RW2 r/w
4611
+ 3GP r/w | DVB r/w | JSON r | OFR r | RWL r/w
4612
+ A r | DVR-MS r | JXL r | OGG r | RWZ r
4613
+ AA r | DYLIB r | K25 r | OGV r | RM r
4614
+ AAE r | EIP r | KDC r | ONP r | SEQ r
4615
+ AAX r/w | EPS r/w | KEY r | OPUS r | SKETCH r
4616
+ ACR r | EPUB r | LA r | ORF r/w | SO r
4617
+ AFM r | ERF r/w | LFP r | ORI r/w | SR2 r/w
4618
+ AI r/w | EXE r | LIF r | OTF r | SRF r
4619
+ AIFF r | EXIF r/w/c | LNK r | PAC r | SRW r/w
4620
+ APE r | EXR r | LRV r/w | PAGES r | SVG r
4621
+ ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SWF r
4622
+ ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | THM r/w
4623
+ ASF r | FFF r/w | MACOS r | PCX r | TIFF r/w
4624
+ AVI r | FITS r | MAX r | PDB r | TORRENT r
4625
+ AVIF r/w | FLA r | MEF r/w | PDF r/w | TTC r
4626
+ AZW r | FLAC r | MIE r/w/c | PEF r/w | TTF r
4627
+ BMP r | FLIF r/w | MIFF r | PFA r | TXT r
4628
+ BPG r | FLV r | MKA r | PFB r | VCF r
4629
+ BTF r | FPF r | MKS r | PFM r | VNT r
4630
+ CHM r | FPX r | MKV r | PGF r | VRD r/w/c
4631
+ COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
4632
+ CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
4633
+ CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
4634
+ CRM r/w | HDP r/w | MOI r | PMP r | WEBP r/w
4635
+ CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
4636
+ CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
4637
+ CSV r | HEIF r/w | MP3 r | PPT r | WMV r
4638
+ CUR r | HTML r | MP4 r/w | PPTX r | WPG r
4639
+ CZI r | ICC r/w/c | MPC r | PS r/w | WTV r
4640
+ DCM r | ICO r | MPG r | PSB r/w | WV r
4641
+ DCP r/w | ICS r | MPO r/w | PSD r/w | X3F r/w
4642
+ DCR r | IDML r | MQV r/w | PSP r | XCF r
4643
+ DFONT r | IIQ r/w | MRC r | QTIF r/w | XLS r
4644
+ DIVX r | IND r/w | MRW r/w | R3D r | XLSX r
4645
+ DJVU r | INSP r/w | MXF r | RA r | XMP r/w/c
4646
+ DLL r | INSV r | NEF r/w | RAF r/w | ZIP r
4647
+ DNG r/w | INX r | NKSC r/w | RAM r |
4648
+ DOC r | ISO r | NRW r/w | RAR r |
4649
+ DOCX r | ITC r | NUMBERS r | RAW r/w |
4650
+ DPX r | J2C r | O r | RIFF r |
4635
4651
 
4636
4652
  Meta Information
4637
4653
  ----------------------+----------------------+---------------------
@@ -4669,7 +4685,7 @@ L<Tag operations|/Tag operations>
4669
4685
  -TAG or --TAG Extract or exclude specified tag
4670
4686
  -TAG[+-^]=[VALUE] Write new value for tag
4671
4687
  -TAG[+-]<=DATFILE Write tag value from contents of file
4672
- -TAG[+-]<SRCTAG Copy tag value (see -tagsFromFile)
4688
+ -[+]TAG[+-]<SRCTAG Copy tag value (see -tagsFromFile)
4673
4689
 
4674
4690
  -tagsFromFile SRCFILE Copy tag values from file
4675
4691
  -x TAG (-exclude) Exclude specified tag
@@ -5541,7 +5557,7 @@ with this command:
5541
5557
 
5542
5558
  produces output like this:
5543
5559
 
5544
- -- Generated by ExifTool 12.60 --
5560
+ -- Generated by ExifTool 12.62 --
5545
5561
  File: a.jpg - 2003:10:31 15:44:19
5546
5562
  (f/5.6, 1/60s, ISO 100)
5547
5563
  File: b.jpg - 2006:05:23 11:57:38
@@ -6544,11 +6560,22 @@ option no longer suppresses the output "{readyNUM}" message.
6544
6560
 
6545
6561
  =item B<-file>I<NUM> I<ALTFILE>
6546
6562
 
6547
- Read tags from an alternate source file. These tags are accessed via the
6563
+ Read tags from an alternate source file. Among other things, this allows
6564
+ tags from different files to be compared and combined using the B<-if> and
6565
+ B<-p> options. Tags from alternate files are accessed via the corresponding
6548
6566
  family 8 group name (eg. C<File1:TAG> for the B<-file1> option, C<File2:TAG>
6549
- for B<-file2>, etc). I<ALTFILE> may contain filename formatting codes %d,
6550
- %f and %e. Among other things, this allows tags from different files to be
6551
- compared and combined using the B<-if> and B<-p> options.
6567
+ for B<-file2>, etc). I<ALTFILE> may contain filename formatting codes like
6568
+ the B<-w> option (%d, %f, etc), and/or tag names with a leading C<$> symbol
6569
+ to access tags from the source file in the same way as the B<-p> option (so
6570
+ any other dollar symbol in the file name must be doubled, eg.
6571
+ C<money$$.jpg>). For example, assuming that the OriginalFileName tag has
6572
+ been set in the edited file, a command to copy Rights from the original file
6573
+ could look like this:
6574
+
6575
+ exiftool -file1 '$originalfilename' '-rights<file1:rights' edited.jpg
6576
+
6577
+ Composite tags may access tags from alternate files using the appropriate
6578
+ (case-sensitive) family 8 group name.
6552
6579
 
6553
6580
  =item B<-list_dir>
6554
6581
 
@@ -358,4 +358,3 @@ L<Image::ExifTool::TagNames/BMP Tags>,
358
358
  L<Image::ExifTool(3pm)|Image::ExifTool>
359
359
 
360
360
  =cut
361
-
@@ -582,10 +582,10 @@ number of available PDF tags. See
582
582
  L<http://www.adobe.com/devnet/pdf/pdf_reference.html> for the official PDF
583
583
  specification.
584
584
 
585
- ExifTool supports reading and writing PDF documents up to version 1.7
586
- extension level 3, including support for RC4, AES-128 and AES-256
587
- encryption. A L<Password|../ExifTool.html#Password> option is provided to allow processing of
588
- password-protected PDF files.
585
+ ExifTool supports reading and writing PDF documents up to version 2.0,
586
+ including support for RC4, AES-128 and AES-256 encryption. A
587
+ L<Password|../ExifTool.html#Password> option is provided to allow processing
588
+ of password-protected PDF files.
589
589
 
590
590
  ExifTool may be used to write native PDF and XMP metadata to PDF files. It
591
591
  uses an incremental update technique that has the advantages of being both
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
21
21
  use Image::ExifTool::Exif;
22
22
  use Image::ExifTool::ASF; # for GetGUID()
23
23
 
24
- $VERSION = '1.44';
24
+ $VERSION = '1.45';
25
25
 
26
26
  sub ProcessFPX($$);
27
27
  sub ProcessFPXR($$$);
@@ -1539,6 +1539,7 @@ sub ReadFPXValue($$$$$;$$)
1539
1539
  }
1540
1540
  $_[2] = $valPos; # return updated value position
1541
1541
 
1542
+ push @vals, '' if $type eq 0; # (VT_EMPTY)
1542
1543
  if (wantarray) {
1543
1544
  return @vals;
1544
1545
  } elsif (@vals > 1) {