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 +4 -4
- data/bin/Changes +24 -4
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +28 -12
- data/bin/lib/Image/ExifTool.pm +53 -13
- data/bin/lib/Image/ExifTool.pod +25 -19
- data/bin/lib/Image/ExifTool/Exif.pm +7 -6
- data/bin/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/lib/Image/ExifTool/Geotag.pm +48 -3
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1510 -284
- data/bin/lib/Image/ExifTool/Minolta.pm +57 -50
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +7 -3
- data/bin/lib/Image/ExifTool/Samsung.pm +24 -3
- data/bin/lib/Image/ExifTool/Sony.pm +8 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +5 -2
- data/bin/lib/Image/ExifTool/Torrent.pm +4 -1
- data/bin/lib/Image/ExifTool/Validate.pm +79 -33
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +19 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +52 -29
- data/bin/lib/Image/ExifTool/Writer.pl +8 -0
- data/bin/lib/Image/ExifTool/XMP.pm +1 -0
- data/bin/lib/Image/ExifTool/XMP2.pl +3 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75e69c1212095c9e4bb0a1180cad9fed096909b1
|
4
|
+
data.tar.gz: 424cf805d468397a25bdcd1c92ec9ecc3ddb6ee2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 - "
|
1421
|
+
Sept. 27, 2016 - Version 10.28 - "Exif 2.31"
|
1402
1422
|
|
1403
|
-
- Added support for new
|
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
|
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
data/bin/META.yml
CHANGED
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.
|
108
|
-
cd Image-ExifTool-11.
|
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.
|
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
|
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
|
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
|
-
|
2443
|
-
|
2444
|
-
|
2445
|
-
|
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.
|
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
|
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
|
6070
|
-
and the first existing source file is processed. If none of the
|
6071
|
-
files already exist, then exiftool uses the first B<-srcfile>
|
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
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -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.
|
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 =>
|
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, #
|
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
|
-
|
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
|
-
|
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)
|
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 $
|
5252
|
-
return unless defined
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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 = "
|
6033
|
+
$val = \ "Binary data $len bytes";
|
5994
6034
|
}
|
5995
6035
|
if ($val) {
|
5996
6036
|
$self->FoundTag('EmbeddedVideo', $val);
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -529,15 +529,19 @@ without recoding. Default is 0.
|
|
529
529
|
|
530
530
|
=item Compact
|
531
531
|
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
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 -
|
610
|
-
1 -
|
611
|
-
2 -
|
612
|
-
<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
|
1194
|
+
QuickTimeHandler, Verbose and WriteMode.
|
1189
1195
|
|
1190
1196
|
=head2 GetTagList
|
1191
1197
|
|