exiftool_vendored 12.16.0 → 12.17.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.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +23 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +28 -26
- data/bin/lib/Image/ExifTool.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -3
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/CanonCustom.pm +19 -1
- data/bin/lib/Image/ExifTool/Exif.pm +31 -15
- data/bin/lib/Image/ExifTool/FujiFilm.pm +2 -1
- data/bin/lib/Image/ExifTool/GPS.pm +5 -5
- data/bin/lib/Image/ExifTool/H264.pm +20 -5
- data/bin/lib/Image/ExifTool/NikonSettings.pm +7 -7
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +46 -4
- data/bin/lib/Image/ExifTool/TagNames.pod +122 -5
- data/bin/lib/Image/ExifTool/WriteXMP.pl +9 -6
- data/bin/lib/Image/ExifTool/Writer.pl +6 -4
- data/bin/lib/Image/ExifTool/XMP.pm +28 -2
- 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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 282998369bb9233d2f181df0f59f292915623e97fba11993c01c310e533eb29f
|
4
|
+
data.tar.gz: fd371cfbcd5c85f4a8ab489cd9ee53f0a24dd3ac69a598d5d0a35a47a05853a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0347af9fa9e87b8a4de28e8274cd5f00bbd75d78ffc0a340624da063681eae24385a46928848248b92a53ec3549010b269bd2216e5a8390f8da4bf727223ba86
|
7
|
+
data.tar.gz: becbc52e82c10df8e11c73460e711926d3e422d8e42af2c81bf94b4f1f511a7e68037e9e1601cda42964fe995bb8c54d79ecd2196a583a85941d748d749d18be
|
data/bin/Changes
CHANGED
@@ -7,6 +7,26 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 12.16. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Feb. 3, 2021 - Version 12.17
|
11
|
+
|
12
|
+
- Added a new Canon FocusMode value
|
13
|
+
- Added a new FujiFilm FilmMode value
|
14
|
+
- Added a number of new XMP-crs tags (thanks Herb)
|
15
|
+
- Decode a new H264 MDPM tag
|
16
|
+
- Allow non-conforming lower-case XMP boolean "true" and "false" values to be
|
17
|
+
written, but only when print conversion is disabled
|
18
|
+
- Improved Validate option to warn about non-capitalized boolean XMP values
|
19
|
+
- Improved logic for setting GPSLatitude/LongitudeRef values when writing
|
20
|
+
- Changed -json and -php options so the -a option is implied even without the
|
21
|
+
-g option
|
22
|
+
- Avoid extracting audio/video data from AVI videos when -ee -u is used
|
23
|
+
- Patched decoding of Canon ContinuousShootingSpeed for newer firmware
|
24
|
+
versions of the EOS-1DXmkIII
|
25
|
+
- Re-worked LensID patch of version 12.00 (github issue #51)
|
26
|
+
- Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
|
27
|
+
- Fixed problem where group could not be specified for PNG-pHYs tags when
|
28
|
+
writing
|
29
|
+
|
10
30
|
Jan. 21, 2021 - Version 12.16 (production release)
|
11
31
|
|
12
32
|
- Extract another form of video subtitle text
|
@@ -14,6 +34,8 @@ Jan. 21, 2021 - Version 12.16 (production release)
|
|
14
34
|
stream in MP4 files
|
15
35
|
- Changed a Nikon FlashMode value
|
16
36
|
- Fixed problem that caused a failed DPX test on Strawberry Perl
|
37
|
+
- API Changes:
|
38
|
+
- Enhanced ExtractEmbedded option
|
17
39
|
|
18
40
|
Jan. 18, 2021 - Version 12.15 (production release)
|
19
41
|
|
@@ -220,7 +242,7 @@ July 27, 2020 - Version 12.02
|
|
220
242
|
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
221
243
|
- Allow integer QuickTime TrackNumber and DiskNumber values
|
222
244
|
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
223
|
-
- Removed "Com" from the start of some unknown ItemList tag names
|
245
|
+
- Removed "Com" from the start of some unknown QuickTime ItemList tag names
|
224
246
|
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
225
247
|
- Changed QuickTime CleanAperture tags decode as signed rationals
|
226
248
|
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
106
106
|
terminal window to extract and run ExifTool:
|
107
107
|
|
108
108
|
cd ~/Desktop
|
109
|
-
gzip -dc Image-ExifTool-12.
|
110
|
-
cd Image-ExifTool-12.
|
109
|
+
gzip -dc Image-ExifTool-12.17.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.17
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
112
112
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
use strict;
|
11
11
|
require 5.004;
|
12
12
|
|
13
|
-
my $version = '12.
|
13
|
+
my $version = '12.17';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -1264,7 +1264,7 @@ for (;;) {
|
|
1264
1264
|
if (/^php$/i) {
|
1265
1265
|
$json = 2;
|
1266
1266
|
$html = $xml = 0;
|
1267
|
-
$mt->Options(Duplicates=>1);
|
1267
|
+
$mt->Options(Duplicates => 1);
|
1268
1268
|
next;
|
1269
1269
|
}
|
1270
1270
|
if (/^z(ip)?$/i) {
|
@@ -1505,7 +1505,6 @@ if ($xml) {
|
|
1505
1505
|
require Image::ExifTool::XMP if $json == 1; # (for EncodeBase64)
|
1506
1506
|
}
|
1507
1507
|
$mt->Options(List => 1) unless $joinLists;
|
1508
|
-
$mt->Options(Duplicates => 0) unless defined $showGroup;
|
1509
1508
|
$showTagID = 'D' if $tabFormat and not $showTagID;
|
1510
1509
|
} elsif ($structOpt) {
|
1511
1510
|
$mt->Options(List => 1);
|
@@ -2304,7 +2303,7 @@ TAG: foreach $tag (@foundTags) {
|
|
2304
2303
|
$group = $et->GetGroup($tag, $showGroup);
|
2305
2304
|
# look ahead to see if this tag may suppress a priority tag in
|
2306
2305
|
# the same group, and if so suppress this tag instead
|
2307
|
-
next if $noDups and $tag =~ /^(.*?)
|
2306
|
+
next if $noDups and $tag =~ /^(.*?) \(/ and defined $$info{$1} and
|
2308
2307
|
$group eq $et->GetGroup($1, $showGroup);
|
2309
2308
|
$group = 'Unknown' if not $group and ($xml or $json or $csv);
|
2310
2309
|
if ($fp and not ($allGroup or $csv)) {
|
@@ -2327,6 +2326,9 @@ TAG: foreach $tag (@foundTags) {
|
|
2327
2326
|
}
|
2328
2327
|
undef $group; # undefine so we don't print it below
|
2329
2328
|
}
|
2329
|
+
} elsif ($noDups) {
|
2330
|
+
# don't allow duplicates, but avoid suppressing the priority tag
|
2331
|
+
next if $tag =~ /^(.*?) \(/ and defined $$info{$1};
|
2330
2332
|
}
|
2331
2333
|
|
2332
2334
|
++$lineCount; # we are printing something meaningful
|
@@ -4917,7 +4919,7 @@ and the value is written to all possible groups/tags. For example, the
|
|
4917
4919
|
string form must be used in the following command since the intent is to set
|
4918
4920
|
the value of all existing date/time tags from C<CreateDate>:
|
4919
4921
|
|
4920
|
-
exiftool
|
4922
|
+
exiftool '-time:all<$createdate' -wm w FILE
|
4921
4923
|
|
4922
4924
|
=item B<-x> I<TAG> (B<-exclude>)
|
4923
4925
|
|
@@ -4943,7 +4945,7 @@ between images, but allows the metadata to be altered by editing the
|
|
4943
4945
|
intermediate file (C<out.args> in this example):
|
4944
4946
|
|
4945
4947
|
exiftool -args -G1 --filename --directory src.jpg > out.args
|
4946
|
-
exiftool -@ out.args -sep
|
4948
|
+
exiftool -@ out.args -sep ', ' dst.jpg
|
4947
4949
|
|
4948
4950
|
Note: Be careful when copying information with this technique since it is
|
4949
4951
|
easy to write tags which are normally considered "unsafe". For instance,
|
@@ -5207,18 +5209,18 @@ JSON arrays unless B<-sep> is used. By default XMP structures are flattened
|
|
5207
5209
|
into individual tags in the JSON output, but the original structure may be
|
5208
5210
|
preserved with the B<-struct> option (this also causes all list-type XMP
|
5209
5211
|
tags to be output as JSON arrays, otherwise single-item lists would be
|
5210
|
-
output as simple strings). The B<-a> option is implied
|
5211
|
-
|
5212
|
-
|
5213
|
-
|
5214
|
-
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5218
|
-
|
5219
|
-
|
5220
|
-
|
5221
|
-
|
5212
|
+
output as simple strings). The B<-a> option is implied when B<-json> is
|
5213
|
+
used, but entries with identical JSON names are suppressed in the output.
|
5214
|
+
(B<-G4> may be used to ensure that all tags have unique JSON names.) Adding
|
5215
|
+
the B<-D> or B<-H> option changes tag values to JSON objects with "val" and
|
5216
|
+
"id" fields, and adding B<-l> adds a "desc" field, and a "num" field if the
|
5217
|
+
numerical value is different from the converted "val". The B<-b> option may
|
5218
|
+
be added to output binary data, encoded in base64 if necessary (indicated by
|
5219
|
+
ASCII "base64:" as the first 7 bytes of the value), and B<-t> may be added
|
5220
|
+
to include tag table information (see B<-t> for details). The JSON output
|
5221
|
+
is UTF-8 regardless of any B<-L> or B<-charset> option setting, but the
|
5222
|
+
UTF-8 validation is disabled if a character set other than UTF-8 is
|
5223
|
+
specified.
|
5222
5224
|
|
5223
5225
|
If I<JSONFILE> is specified, the file is imported and the tag definitions
|
5224
5226
|
from the file are used to set tag values on a per-file basis. The special
|
@@ -5367,7 +5369,7 @@ with this command:
|
|
5367
5369
|
|
5368
5370
|
produces output like this:
|
5369
5371
|
|
5370
|
-
-- Generated by ExifTool 12.
|
5372
|
+
-- Generated by ExifTool 12.17 --
|
5371
5373
|
File: a.jpg - 2003:10:31 15:44:19
|
5372
5374
|
(f/5.6, 1/60s, ISO 100)
|
5373
5375
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5527,18 +5529,18 @@ Notes:
|
|
5527
5529
|
argument like C<%d%f.txt> is written as C<%%d%%f.txt>.
|
5528
5530
|
|
5529
5531
|
2) If the argument for B<-w> does not contain a valid format code (eg. %f),
|
5530
|
-
then it is interpreted as a file extension
|
5531
|
-
|
5532
|
-
multiple source files is typically done by shell redirection, ie)
|
5532
|
+
then it is interpreted as a file extension, but there are three different
|
5533
|
+
ways to create a single output file from multiple source files:
|
5533
5534
|
|
5535
|
+
# 1. Shell redirection
|
5534
5536
|
exiftool FILE1 FILE2 ... > out.txt
|
5535
5537
|
|
5536
|
-
|
5537
|
-
be interpreted as a format string, and the same result may be obtained
|
5538
|
-
without the use of shell redirection:
|
5539
|
-
|
5538
|
+
# 2. With the -w option and a zero-width format code
|
5540
5539
|
exiftool -w+! %0fout.txt FILE1 FILE2 ...
|
5541
5540
|
|
5541
|
+
# 3. With the -W option (see the -W option below)
|
5542
|
+
exiftool -W+! out.txt FILE1 FILE2 ...
|
5543
|
+
|
5542
5544
|
Advanced features:
|
5543
5545
|
|
5544
5546
|
A substring of the original file name, directory or extension may be taken
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
30
30
|
|
31
|
-
$VERSION = '12.
|
31
|
+
$VERSION = '12.17';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
@@ -310,9 +310,10 @@ C<integer> is a string of digits (possibly beginning with a '+' or '-'),
|
|
310
310
|
C<real> is a floating point number, C<rational> is entered as a floating
|
311
311
|
point number but stored as two C<integer> strings separated by a '/'
|
312
312
|
character, C<date> is a date/time string entered in the format "YYYY:mm:dd
|
313
|
-
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False"
|
314
|
-
|
315
|
-
|
313
|
+
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False" (but "true"
|
314
|
+
and "false" may be written as a ValueConv value for compatibility with
|
315
|
+
non-conforming applications), C<struct> indicates a structured tag, and
|
316
|
+
C<lang-alt> is a tag that supports alternate languages.
|
316
317
|
|
317
318
|
When reading, C<struct> tags are extracted only if the L<Struct|../ExifTool.html#Struct> (-struct)
|
318
319
|
option is used. Otherwise the corresponding I<Flattened> tags, indicated by
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.43';
|
92
92
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -2128,6 +2128,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2128
2128
|
16 => 'Pan Focus', #PH
|
2129
2129
|
# 137 - Single?
|
2130
2130
|
256 => 'AF + MF', #PH (NC, EOS M)
|
2131
|
+
257 => 'Live View', #forum12082
|
2131
2132
|
512 => 'Movie Snap Focus', #48
|
2132
2133
|
519 => 'Movie Servo AF', #PH (NC, EOS M)
|
2133
2134
|
},
|
@@ -19,7 +19,7 @@ use Image::ExifTool qw(:DataAccess);
|
|
19
19
|
use Image::ExifTool::Canon;
|
20
20
|
use Image::ExifTool::Exif;
|
21
21
|
|
22
|
-
$VERSION = '1.
|
22
|
+
$VERSION = '1.58';
|
23
23
|
|
24
24
|
sub ProcessCanonCustom($$$);
|
25
25
|
sub ProcessCanonCustom2($$$);
|
@@ -2098,6 +2098,24 @@ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
|
|
2098
2098
|
'$val=~/(\d+)/ ? $1 : 0',
|
2099
2099
|
'$val=~/(\d+)/ ? $1 : 0',
|
2100
2100
|
],
|
2101
|
+
},{ # (1DXmkIII firmware 1.3)
|
2102
|
+
Name => 'ContinuousShootingSpeed',
|
2103
|
+
Condition => '$count == 5',
|
2104
|
+
Count => 5,
|
2105
|
+
PrintConv => [
|
2106
|
+
'"Hi $val"',
|
2107
|
+
'"Cont $val"',
|
2108
|
+
'"Lo $val"',
|
2109
|
+
'"Soft $val"',
|
2110
|
+
'"Soft LS $val"',
|
2111
|
+
],
|
2112
|
+
PrintConvInv => [
|
2113
|
+
'$val=~/(\d+)/ ? $1 : 0',
|
2114
|
+
'$val=~/(\d+)/ ? $1 : 0',
|
2115
|
+
'$val=~/(\d+)/ ? $1 : 0',
|
2116
|
+
'$val=~/(\d+)/ ? $1 : 0',
|
2117
|
+
'$val=~/(\d+)/ ? $1 : 0',
|
2118
|
+
],
|
2101
2119
|
},{ # others
|
2102
2120
|
Name => 'ContinuousShootingSpeed',
|
2103
2121
|
Count => 3,
|
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
56
56
|
use Image::ExifTool qw(:DataAccess :Utils);
|
57
57
|
use Image::ExifTool::MakerNotes;
|
58
58
|
|
59
|
-
$VERSION = '4.
|
59
|
+
$VERSION = '4.32';
|
60
60
|
|
61
61
|
sub ProcessExif($$$);
|
62
62
|
sub WriteExif($$$);
|
@@ -2560,6 +2560,7 @@ my %opcodeInfo = (
|
|
2560
2560
|
5 => 'Color sequential area',
|
2561
2561
|
7 => 'Trilinear',
|
2562
2562
|
8 => 'Color sequential linear',
|
2563
|
+
# 15 - used by DJI XT2
|
2563
2564
|
},
|
2564
2565
|
},
|
2565
2566
|
0xa300 => {
|
@@ -4728,8 +4729,8 @@ my %subSecConv = (
|
|
4728
4729
|
},
|
4729
4730
|
LensID => {
|
4730
4731
|
Groups => { 2 => 'Camera' },
|
4732
|
+
Require => 'LensType',
|
4731
4733
|
Desire => {
|
4732
|
-
0 => 'LensType',
|
4733
4734
|
1 => 'FocalLength',
|
4734
4735
|
2 => 'MaxAperture',
|
4735
4736
|
3 => 'MaxApertureValue',
|
@@ -4748,25 +4749,16 @@ my %subSecConv = (
|
|
4748
4749
|
Applies only to LensType values with a lookup table. May be configured
|
4749
4750
|
by adding user-defined lenses
|
4750
4751
|
},
|
4751
|
-
# this LensID is only valid if the LensType has a PrintConv
|
4752
|
-
# or LensType or LensModel are the model name
|
4752
|
+
# this LensID is only valid if the LensType has a PrintConv or is a model name
|
4753
4753
|
RawConv => q{
|
4754
4754
|
my $printConv = $$self{TAG_INFO}{LensType}{PrintConv};
|
4755
|
-
return $val if ref $printConv eq 'HASH' or
|
4756
|
-
|
4757
|
-
(defined $val[0] and $val[0] =~ /(mm|\d\/F)/) or
|
4758
|
-
(defined $val[6] and $val[6] =~ /(mm|\d\/F)/);
|
4755
|
+
return $val if ref $printConv eq 'HASH' or (ref $printConv eq 'ARRAY' and
|
4756
|
+
ref $$printConv[0] eq 'HASH') or $val[0] =~ /(mm|\d\/F)/;
|
4759
4757
|
return undef;
|
4760
4758
|
},
|
4761
|
-
ValueConv => '$val
|
4759
|
+
ValueConv => '$val',
|
4762
4760
|
PrintConv => q{
|
4763
4761
|
my $pcv;
|
4764
|
-
# use LensModel ([6]) if LensType ([0]) is not populated
|
4765
|
-
# (iPhone populates LensModel but not LensType)
|
4766
|
-
if (not defined $val[0] and defined $val[6]) {
|
4767
|
-
$val[0] = $val[6];
|
4768
|
-
$prt[0] = $prt[6];
|
4769
|
-
}
|
4770
4762
|
# use LensType2 instead of LensType if available and valid (Sony E-mount lenses)
|
4771
4763
|
# (0x8000 or greater; 0 for several older/3rd-party E-mount lenses)
|
4772
4764
|
if (defined $val[9] and ($val[9] & 0x8000 or $val[9] == 0)) {
|
@@ -4794,6 +4786,30 @@ my %subSecConv = (
|
|
4794
4786
|
return $lens;
|
4795
4787
|
},
|
4796
4788
|
},
|
4789
|
+
'LensID-2' => {
|
4790
|
+
Name => 'LensID',
|
4791
|
+
Groups => { 2 => 'Camera' },
|
4792
|
+
Desire => {
|
4793
|
+
0 => 'LensModel',
|
4794
|
+
1 => 'Lens',
|
4795
|
+
2 => 'XMP-aux:LensID',
|
4796
|
+
3 => 'Make',
|
4797
|
+
},
|
4798
|
+
Inhibit => {
|
4799
|
+
4 => 'Composite:LensID',
|
4800
|
+
},
|
4801
|
+
RawConv => q{
|
4802
|
+
return undef if defined $val[2] and defined $val[3];
|
4803
|
+
return $val if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
|
4804
|
+
return $val if defined $val[1] and $val[1] =~ /(mm|\d\/F)/;
|
4805
|
+
return undef;
|
4806
|
+
},
|
4807
|
+
ValueConv => q{
|
4808
|
+
return $val[0] if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
|
4809
|
+
return $val[1];
|
4810
|
+
},
|
4811
|
+
PrintConv => '$_=$val; s/(\d)\/F/$1mm F/; s/mmF/mm F/; s/(\d) mm/${1}mm/; s/ - /-/; $_',
|
4812
|
+
},
|
4797
4813
|
);
|
4798
4814
|
|
4799
4815
|
# table for unknown IFD entries
|
@@ -31,7 +31,7 @@ use vars qw($VERSION);
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
use Image::ExifTool::Exif;
|
33
33
|
|
34
|
-
$VERSION = '1.
|
34
|
+
$VERSION = '1.79';
|
35
35
|
|
36
36
|
sub ProcessFujiDir($$$);
|
37
37
|
sub ProcessFaceRec($$$);
|
@@ -623,6 +623,7 @@ my %faceCategories = (
|
|
623
623
|
0x700 => 'Eterna', #12
|
624
624
|
0x800 => 'Classic Negative', #forum10536
|
625
625
|
0x900 => 'Bleach Bypass', #forum10890
|
626
|
+
0xa00 => 'Nostalgic Neg', #forum12085
|
626
627
|
},
|
627
628
|
},
|
628
629
|
0x1402 => { #2
|
@@ -12,7 +12,7 @@ use strict;
|
|
12
12
|
use vars qw($VERSION);
|
13
13
|
use Image::ExifTool::Exif;
|
14
14
|
|
15
|
-
$VERSION = '1.
|
15
|
+
$VERSION = '1.52';
|
16
16
|
|
17
17
|
my %coordConv = (
|
18
18
|
ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
|
@@ -50,8 +50,8 @@ my %coordConv = (
|
|
50
50
|
OTHER => sub {
|
51
51
|
my ($val, $inv) = @_;
|
52
52
|
return undef unless $inv;
|
53
|
-
return uc $1 if $val =~ /\b([NS])
|
54
|
-
return $1 eq '-' ? 'S' : 'N' if $val =~
|
53
|
+
return uc $1 if $val =~ /\b([NS])\b/i;
|
54
|
+
return $1 eq '-' ? 'S' : 'N' if $val =~ /([-+]?)\d+/;
|
55
55
|
return undef;
|
56
56
|
},
|
57
57
|
N => 'North',
|
@@ -78,8 +78,8 @@ my %coordConv = (
|
|
78
78
|
OTHER => sub {
|
79
79
|
my ($val, $inv) = @_;
|
80
80
|
return undef unless $inv;
|
81
|
-
return uc $1 if $val =~ /\b([EW])
|
82
|
-
return $1 eq '-' ? 'W' : 'E' if $val =~
|
81
|
+
return uc $1 if $val =~ /\b([EW])\b/i;
|
82
|
+
return $1 eq '-' ? 'W' : 'E' if $val =~ /([-+]?)\d+/;
|
83
83
|
return undef;
|
84
84
|
},
|
85
85
|
E => 'East',
|
@@ -89,7 +89,7 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
|
|
89
89
|
Notes => 'hours:minutes:seconds:frames',
|
90
90
|
ValueConv => 'sprintf("%.2x:%.2x:%.2x:%.2x",reverse unpack("C*",$val))',
|
91
91
|
},
|
92
|
-
# 0x14 - TitleBinaryGroup
|
92
|
+
# 0x14 - TitleBinaryGroup - val: 0x00000000,0x14200130
|
93
93
|
# 0x15 - TitleCassetteNo (ref 7)
|
94
94
|
# 0x16-0x17 - TitleSoftID (ref 7)
|
95
95
|
# (0x18,0x19 listed as TitleTextHeader/TitleText by ref 7)
|
@@ -134,8 +134,8 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
|
|
134
134
|
Name => 'Camera2',
|
135
135
|
SubDirectory => { TagTable => 'Image::ExifTool::H264::Camera2' },
|
136
136
|
},
|
137
|
-
# 0x73 Lens - val:
|
138
|
-
# 0x74 Gain
|
137
|
+
# 0x73 Lens - val: 0x04ffffd3,0x0effffd3,0x15ffffd3,0x41ffffd3,0x52ffffd3,0x59ffffd3,0x65ffffd3,0x71ffffd3,0x75ffffd3,0x79ffffd3,0x7fffffd3,0xffffffd3...
|
138
|
+
# 0x74 Gain - val: 0xb8ffff0f
|
139
139
|
# 0x75 Pedestal
|
140
140
|
# 0x76 Gamma
|
141
141
|
# 0x77 Detail
|
@@ -376,34 +376,49 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
|
|
376
376
|
Notes => 'combined with tag 0xc8',
|
377
377
|
},
|
378
378
|
# 0xc9-0xcf - GPSOption
|
379
|
+
# 0xc9 - val: 0x001d0203
|
380
|
+
0xca => { #PH (Sony DSC-HX7V)
|
381
|
+
Name => 'GPSDateStamp',
|
382
|
+
Format => 'string',
|
383
|
+
Groups => { 1 => 'GPS', 2 => 'Time' },
|
384
|
+
Combine => 2, # the next 2 tags contain the rest of the string
|
385
|
+
Notes => 'combined with tags 0xcb and 0xcc',
|
386
|
+
ValueConv => 'Image::ExifTool::Exif::ExifDate($val)',
|
387
|
+
},
|
379
388
|
0xe0 => {
|
380
389
|
Name => 'MakeModel',
|
381
390
|
SubDirectory => { TagTable => 'Image::ExifTool::H264::MakeModel' },
|
382
391
|
},
|
383
392
|
# 0xe1-0xef - MakerOption
|
384
393
|
# 0xe1 - val: 0x01000670,0x01000678,0x06ffffff,0x01ffffff,0x01000020,0x01000400...
|
385
|
-
# 0xe2-0xe8 - val: 0x00000000 in many samples
|
386
394
|
0xe1 => { #6
|
387
395
|
Name => 'RecInfo',
|
388
396
|
Condition => '$$self{Make} eq "Canon"',
|
389
397
|
Notes => 'Canon only',
|
390
398
|
SubDirectory => { TagTable => 'Image::ExifTool::H264::RecInfo' },
|
391
399
|
},
|
400
|
+
# 0xe2-0xe8 - val: 0x00000000 in many samples
|
401
|
+
# 0xe2 - val: 0x00000000,0x01000000,0x01010000,0x8080900c,0x8080a074
|
402
|
+
# 0xe3 - val: 0x00801f89,0x00801f8b,0x00c01f89,0xc9c01f80
|
392
403
|
0xe4 => { #PH
|
393
404
|
Name => 'Model',
|
394
405
|
Condition => '$$self{Make} eq "Sony"', # (possibly also Canon models?)
|
395
406
|
Description => 'Camera Model Name',
|
396
|
-
Notes => 'Sony
|
407
|
+
Notes => 'Sony only, combined with tags 0xe5 and 0xe6',
|
397
408
|
Format => 'string',
|
398
409
|
Combine => 2, # (not sure about 0xe6, but include it just in case)
|
399
410
|
RawConv => '$val eq "" ? undef : $val',
|
400
411
|
},
|
412
|
+
# 0xeb - val: 0x008a0a00,0x0a300000,0x508a0a00,0x52880a00,0x528a0a00
|
413
|
+
# 0xec - val: 0x0b700000
|
414
|
+
# 0xed - val: 0x0ce0f819
|
401
415
|
0xee => { #6 (HFS200)
|
402
416
|
Name => 'FrameInfo',
|
403
417
|
Condition => '$$self{Make} eq "Canon"',
|
404
418
|
Notes => 'Canon only',
|
405
419
|
SubDirectory => { TagTable => 'Image::ExifTool::H264::FrameInfo' },
|
406
420
|
},
|
421
|
+
# 0xef - val: 0x01c00000,0x0e00000c
|
407
422
|
);
|
408
423
|
|
409
424
|
# ConsumerCamera1 information (ref PH)
|