exiftool_vendored 11.53.0 → 11.54.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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97fbb02d04f7a13c79740ef2c0ca3aa5397dbb8f
4
- data.tar.gz: a0bdb72ec276cfc6612f9551fd78f681352f1853
3
+ metadata.gz: 75e69c1212095c9e4bb0a1180cad9fed096909b1
4
+ data.tar.gz: 424cf805d468397a25bdcd1c92ec9ecc3ddb6ee2
5
5
  SHA512:
6
- metadata.gz: c8771355f5818b9bb5720b8a3caa567b111fa6582120519746658e03135b3df367b4c861a9b40eb7c274d36e858ac96949c1c3e4063162a27251a85537853f72
7
- data.tar.gz: 128d993de5cb91c2e8929893d8cc6481c446203de05f0f8807e41aaa3131a76152b34e825a36d472b98a7939fceb64234b298e0c01ecaf669f9261aee7975464
6
+ metadata.gz: 6a7d5afd611e6115f689dc17346357705458ec171a19ca2afbb215cfe5683782f02b158acef907a0a2801a9dd7e654fbded8ad990f3f52cf832b6a6b8d57982d
7
+ data.tar.gz: 12a0ffc20a0fd147eb6a85e00e76d21a1f725b03cc9ca0ee647a99debd0c1ab13a08832090ce62e0cd423b88e816b640279e750b7ec7e812b0ed8c784a28d8f8
data/bin/Changes CHANGED
@@ -7,6 +7,26 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
7
7
  Note: The most recent production release is Version 11.50. (Other versions are
8
8
  considered development releases, and are not uploaded to CPAN.)
9
9
 
10
+ July 2, 2019 - Version 11.54
11
+
12
+ - Added new Canon and Sony/Minolta LensType values (thanks LibRaw)
13
+ - Added a number of new Sony/Minolta LensType values (thanks Jos Roost)
14
+ - Added "Unknown" value for new EXIF CompositeImage tag
15
+ - Added ability to write GSpherical tags in video track of MOV/MP4 files
16
+ - Added support for geotagging from GPS/IMU CSV-format files
17
+ - Improved Russian translation (thanks Alexander)
18
+ - Improved Validate feature to check ExifVersion/GPSVersionID numbers
19
+ - Accept unsigned numbers when setting GPSAltitudeRef from a numerical value
20
+ - Fixed decoding of DepthMapWidth/Height for some Samsung live-focus images
21
+ - Fixed a couple of incorrect/incomplete CanonModelID values (thanks LibRaw)
22
+ - Fixed problem identifying some Canon lenses when used on a Sony camera with
23
+ a Metabones adapter
24
+ - API Changes:
25
+ - Added FilterW option
26
+ - Enhanced Compact option to improve flexibility and include features of
27
+ XMPShorthand option
28
+ - Removed XMPShorthand option from documentation
29
+
10
30
  June 24, 2019 - Version 11.53 - "Exif 2.32"
11
31
 
12
32
  - Added support for the new tags of the Exif 2.32 specification
@@ -1398,16 +1418,16 @@ Oct. 5, 2016 - Version 10.29
1398
1418
  (ie. the date/time is not converted) unless the API StrictDate option is set
1399
1419
  in which case a warning is issued and the tag is not written
1400
1420
 
1401
- Sept. 27, 2016 - Version 10.28 - "EXIF 2.31"
1421
+ Sept. 27, 2016 - Version 10.28 - "Exif 2.31"
1402
1422
 
1403
- - Added support for new EXIF 2.31 tags
1423
+ - Added support for new Exif 2.31 tags
1404
1424
  - Added some new Canon LensType values (thanks Norbert Wasser for one)
1405
1425
  - Added a new Olympus LensType (thanks LibRaw and Niels Kristian Bech Jensen)
1406
1426
  - Added a new Sony LensType and SonyModelID (thanks Jos Roost)
1407
1427
  - Added a new Pentax LensType
1408
1428
  - Added fotoware.config and bibble.config files to the distribution
1409
1429
  - Made Composite SubSecDateTimeOriginal, SubSecCreateDate and SubSecModifyDate
1410
- tags writable, and expanded to include new EXIF 2.31 time zone tags
1430
+ tags writable, and expanded to include new Exif 2.31 time zone tags
1411
1431
  - Fixed problem writing user-defined structured tag elements with a dot (.) in
1412
1432
  their tag ID
1413
1433
 
@@ -4288,7 +4308,7 @@ June 2, 2010 - Version 8.21
4288
4308
  - Updated default GPSVersionID to 2.3.0.0 when writing
4289
4309
  - Fixed bug geotagging from KML file (lat/long were swapped)
4290
4310
 
4291
- May 26, 2010 - Version 8.20
4311
+ May 26, 2010 - Version 8.20 - "Exif 2.3"
4292
4312
 
4293
4313
  - Added read support for Open Document files (ODP, ODS, ODT)
4294
4314
  - Added Composite:AudioBitrate tag for VBR MPEG audio
data/bin/META.json CHANGED
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.53",
50
+ "version" : "11.54",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
data/bin/META.yml CHANGED
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: '0'
29
29
  requires:
30
30
  perl: '5.004'
31
- version: '11.53'
31
+ version: '11.54'
32
32
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
data/bin/README CHANGED
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
104
104
  terminal window to extract and run ExifTool:
105
105
 
106
106
  cd ~/Desktop
107
- gzip -dc Image-ExifTool-11.53.tar.gz | tar -xf -
108
- cd Image-ExifTool-11.53
107
+ gzip -dc Image-ExifTool-11.54.tar.gz | tar -xf -
108
+ cd Image-ExifTool-11.54
109
109
  ./exiftool t/images/ExifTool.jpg
110
110
 
111
111
  Note: These commands extract meta information from one of the test images.
data/bin/exiftool CHANGED
@@ -12,7 +12,7 @@
12
12
  use strict;
13
13
  require 5.004;
14
14
 
15
- my $version = '11.53';
15
+ my $version = '11.54';
16
16
 
17
17
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
18
18
  my $exeDir;
@@ -140,6 +140,7 @@ my $deleteOrig; # 0=restore original files, 1=delete originals, 2=delete w/o
140
140
  my $disableOutput; # flag to disable normal output
141
141
  my $doSetFileName; # flag set if FileName may be written
142
142
  my $doUnzip; # flag to extract info from .gz and .bz2 files
143
+ my $escapeC; # C-style escape
143
144
  my $escapeHTML; # flag to escape printed values for html
144
145
  my $evalWarning; # warning from eval
145
146
  my $executeID; # -execute ID number
@@ -220,6 +221,11 @@ my $isCRLF = { MSWin32 => 1, os2 => 1, dos => 1 }->{$^O};
220
221
  # lookup for JSON characters that we escape specially
221
222
  my %jsonChar = ( '"'=>'"', '\\'=>'\\', "\t"=>'t', "\n"=>'n', "\r"=>'r' );
222
223
 
224
+ # lookup for C-style escape sequences
225
+ my %escC = ( "\n" => '\n', "\r" => '\r', "\t" => '\t', '\\' => '\\\\');
226
+ my %unescC = ( a => "\a", b => "\b", f => "\f", n => "\n", r => "\r",
227
+ t => "\t", 0 => "\0", '\\' => '\\' );
228
+
223
229
  # options requiring additional arguments
224
230
  # (used only to skip over these arguments when reading -stay_open ARGFILE)
225
231
  # (arg is converted to lower case then tested again unless an entry was found with the same case)
@@ -429,6 +435,7 @@ undef $disableOutput;
429
435
  undef $doSetFileName;
430
436
  undef $doUnzip;
431
437
  undef $escapeHTML;
438
+ undef $escapeC;
432
439
  undef $evalWarning;
433
440
  undef $executeID;
434
441
  undef $failCondition;
@@ -827,6 +834,7 @@ for (;;) {
827
834
  (/^e$/ or $a eq '-composite') and $mt->Options(Composite => 0), next;
828
835
  (/^-e$/ or $a eq 'composite') and $mt->Options(Composite => 1), next;
829
836
  (/^E$/ or $a eq 'escapehtml') and require Image::ExifTool::HTML and $escapeHTML = 1, next;
837
+ ($a eq 'ec' or $a eq 'escapec') and $escapeC = 1, next; # (undocumented) added in 11.54
830
838
  ($a eq 'ex' or $a eq 'escapexml') and $escapeXML = 1, next;
831
839
  if (/^echo(\d)?$/i) {
832
840
  my $n = $1 || 1;
@@ -1005,7 +1013,7 @@ for (;;) {
1005
1013
  /^(m|ignoreminorerrors)$/i and $mt->Options(IgnoreMinorErrors => 1), next;
1006
1014
  /^(n|-printconv)$/i and $mt->Options(PrintConv => 0), next;
1007
1015
  /^(-n|printconv)$/i and $mt->Options(PrintConv => 1), next;
1008
- $a eq 'nop' and $helped=1, next; # undocumented; no operation
1016
+ $a eq 'nop' and $helped=1, next; # (undocumented) no operation, added in 11.25
1009
1017
  if (/^o(ut)?$/i) {
1010
1018
  $outOpt = shift;
1011
1019
  defined $outOpt or Error("Expected output file or directory name for -o option\n"), $badCmd=1, next;
@@ -1048,7 +1056,7 @@ for (;;) {
1048
1056
  }
1049
1057
  /^q(uiet)?$/i and ++$quiet, next;
1050
1058
  /^r(ecurse)?(\.?)$/i and $recurse = ($2 ? 2 : 1), next;
1051
- if ($a eq 'require') { # undocumented, added in version 8.65
1059
+ if ($a eq 'require') { # (undocumented) added in version 8.65
1052
1060
  my $ver = shift;
1053
1061
  unless (defined $ver and Image::ExifTool::IsFloat($ver)) {
1054
1062
  Error("Expecting version number for -require option\n");
@@ -1574,6 +1582,9 @@ if (@newValues) {
1574
1582
  # set $newVal to '' if deleting nothing
1575
1583
  $newVal = '' if $1 eq '-' and not defined $newVal;
1576
1584
  }
1585
+ if ($escapeC and defined $newVal) {
1586
+ $newVal =~ s/\\(x([0-9a-fA-F]{2})|.)/$2 ? chr(hex($2)) : $unescC{$1} || $1/seg;
1587
+ }
1577
1588
  my ($rtn, $wrn) = $mt->SetNewValue($tag, $newVal, %opts);
1578
1589
  $needSave = 1;
1579
1590
  ++$isWriting if $rtn;
@@ -2439,10 +2450,14 @@ TAG: foreach $tag (@foundTags) {
2439
2450
  }
2440
2451
  }
2441
2452
 
2442
- # translate unprintable chars in value and remove trailing spaces
2443
- $val =~ tr/\x01-\x1f\x7f/./;
2444
- $val =~ s/\x00//g;
2445
- $val =~ s/\s+$//;
2453
+ if ($escapeC) {
2454
+ $val =~ s/([\0-\x1f\\\x7f])/$escC{$1} || sprintf('\x%.2x', ord $1)/eg;
2455
+ } else {
2456
+ # translate unprintable chars in value and remove trailing spaces
2457
+ $val =~ tr/\x01-\x1f\x7f/./;
2458
+ $val =~ s/\x00//g;
2459
+ $val =~ s/\s+$//;
2460
+ }
2446
2461
 
2447
2462
  if ($html) {
2448
2463
  print $fp "<tr>";
@@ -5119,7 +5134,7 @@ with this command:
5119
5134
 
5120
5135
  produces output like this:
5121
5136
 
5122
- -- Generated by ExifTool 11.53 --
5137
+ -- Generated by ExifTool 11.54 --
5123
5138
  File: a.jpg - 2003:10:31 15:44:19
5124
5139
  (f/5.6, 1/60s, ISO 100)
5125
5140
  File: b.jpg - 2006:05:23 11:57:38
@@ -5788,7 +5803,7 @@ available). When writing, causes compressed information to be written if
5788
5803
  supported by the metadata format (eg. compressed textual metadata in PNG),
5789
5804
  disables the recommended padding in embedded XMP (saving 2424 bytes when
5790
5805
  writing XMP in a file), and writes XMP in shorthand format -- the equivalent
5791
- of setting the API Compress, Compact and XMPShorthand options to 1.
5806
+ of setting the API Compress and Compact="Padding,Shorthand".
5792
5807
 
5793
5808
  =back
5794
5809
 
@@ -6066,9 +6081,10 @@ previews in a directory where other JPG images may exist:
6066
6081
 
6067
6082
  exiftool -ext nef -tagsfromfile @ -srcfile %d%f.jpg dir
6068
6083
 
6069
- If than one B<-srcfile> option is specified, the files are tested in order
6070
- and the first existing source file is processed. If none of the source
6071
- files already exist, then exiftool uses the first B<-srcfile> specified.
6084
+ If more than one B<-srcfile> option is specified, the files are tested in
6085
+ order and the first existing source file is processed. If none of the
6086
+ source files already exist, then exiftool uses the first B<-srcfile>
6087
+ specified.
6072
6088
 
6073
6089
  A I<FMT> of C<@> may be used to represent the original I<FILE>, which may be
6074
6090
  useful when specifying multiple B<-srcfile> options (eg. to fall back to
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
27
27
  %mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
28
28
  %jpegMarker %specialTags %fileTypeLookup);
29
29
 
30
- $VERSION = '11.53';
30
+ $VERSION = '11.54';
31
31
  $RELEASE = '';
32
32
  @ISA = qw(Exporter);
33
33
  %EXPORT_TAGS = (
@@ -90,6 +90,7 @@ sub GetExtended($$);
90
90
  sub Set64u(@);
91
91
  sub DecodeBits($$;$);
92
92
  sub EncodeBits($$;$$);
93
+ sub Filter($@);
93
94
  sub HexDump($;$%);
94
95
  sub DumpTrailer($$);
95
96
  sub DumpUnknownTrailer($$);
@@ -915,6 +916,25 @@ my %weakMagic = ( MP3 => 1 );
915
916
  # (when done, the process proc must exit after SetFileType if FastScan is 3)
916
917
  my %processType = map { $_ => 1 } qw(JPEG TIFF XMP AIFF EXE Font PS Real VCard);
917
918
 
919
+ # Compact/XMPShorthand option settings
920
+ my %compactOpt = (
921
+ nopadding => 'NoPadding', noindent => 'NoIndent', nonewline => 'NoNewline',
922
+ shorthand => 'Shorthand', onedesc => 'OneDesc',
923
+ all => ['NoPadding','NoIndent','NoNewline','Shorthand','OneDesc'],
924
+ allspace => ['NoPadding','NoIndent','NoNewline'], allformat => ['Shorthand','OneDesc'],
925
+ # aliases to cover anticipated user typos
926
+ nonewlines => 'NoNewline', nospace => 'NoIndent', nospaces => 'NoIndent',
927
+ nopad => 'NoPadding', onedescr => 'OneDesc',
928
+ # allow numerical settings for backward compatibility
929
+ 0 => 'None',
930
+ 1 => 'NoPadding',
931
+ 2 => ['NoPadding','NoIndent'],
932
+ 3 => ['NoPadding','NoIndent','OneDesc'],
933
+ 4 => ['NoPadding','NoIndent','OneDesc','NoNewline'],
934
+ 5 => ['NoPadding','NoIndent','OneDesc','NoNewline','Shorthand'],
935
+ );
936
+ my %xmpShorthandOpt = ( 0 => 'None', 1 => 'Shorthand', 2 => ['Shorthand','OneDesc'] );
937
+
918
938
  # lookup for valid character set names (keys are all lower case)
919
939
  %charsetName = (
920
940
  # Charset setting alias(es)
@@ -1951,6 +1971,8 @@ sub Options($$;@)
1951
1971
  }
1952
1972
  }
1953
1973
  $oldVal = $$options{$param};
1974
+ # get previous Compact/XMPShorthand setting
1975
+ $oldVal = $$oldVal{$param} if ref $oldVal eq 'HASH';
1954
1976
  last unless @_;
1955
1977
  my $newVal = shift;
1956
1978
  if ($param eq 'Lang') {
@@ -2054,6 +2076,23 @@ sub Options($$;@)
2054
2076
  $$options{$param} = $newVal;
2055
2077
  # set the new ListJoin option for forward compatibility
2056
2078
  $$options{ListJoin} = $newVal ? undef : $$options{ListSep};
2079
+ } elsif ($param eq 'Compact' or $param eq 'XMPShorthand') {
2080
+ # set Compact and XMPShorthand options, preserving backward compatibility
2081
+ my ($p, %compact);
2082
+ foreach $p ('Compact','XMPShorthand') {
2083
+ my $val = $param eq $p ? $newVal : $$options{Compact}{$p};
2084
+ if (defined $val) {
2085
+ my @v = ($val =~ /\w+/g);
2086
+ my $opt = ($p eq 'Compact') ? \%compactOpt : \%xmpShorthandOpt;
2087
+ foreach (@v) {
2088
+ my $set = $$opt{lc $_} or warn("Invalid $p setting '${_}'\n"), return $oldVal;
2089
+ ref $set or $compact{$set} = 1, next;
2090
+ $compact{$_} = 1 foreach @$set;
2091
+ }
2092
+ }
2093
+ $compact{$p} = $val; # preserve most recent setting
2094
+ }
2095
+ $$options{Compact} = $$options{XMPShorthand} = \%compact;
2057
2096
  } else {
2058
2097
  if ($param eq 'Escape') {
2059
2098
  # set ESCAPE_PROC
@@ -2109,7 +2148,7 @@ sub ClearOptions($)
2109
2148
  CharsetPhotoshop => 'Latin', # internal encoding for Photoshop resource names
2110
2149
  CharsetQuickTime => 'MacRoman', # internal QuickTime string encoding
2111
2150
  CharsetRIFF => 0, # internal RIFF string encoding (0=default to Latin)
2112
- Compact => 0, # write compact XMP
2151
+ Compact => { }, # write compact XMP
2113
2152
  Composite => 1, # flag to calculate Composite tags
2114
2153
  Compress => undef, # flag to write new values as compressed if possible
2115
2154
  CoordFormat => undef, # GPS lat/long coordinate format
@@ -2121,6 +2160,7 @@ sub ClearOptions($)
2121
2160
  ExtractEmbedded =>undef,# flag to extract information from embedded documents
2122
2161
  FastScan => undef, # flag to avoid scanning for trailer
2123
2162
  Filter => undef, # output filter for all tag values
2163
+ FilterW => undef, # input filter when writing tag values
2124
2164
  FixBase => undef, # fix maker notes base offsets
2125
2165
  GeoMaxIntSecs => 1800, # geotag maximum interpolation time (secs)
2126
2166
  GeoMaxExtSecs => 1800, # geotag maximum extrapolation time (secs)
@@ -2168,7 +2208,7 @@ sub ClearOptions($)
2168
2208
  WriteMode => 'wcg', # enable all write modes by default
2169
2209
  XAttrTags => undef, # extract MacOS extended attribute tags
2170
2210
  XMPAutoConv => 1, # automatic conversion of unknown XMP tag values
2171
- XMPShorthand=> 0, # short form XMP
2211
+ XMPShorthand=> 0, # (unused, but needed for backward compatibility)
2172
2212
  };
2173
2213
  # keep necessary member variables in sync with options
2174
2214
  delete $$self{CUR_LANG};
@@ -3085,7 +3125,7 @@ sub GetValue($$;$)
3085
3125
  # $valueConv is undefined if there was no print conversion done
3086
3126
  $valueConv = $value;
3087
3127
  }
3088
- $self->Filter(\$value) if defined $$self{OPTIONS}{Filter};
3128
+ Filter($$self{OPTIONS}{Filter}, \$value);
3089
3129
  # return Both values as a list (ValueConv, PrintConv)
3090
3130
  return ($valueConv, $value);
3091
3131
  }
@@ -3093,7 +3133,7 @@ sub GetValue($$;$)
3093
3133
  DoEscape($value, $$self{ESCAPE_PROC}) if $$self{ESCAPE_PROC};
3094
3134
 
3095
3135
  # filter if necessary
3096
- $self->Filter(\$value) if defined $$self{OPTIONS}{Filter} and $type eq 'PrintConv';
3136
+ Filter($$self{OPTIONS}{Filter}, \$value) if $$self{OPTIONS}{Filter} and $type eq 'PrintConv';
3097
3137
 
3098
3138
  if (ref $value eq 'ARRAY') {
3099
3139
  if (defined $$self{OPTIONS}{ListItem}) {
@@ -5243,32 +5283,32 @@ sub GetDescriptions($$)
5243
5283
 
5244
5284
  #------------------------------------------------------------------------------
5245
5285
  # Apply filter to value(s) if necessary
5246
- # Inputs: 0) ExifTool ref, 1-N) references to values(s) to filter
5286
+ # Inputs: 0) filter expression, 1-N) references to values(s) to filter
5247
5287
  # Returns: nothing, but changes values if necessary
5248
5288
  sub Filter($@)
5249
5289
  {
5250
5290
  local $_;
5251
- my $self = shift;
5252
- return unless defined $$self{OPTIONS}{Filter};
5291
+ my $filter = shift;
5292
+ return unless defined $filter;
5253
5293
  while (@_) {
5254
5294
  my $valPt = shift;
5255
5295
  next unless defined $$valPt;
5256
5296
  if (not ref $$valPt) {
5257
5297
  $_ = $$valPt;
5258
5298
  #### eval Filter ($_)
5259
- eval $$self{OPTIONS}{Filter};
5299
+ eval $filter;
5260
5300
  $$valPt = $_ if defined $_;
5261
5301
  } elsif (ref $$valPt eq 'SCALAR') {
5262
5302
  my $val = $$$valPt; # make a copy to avoid filtering twice
5263
- $self->Filter(\$val);
5303
+ Filter($filter, \$val);
5264
5304
  $$valPt = \$val;
5265
5305
  } elsif (ref $$valPt eq 'ARRAY') {
5266
5306
  my @val = @{$$valPt}; # make a copy to avoid filtering twice
5267
- $self->Filter(\$_) foreach @val;
5307
+ Filter($filter, \$_) foreach @val;
5268
5308
  $$valPt = \@val;
5269
5309
  } elsif (ref $$valPt eq 'HASH') {
5270
5310
  my %val = %{$$valPt}; # make a copy to avoid filtering twice
5271
- $self->Filter(\$val{$_}) foreach keys %val;
5311
+ Filter($filter, \$val{$_}) foreach keys %val;
5272
5312
  $$valPt = \%val;
5273
5313
  }
5274
5314
  }
@@ -5990,7 +6030,7 @@ sub ProcessJPEG($$)
5990
6030
  if ($$options{Binary}) {
5991
6031
  $val = \$buff if $raf->Seek($pos,0) and $raf->Read($buff,$len)==$len;
5992
6032
  } else {
5993
- $val = "(Binary data $len bytes)";
6033
+ $val = \ "Binary data $len bytes";
5994
6034
  }
5995
6035
  if ($val) {
5996
6036
  $self->FoundTag('EmbeddedVideo', $val);
@@ -529,15 +529,19 @@ without recoding. Default is 0.
529
529
 
530
530
  =item Compact
531
531
 
532
- Option to write compact XMP output. The XMP specification recommends that
533
- the XMP packet be padded with 2 kB of blanks to allow in-place editing. With
534
- this option set to 1, the padding is not written. Note that this effects
535
- only embedded XMP since padding is never written for stand-alone XMP files.
536
- When set to 2, spaces to indent XMP for readability are also dropped. A
537
- setting of 3 places all tags in a single rdf:Description element, and 4
538
- removes newlines from between XMP elements. A setting of 5 also writes XMP
539
- in shorthand format (to save setting the XMPShorthand option separately).
540
- Default is 0.
532
+ Comma-delimited list of settings for writing compact XMP. Below is a list
533
+ of available settings. Note that 'NoPadding' effects only embedded XMP
534
+ since padding is never written for stand-alone XMP files. Case is not
535
+ significant. Default is undef.
536
+
537
+ NoPadding - Avoid 2 kB of recommended padding at end of XMP
538
+ NoIndent - Avoid spaces to indent lines for readability
539
+ NoNewline - Avoid unnecessary newlines
540
+ Shorthand - Use XMP Shorthand format
541
+ OneDesc - Combine XMP properties into a single rdf:Description
542
+ AllSpace - Equivalent to 'NoPadding,NoIndent,NoNewline'
543
+ AllFormat - Equivalent to 'Shorthand,OneDesc'
544
+ All - Equivalent to 'AllSpace,AllFormat'
541
545
 
542
546
  =item Composite
543
547
 
@@ -606,10 +610,10 @@ GUID specified by the HasExtendedXMP tag, so by default ExifTool will ignore
606
610
  other extended XMP, but this option allows full control over the extended
607
611
  XMP to be extracted.
608
612
 
609
- 0 - ignore all extended XMP
610
- 1 - read extended XMP with valid GUID only (default)
611
- 2 - read extended XMP with any GUID
612
- <guid> - read extended XMP with a specific GUID
613
+ 0 - Ignore all extended XMP
614
+ 1 - Read extended XMP with valid GUID only (default)
615
+ 2 - Read extended XMP with any GUID
616
+ <guid> - Read extended XMP with a specific GUID
613
617
 
614
618
  =item ExtractEmbedded
615
619
 
@@ -643,6 +647,13 @@ variable as required. The value is not changed if $_ is set to undef. List
643
647
  items are filtered individually. Applies to all returned values unless
644
648
  PrintConv option is disabled.
645
649
 
650
+ =item FilterW
651
+
652
+ Perl expression used to filter PrintConv values when writing. The
653
+ expression acts on the value of the Perl default variable ($_), and changes
654
+ the value of this variable as required. The value is not changed if $_ is
655
+ set to undef.
656
+
646
657
  =item FixBase
647
658
 
648
659
  Fix maker notes base offset. A common problem with image editing software
@@ -999,11 +1010,6 @@ and L<Image::ExifTool::TagNames/MacOS XAttr Tags> for more information).
999
1010
  Flag to enable automatic conversion for unknown XMP tags with values that
1000
1011
  look like rational numbers or dates. Default is 1.
1001
1012
 
1002
- =item XMPShorthand
1003
-
1004
- Set to 1 to write xmp in shorthand format, or 2 to also combine properties
1005
- into a single rdf:Description element. Default is 0.
1006
-
1007
1013
  =back
1008
1014
 
1009
1015
  =item Return Values:
@@ -1185,7 +1191,7 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
1185
1191
 
1186
1192
  ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
1187
1193
  Compress, FixBase, IgnoreMinorErrors, Password, PNGEarlyXMP,
1188
- QuickTimeHandler, Verbose, WriteMode and XMPShorthand.
1194
+ QuickTimeHandler, Verbose and WriteMode.
1189
1195
 
1190
1196
  =head2 GetTagList
1191
1197