exiftool_vendored 13.34.0 → 13.37.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.
- checksums.yaml +4 -4
- data/bin/Changes +55 -1
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/Makefile.PL +1 -0
- data/bin/README +2 -2
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +43 -33
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +15 -8
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +86 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +59 -8
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +3 -2
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +91 -33
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +3 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +10 -2
- data/bin/lib/Image/ExifTool/GoPro.pm +5 -5
- data/bin/lib/Image/ExifTool/Google.pm +804 -0
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +3 -3
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +2 -2
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +4 -6
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
- data/bin/lib/Image/ExifTool/MakerNotes.pm +30 -7
- data/bin/lib/Image/ExifTool/Microsoft.pm +4 -4
- data/bin/lib/Image/ExifTool/Nikon.pm +6 -5
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +6 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +51 -39
- data/bin/lib/Image/ExifTool/Protobuf.pm +12 -6
- data/bin/lib/Image/ExifTool/Qualcomm.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +30 -8
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/README +7 -6
- data/bin/lib/Image/ExifTool/RIFF.pm +5 -3
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +375 -91
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +8 -5
- data/bin/lib/Image/ExifTool/Sony.pm +20 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5749 -5695
- data/bin/lib/Image/ExifTool/TagNames.pod +690 -519
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Trailer.pm +1 -1
- data/bin/lib/Image/ExifTool/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +2 -1
- data/bin/lib/Image/ExifTool/XMP.pm +39 -32
- data/bin/lib/Image/ExifTool/XMP2.pl +0 -482
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +6 -4
- data/bin/lib/Image/ExifTool.pod +3 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -6
@@ -42,7 +42,7 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
|
|
42
42
|
# information extracted from H.264 video streams
|
43
43
|
%Image::ExifTool::H264::Main = (
|
44
44
|
GROUPS => { 2 => 'Video' },
|
45
|
-
VARS => {
|
45
|
+
VARS => { ID_FMT => 'none' },
|
46
46
|
NOTES => q{
|
47
47
|
Tags extracted from H.264 video streams. The metadata for AVCHD videos is
|
48
48
|
stored in this stream.
|
@@ -964,7 +964,7 @@ my %manuSig = ( #6
|
|
964
964
|
%Image::ExifTool::ICC_Profile::Metadata = (
|
965
965
|
PROCESS_PROC => \&ProcessMetadata,
|
966
966
|
GROUPS => { 0 => 'ICC_Profile', 1 => 'ICC-meta', 2 => 'Image' },
|
967
|
-
VARS => {
|
967
|
+
VARS => { ID_FMT => 'none' },
|
968
968
|
NOTES => q{
|
969
969
|
Only these few tags have been pre-defined, but ExifTool will extract any
|
970
970
|
Metadata tags that exist.
|
@@ -76,7 +76,7 @@ my %userTagName = (
|
|
76
76
|
|
77
77
|
# This table is just for documentation purposes
|
78
78
|
%Image::ExifTool::ID3::Main = (
|
79
|
-
VARS => {
|
79
|
+
VARS => { ID_FMT => 'none' },
|
80
80
|
PROCESS_PROC => \&ProcessID3Dir, # (used to process 'id3 ' chunk in WAV files)
|
81
81
|
NOTES => q{
|
82
82
|
ExifTool extracts ID3 and Lyrics3 information from MP3, MPEG, WAV, AIFF,
|
@@ -720,7 +720,7 @@ my %id3v2_common = (
|
|
720
720
|
# Synchronized lyrics/text
|
721
721
|
%Image::ExifTool::ID3::SynLyrics = (
|
722
722
|
GROUPS => { 1 => 'ID3', 2 => 'Audio' },
|
723
|
-
VARS => {
|
723
|
+
VARS => { ID_FMT => 'none' },
|
724
724
|
PROCESS_PROC => \&ProcessSynText,
|
725
725
|
NOTES => 'The following tags are extracted from synchronized lyrics/text frames.',
|
726
726
|
desc => { Name => 'SynchronizedLyricsDescription' },
|
@@ -754,7 +754,7 @@ my %id3v2_common = (
|
|
754
754
|
%Image::ExifTool::ID3::Private = (
|
755
755
|
PROCESS_PROC => \&Image::ExifTool::ID3::ProcessPrivate,
|
756
756
|
GROUPS => { 1 => 'ID3', 2 => 'Audio' },
|
757
|
-
VARS => {
|
757
|
+
VARS => { ID_FMT => 'none' },
|
758
758
|
NOTES => q{
|
759
759
|
ID3 private (PRIV) tags. ExifTool will decode any private tags found, even
|
760
760
|
if they do not appear in this table.
|
@@ -565,7 +565,7 @@ sub ProcessJPEG_HDR($$$);
|
|
565
565
|
# APP9 Media Jukebox segment (ref PH)
|
566
566
|
%Image::ExifTool::JPEG::MediaJukebox = (
|
567
567
|
GROUPS => { 0 => 'XML', 1 => 'MediaJukebox', 2 => 'Image' },
|
568
|
-
VARS => {
|
568
|
+
VARS => { ID_FMT => 'none' },
|
569
569
|
NOTES => 'Tags found in the XML metadata of the APP9 "Media Jukebox" segment.',
|
570
570
|
Date => {
|
571
571
|
Groups => { 2 => 'Time' },
|
@@ -21,7 +21,7 @@ sub ProcessTag($$$$%);
|
|
21
21
|
|
22
22
|
%Image::ExifTool::JSON::Main = (
|
23
23
|
GROUPS => { 0 => 'JSON', 1 => 'JSON', 2 => 'Other' },
|
24
|
-
VARS => {
|
24
|
+
VARS => { ID_FMT => 'none' },
|
25
25
|
PROCESS_PROC => \&ProcessJSON,
|
26
26
|
NOTES => q{
|
27
27
|
Other than a few tags in the table below, JSON tags have not been
|
@@ -18,7 +18,7 @@ $VERSION = '1.01';
|
|
18
18
|
%Image::ExifTool::LIF::Main = (
|
19
19
|
GROUPS => { 0 => 'XML', 1 => 'XML', 2 => 'Image' },
|
20
20
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
21
|
-
VARS => {
|
21
|
+
VARS => { ID_FMT => 'none' },
|
22
22
|
NOTES => q{
|
23
23
|
Tags extracted from Leica Image Format (LIF) imaging files. As well as the
|
24
24
|
tags listed below, all available information is extracted from the
|
@@ -26,7 +26,7 @@ sub ProcessLinkInfo($$$);
|
|
26
26
|
%Image::ExifTool::LNK::Main = (
|
27
27
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
28
28
|
GROUPS => { 2 => 'Other' },
|
29
|
-
VARS => {
|
29
|
+
VARS => { ID_FMT => 'hex' }, # print hex ID's in documentation
|
30
30
|
NOTES => 'Information extracted from MS Shell Link (Windows shortcut) files.',
|
31
31
|
# maybe the Flags aren't very useful to the user (since they are
|
32
32
|
# mainly structural), but extract them anyway for completeness
|
@@ -262,7 +262,7 @@ sub ProcessLinkInfo($$$);
|
|
262
262
|
GROUPS => { 2 => 'Other' },
|
263
263
|
PROCESS_PROC => \&ProcessLinkInfo,
|
264
264
|
FORMAT => 'int32u',
|
265
|
-
VARS => {
|
265
|
+
VARS => { ID_FMT => 'none' },
|
266
266
|
VolumeID => { },
|
267
267
|
DriveType => {
|
268
268
|
PrintConv => {
|
@@ -22,7 +22,7 @@ sub ExtractTags($$$);
|
|
22
22
|
# Lytro LFP tags (ref PH)
|
23
23
|
%Image::ExifTool::Lytro::Main = (
|
24
24
|
GROUPS => { 2 => 'Camera' },
|
25
|
-
VARS => {
|
25
|
+
VARS => { ID_FMT => 'none' },
|
26
26
|
NOTES => q{
|
27
27
|
Tag definitions for Lytro Light Field Picture (LFP) files. ExifTool
|
28
28
|
extracts the full JSON metadata blocks, as well as breaking them down into
|
@@ -32,7 +32,7 @@ use strict;
|
|
32
32
|
use vars qw($VERSION);
|
33
33
|
use Image::ExifTool qw(:DataAccess :Utils);
|
34
34
|
|
35
|
-
$VERSION = '1.
|
35
|
+
$VERSION = '1.30';
|
36
36
|
|
37
37
|
# program map table "stream_type" lookup (ref 6/1/9)
|
38
38
|
my %streamType = (
|
@@ -132,7 +132,7 @@ my $knotsToKph = 1.852; # knots --> km/h
|
|
132
132
|
# information extracted from the MPEG-2 transport stream
|
133
133
|
%Image::ExifTool::M2TS::Main = (
|
134
134
|
GROUPS => { 2 => 'Video' },
|
135
|
-
VARS => {
|
135
|
+
VARS => { ID_FMT => 'none' },
|
136
136
|
NOTES => q{
|
137
137
|
The MPEG-2 transport stream is used as a container for many different
|
138
138
|
audio/video formats (including AVCHD). This table lists information
|
@@ -165,7 +165,7 @@ my $knotsToKph = 1.852; # knots --> km/h
|
|
165
165
|
# information extracted from AC-3 audio streams
|
166
166
|
%Image::ExifTool::M2TS::AC3 = (
|
167
167
|
GROUPS => { 1 => 'AC3', 2 => 'Audio' },
|
168
|
-
VARS => {
|
168
|
+
VARS => { ID_FMT => 'none' },
|
169
169
|
NOTES => 'Tags extracted from AC-3 audio streams.',
|
170
170
|
AudioSampleRate => {
|
171
171
|
PrintConv => {
|
@@ -557,7 +557,7 @@ sub ProcessM2TS($$)
|
|
557
557
|
{
|
558
558
|
my ($et, $dirInfo) = @_;
|
559
559
|
my $raf = $$dirInfo{RAF};
|
560
|
-
my ($buff, $pLen, $
|
560
|
+
my ($buff, $pLen, $j, $fileType, $eof);
|
561
561
|
my (%pmt, %pidType, %data, %sectLen, %packLen, %fromStart);
|
562
562
|
my ($startTime, $endTime, $fwdTime, $backScan, $maxBack);
|
563
563
|
my $verbose = $et->Options('Verbose');
|
@@ -570,10 +570,8 @@ sub ProcessM2TS($$)
|
|
570
570
|
unless ($1) {
|
571
571
|
$pLen = 188; # no timecode
|
572
572
|
$fileType = 'M2T'; # (just as a way to tell there is no timecode)
|
573
|
-
$upkPrefix = 'N';
|
574
573
|
} else {
|
575
574
|
$pLen = 192; # 188-byte transport packet + leading 4-byte timecode (ref 4)
|
576
|
-
$upkPrefix = 'x4N';
|
577
575
|
}
|
578
576
|
my $prePos = $pLen - 188; # byte position of packet prefix
|
579
577
|
my $readSize = 64 * $pLen; # size of our read buffer
|
@@ -322,7 +322,7 @@ $VERSION = '1.17';
|
|
322
322
|
|
323
323
|
%Image::ExifTool::MPEG::Xing = (
|
324
324
|
GROUPS => { 2 => 'Audio' },
|
325
|
-
VARS => {
|
325
|
+
VARS => { ID_FMT => 'none' },
|
326
326
|
NOTES => 'These tags are extracted from the Xing/Info frame.',
|
327
327
|
1 => { Name => 'VBRFrames' },
|
328
328
|
2 => { Name => 'VBRBytes' },
|
@@ -28,7 +28,7 @@ my $mwgLoaded; # flag set if we alreaded Load()ed the MWG tags
|
|
28
28
|
# MWG Composite tags
|
29
29
|
%Image::ExifTool::MWG::Composite = (
|
30
30
|
GROUPS => { 0 => 'Composite', 1 => 'MWG', 2 => 'Image' },
|
31
|
-
VARS => {
|
31
|
+
VARS => { ID_FMT => 'none' },
|
32
32
|
WRITE_PROC => \&Image::ExifTool::DummyWriteProc,
|
33
33
|
NOTES => q{
|
34
34
|
The table below lists special Composite tags which are used to access other
|
@@ -116,7 +116,7 @@ my %componentDataDef = (
|
|
116
116
|
# Note: The Binary flag is automatically set for all Unknown tags with unknown Type
|
117
117
|
%Image::ExifTool::MXF::Main = (
|
118
118
|
GROUPS => { 2 => 'Video' },
|
119
|
-
VARS => { NO_LOOKUP => 1,
|
119
|
+
VARS => { NO_LOOKUP => 1, ID_FMT => 'none' }, # tag ID's are too bulky
|
120
120
|
NOTES => q{
|
121
121
|
Tags extracted from Material Exchange Format files. Tag ID's are not listed
|
122
122
|
because they are bulky 16-byte binary values.
|
@@ -52,7 +52,7 @@ my %delXAttr = (
|
|
52
52
|
# "mdls" tags (ref PH)
|
53
53
|
%Image::ExifTool::MacOS::MDItem = (
|
54
54
|
WRITE_PROC => \&Image::ExifTool::DummyWriteProc,
|
55
|
-
VARS => {
|
55
|
+
VARS => { ID_FMT => 'none' },
|
56
56
|
GROUPS => { 0 => 'File', 1 => 'MacOS', 2 => 'Other' },
|
57
57
|
NOTES => q{
|
58
58
|
MDItem tags are extracted using the "mdls" utility. They are extracted if
|
@@ -245,7 +245,7 @@ my %delXAttr = (
|
|
245
245
|
%Image::ExifTool::MacOS::XAttr = (
|
246
246
|
WRITE_PROC => \&Image::ExifTool::DummyWriteProc,
|
247
247
|
GROUPS => { 0 => 'File', 1 => 'MacOS', 2 => 'Other' },
|
248
|
-
VARS => {
|
248
|
+
VARS => { ID_FMT => 'none' }, # (id's are too long)
|
249
249
|
NOTES => q{
|
250
250
|
XAttr tags are extracted using the "xattr" utility. They are extracted if
|
251
251
|
any "XAttr*" tag or the MacOS group is specifically requested, or by setting
|
@@ -21,7 +21,7 @@ sub ProcessKodakPatch($$$);
|
|
21
21
|
sub WriteUnknownOrPreview($$$);
|
22
22
|
sub FixLeicaBase($$;$);
|
23
23
|
|
24
|
-
$VERSION = '2.
|
24
|
+
$VERSION = '2.18';
|
25
25
|
|
26
26
|
my $debug; # set to 1 to enable debugging code
|
27
27
|
|
@@ -157,6 +157,13 @@ my $debug; # set to 1 to enable debugging code
|
|
157
157
|
FixOffsets => '$valuePtr -= 210 if $tagID >= 0x1303',
|
158
158
|
},
|
159
159
|
},
|
160
|
+
{
|
161
|
+
Name => 'MakerNoteGoogle',
|
162
|
+
Condition => '$$valPt =~ /^HDRP[\x02\x03]/',
|
163
|
+
SubDirectory => {
|
164
|
+
TagTable => 'Image::ExifTool::Google::HDRPlusMakerNote',
|
165
|
+
},
|
166
|
+
},
|
160
167
|
{
|
161
168
|
Name => 'MakerNoteHasselblad',
|
162
169
|
Condition => '$$self{Make} eq "Hasselblad"',
|
@@ -843,29 +850,45 @@ my $debug; # set to 1 to enable debugging code
|
|
843
850
|
PutFirst => 1, # place immediately after TIFF header
|
844
851
|
},
|
845
852
|
{
|
846
|
-
Name => '
|
853
|
+
Name => 'MakerNoteReconyxHyperFire',
|
847
854
|
Condition => q{
|
848
855
|
$$valPt =~ /^\x01\xf1([\x02\x03]\x00)?/ and
|
849
856
|
($1 or $$self{Make} eq "RECONYX")
|
850
857
|
},
|
851
858
|
SubDirectory => {
|
852
|
-
TagTable => 'Image::ExifTool::Reconyx::
|
859
|
+
TagTable => 'Image::ExifTool::Reconyx::HyperFire',
|
853
860
|
ByteOrder => 'Little-endian',
|
854
861
|
},
|
855
862
|
},
|
856
863
|
{
|
857
|
-
Name => '
|
864
|
+
Name => 'MakerNoteReconyxUltraFire',
|
858
865
|
Condition => '$$valPt =~ /^RECONYXUF\0/',
|
859
866
|
SubDirectory => {
|
860
|
-
TagTable => 'Image::ExifTool::Reconyx::
|
867
|
+
TagTable => 'Image::ExifTool::Reconyx::UltraFire',
|
861
868
|
ByteOrder => 'Little-endian',
|
862
869
|
},
|
863
870
|
},
|
864
871
|
{
|
865
|
-
Name => '
|
872
|
+
Name => 'MakerNoteReconyxHyperFire2',
|
866
873
|
Condition => '$$valPt =~ /^RECONYXH2\0/',
|
867
874
|
SubDirectory => {
|
868
|
-
TagTable => 'Image::ExifTool::Reconyx::
|
875
|
+
TagTable => 'Image::ExifTool::Reconyx::HyperFire2',
|
876
|
+
ByteOrder => 'Little-endian',
|
877
|
+
},
|
878
|
+
},
|
879
|
+
{
|
880
|
+
Name => 'MakerNoteReconyxMicroFire',
|
881
|
+
Condition => '$$valPt =~ /^RECONYXMF\0/',
|
882
|
+
SubDirectory => {
|
883
|
+
TagTable => 'Image::ExifTool::Reconyx::MicroFire',
|
884
|
+
ByteOrder => 'Little-endian',
|
885
|
+
},
|
886
|
+
},
|
887
|
+
{
|
888
|
+
Name => 'MakerNoteReconyxHyperFire4K',
|
889
|
+
Condition => '$$valPt =~ /^RECONYXHF4K\0/',
|
890
|
+
SubDirectory => {
|
891
|
+
TagTable => 'Image::ExifTool::Reconyx::HyperFire4K',
|
869
892
|
ByteOrder => 'Little-endian',
|
870
893
|
},
|
871
894
|
},
|
@@ -230,7 +230,7 @@ sub CheckXtra($$$);
|
|
230
230
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-microsoft', 2 => 'Image' },
|
231
231
|
NAMESPACE => 'MicrosoftPhoto',
|
232
232
|
TABLE_DESC => 'XMP Microsoft',
|
233
|
-
VARS => {
|
233
|
+
VARS => { ID_FMT => 'none' },
|
234
234
|
NOTES => q{
|
235
235
|
Microsoft Photo 1.0 schema XMP tags. This is likely not a complete list,
|
236
236
|
but represents tags which have been observed in sample images. The actual
|
@@ -263,7 +263,7 @@ sub CheckXtra($$$);
|
|
263
263
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-MP1', 2 => 'Image' },
|
264
264
|
NAMESPACE => 'MP1',
|
265
265
|
TABLE_DESC => 'XMP Microsoft Photo',
|
266
|
-
VARS => {
|
266
|
+
VARS => { ID_FMT => 'none' },
|
267
267
|
NOTES => q{
|
268
268
|
Microsoft Photo 1.1 schema XMP tags which have been observed.
|
269
269
|
},
|
@@ -320,7 +320,7 @@ my %sRegions = (
|
|
320
320
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-MP', 2 => 'Image' },
|
321
321
|
NAMESPACE => 'MP',
|
322
322
|
TABLE_DESC => 'XMP Microsoft Photo',
|
323
|
-
VARS => {
|
323
|
+
VARS => { ID_FMT => 'none' },
|
324
324
|
NOTES => q{
|
325
325
|
Microsoft Photo 1.2 schema XMP tags which have been observed.
|
326
326
|
},
|
@@ -361,7 +361,7 @@ my %sRegions = (
|
|
361
361
|
WRITE_GROUP => 'Microsoft',
|
362
362
|
AVOID => 1,
|
363
363
|
GROUPS => { 0 => 'QuickTime', 2 => 'Video' },
|
364
|
-
VARS => {
|
364
|
+
VARS => { ID_FMT => 'none' },
|
365
365
|
NOTES => q{
|
366
366
|
Tags found in the Microsoft "Xtra" atom of QuickTime videos. Tag ID's are
|
367
367
|
not shown because some are unruly GUID's. Currently most of these tags are
|
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
65
65
|
use Image::ExifTool::GPS;
|
66
66
|
use Image::ExifTool::XMP;
|
67
67
|
|
68
|
-
$VERSION = '4.
|
68
|
+
$VERSION = '4.51';
|
69
69
|
|
70
70
|
sub LensIDConv($$$);
|
71
71
|
sub ProcessNikonAVI($$$);
|
@@ -583,6 +583,7 @@ sub GetAFPointGrid($$;$);
|
|
583
583
|
'0E 4A 31 48 23 2D 0E 02' => 'Tamron SP AF 20-40mm f/2.7-3.5 (166D)',
|
584
584
|
'FE 48 37 5C 24 24 DF 0E' => 'Tamron SP 24-70mm f/2.8 Di VC USD (A007)', #24
|
585
585
|
'CE 47 37 5C 25 25 DF 4E' => 'Tamron SP 24-70mm f/2.8 Di VC USD G2 (A032)', #forum9110
|
586
|
+
'CE 00 37 5C 25 25 DF 4E' => 'Tamron SP 24-70mm f/2.8 Di VC USD G2 (A032)', #github345
|
586
587
|
'45 41 37 72 2C 3C 48 02' => 'Tamron SP AF 24-135mm f/3.5-5.6 AD Aspherical (IF) Macro (190D)',
|
587
588
|
'33 54 3C 5E 24 24 62 02' => 'Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09)',
|
588
589
|
'FA 54 3C 5E 24 24 84 06' => 'Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical (IF) Macro (A09NII)', #JD
|
@@ -13068,7 +13069,7 @@ my %nikonFocalConversions = (
|
|
13068
13069
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-ast', 2 => 'Image' },
|
13069
13070
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13070
13071
|
NAMESPACE => 'ast',
|
13071
|
-
VARS => {
|
13072
|
+
VARS => { ID_FMT => 'none' },
|
13072
13073
|
NOTES => 'Tags used by Nikon NX Studio in Nikon NKSC sidecar files and trailers.',
|
13073
13074
|
about => { },
|
13074
13075
|
version => { },
|
@@ -13126,7 +13127,7 @@ my %nikonFocalConversions = (
|
|
13126
13127
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-sdc', 2 => 'Image' },
|
13127
13128
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13128
13129
|
NAMESPACE => 'sdc',
|
13129
|
-
VARS => {
|
13130
|
+
VARS => { ID_FMT => 'none' },
|
13130
13131
|
about => { },
|
13131
13132
|
version => { },
|
13132
13133
|
appversion => { Name => 'AppVersion' },
|
@@ -13136,7 +13137,7 @@ my %nikonFocalConversions = (
|
|
13136
13137
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-nine', 2 => 'Image' },
|
13137
13138
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13138
13139
|
NAMESPACE => 'nine',
|
13139
|
-
VARS => {
|
13140
|
+
VARS => { ID_FMT => 'none' },
|
13140
13141
|
about => { },
|
13141
13142
|
version => { },
|
13142
13143
|
Label => { },
|
@@ -13153,7 +13154,7 @@ my %nikonFocalConversions = (
|
|
13153
13154
|
%Image::ExifTool::Nikon::NineEdits = (
|
13154
13155
|
GROUPS => { 0 => 'XML', 1 => 'NineEdits', 2 => 'Image' },
|
13155
13156
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13156
|
-
VARS => {
|
13157
|
+
VARS => { ID_FMT => 'none' },
|
13157
13158
|
NOTES => 'XML-based tags used to store editing information.',
|
13158
13159
|
filterParametersBinary => { %base64bin },
|
13159
13160
|
filterParametersExportExportData => { %base64bin },
|
@@ -54,7 +54,7 @@ my @vectorVals;
|
|
54
54
|
%Image::ExifTool::OOXML::Main = (
|
55
55
|
GROUPS => { 0 => 'XML', 1 => 'XML', 2 => 'Document' },
|
56
56
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
57
|
-
VARS => {
|
57
|
+
VARS => { ID_FMT => 'none' },
|
58
58
|
NOTES => q{
|
59
59
|
The Office Open XML (OOXML) format was introduced with Microsoft Office 2007
|
60
60
|
and is used by file types such as DOCX, PPTX and XLSX. These are
|
@@ -21,7 +21,7 @@ $VERSION = '1.04';
|
|
21
21
|
|
22
22
|
my $MAX_PACKETS = 2; # maximum packets to scan from each stream at start of file
|
23
23
|
|
24
|
-
# Information types
|
24
|
+
# Information types recognized in Ogg files
|
25
25
|
%Image::ExifTool::Ogg::Main = (
|
26
26
|
NOTES => q{
|
27
27
|
ExifTool extracts the following types of information from Ogg files. See
|
@@ -41,7 +41,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
41
41
|
use Image::ExifTool::Exif;
|
42
42
|
use Image::ExifTool::APP12;
|
43
43
|
|
44
|
-
$VERSION = '2.
|
44
|
+
$VERSION = '2.91';
|
45
45
|
|
46
46
|
sub PrintLensInfo($$$);
|
47
47
|
|
@@ -117,8 +117,10 @@ my %olympusLensTypes = (
|
|
117
117
|
'0 35 10' => 'Olympus M.Zuiko 100-400mm F5.0-6.3', #IB (also OM System M.Zuiko Digital ED 100-400mm F5.0-6.3 IS II", forum2833)
|
118
118
|
'0 36 10' => 'Olympus M.Zuiko Digital ED 8-25mm F4 Pro', #IB
|
119
119
|
'0 37 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro', #forum3833
|
120
|
+
'0 38 10' => 'Olympus M.Zuiko Digital ED 20mm F1.4 Pro',
|
120
121
|
'0 39 10' => 'Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro', #forum3833
|
121
122
|
'0 40 10' => 'Olympus M.Zuiko Digital ED 150-600mm F5.0-6.3', #forum15652
|
123
|
+
'0 41 10' => 'OM System M.Zuiko Digital ED 50-200mm F2.8 IS Pro', #github#352
|
122
124
|
# Sigma lenses
|
123
125
|
'1 01 00' => 'Sigma 18-50mm F3.5-5.6 DC', #8
|
124
126
|
'1 01 10' => 'Sigma 30mm F2.8 EX DN', #NJ
|
@@ -2252,12 +2254,15 @@ my %indexInfo = (
|
|
2252
2254
|
5 => 'i-Enhance', #11
|
2253
2255
|
6 => 'e-Portrait', #23
|
2254
2256
|
7 => 'Color Creator', #23
|
2257
|
+
8 => 'Underwater', #7
|
2255
2258
|
9 => 'Color Profile 1', #23
|
2256
2259
|
10 => 'Color Profile 2', #23
|
2257
2260
|
11 => 'Color Profile 3', #23
|
2258
2261
|
12 => 'Monochrome Profile 1', #23
|
2259
2262
|
13 => 'Monochrome Profile 2', #23
|
2260
2263
|
14 => 'Monochrome Profile 3', #23
|
2264
|
+
17 => 'Art Mode', #7
|
2265
|
+
18 => 'Monochrome Profile 4', #7
|
2261
2266
|
256 => 'Monotone',
|
2262
2267
|
512 => 'Sepia',
|
2263
2268
|
}],
|
@@ -20,7 +20,7 @@ $VERSION = '1.00';
|
|
20
20
|
# Other info
|
21
21
|
%Image::ExifTool::Other::PFM = (
|
22
22
|
GROUPS => { 0 => 'File', 1 => 'File', 2 => 'Image' },
|
23
|
-
VARS => {
|
23
|
+
VARS => { ID_FMT => 'none' },
|
24
24
|
NOTES => q{
|
25
25
|
Tags extracted from Portable FloatMap images. See
|
26
26
|
L<http://www.pauldebevec.com/Research/HDR/PFM/> for the specification.
|
@@ -2553,7 +2553,7 @@ my %shootingMode = (
|
|
2553
2553
|
NAMESPACE => 'xmpDSA',
|
2554
2554
|
WRITABLE => 'string',
|
2555
2555
|
AVOID => 1,
|
2556
|
-
VARS => {
|
2556
|
+
VARS => { ID_FMT => 'none' },
|
2557
2557
|
NOTES => 'XMP Digital Shift Assistant tags written by some Leica cameras.',
|
2558
2558
|
Version => { }, # eg. "1.0.0"
|
2559
2559
|
CorrectionAlreadyApplied => { Writable => 'boolean' },
|
@@ -59,7 +59,7 @@ use Image::ExifTool::Exif;
|
|
59
59
|
use Image::ExifTool::GPS;
|
60
60
|
use Image::ExifTool::HP;
|
61
61
|
|
62
|
-
$VERSION = '3.
|
62
|
+
$VERSION = '3.58';
|
63
63
|
|
64
64
|
sub CryptShutterCount($$);
|
65
65
|
sub PrintFilter($$$);
|
@@ -416,6 +416,8 @@ sub AFAreasK3III($$);
|
|
416
416
|
#
|
417
417
|
'31 1' => '18.3mm F2.8', #PH (GR III built-in)
|
418
418
|
'31 4' => '26.1mm F2.8', #PH (GR IIIx built-in)
|
419
|
+
'31 5' => '26.1mm F2.8 GT-2 TC', #KG (GR IIIx built-in plus GT-2 TC)
|
420
|
+
'31 8' => '18.3mm F2.8', #KG (GR IV built-in)
|
419
421
|
);
|
420
422
|
|
421
423
|
# Pentax model ID codes - PH
|
@@ -564,6 +566,7 @@ my %pentaxModelID = (
|
|
564
566
|
0x1329a => 'GR IIIx', # (Ricoh)
|
565
567
|
0x132b8 => 'KF', #github322 (Ricoh)
|
566
568
|
0x132d6 => 'K-3 Mark III Monochrome', #github226 (Ricoh)
|
569
|
+
0x132e0 => 'GR IV', #github347 (Ricoh)
|
567
570
|
);
|
568
571
|
|
569
572
|
# Pentax city codes - (PH, Optio WP)
|
@@ -1182,7 +1185,8 @@ my %binaryDataAttrs = (
|
|
1182
1185
|
0x111 => 'AF-C (Release-priority)', #PH (K-5,K-3)
|
1183
1186
|
0x112 => 'AF-A (Release-priority)', #PH (K-3)
|
1184
1187
|
0x120 => 'Contrast-detect (Release-priority)', #PH (K-01)
|
1185
|
-
# bit 15 indicates macro mode (disabled for MF, and defaults to Select for Snap, Infinity)
|
1188
|
+
# bit 15 indicates macro mode (disabled for MF, and defaults to Select for Snap, Infinity) #KG 'disabled for MF' - in contradiction with 0x8003 ??
|
1189
|
+
0x8003 => 'Manual (Macro)', # (GR IV)
|
1186
1190
|
0x8006 => 'Auto-area (Macro)', # (GR III)
|
1187
1191
|
0x8007 => 'Zone Select (Macro)', # (GR III)
|
1188
1192
|
0x8008 => 'Select (Macro)', # (GR III)
|
@@ -1969,16 +1973,18 @@ my %binaryDataAttrs = (
|
|
1969
1973
|
'19 0' => 'Astrotracer', #29
|
1970
1974
|
# extra K10D modes (ref 16)
|
1971
1975
|
'13 0' => 'Shutter & Aperture Priority AE',
|
1976
|
+
'14 0' => 'Shutter Priority AE', #KG (K-3III))
|
1972
1977
|
'15 0' => 'Sensitivity Priority AE',
|
1973
1978
|
'16 0' => 'Flash X-Sync Speed AE',
|
1979
|
+
'17 0' => 'Flash X-Sync Speed', #KG (K-3III))
|
1974
1980
|
'18 0' => 'Auto Program (Normal)', #PH (K-5)
|
1975
1981
|
'18 1' => 'Auto Program (Hi-speed)', #PH (NC)
|
1976
1982
|
'18 2' => 'Auto Program (DOF)', #PH (K-5)
|
1977
1983
|
'18 3' => 'Auto Program (MTF)', #PH (NC)
|
1978
1984
|
'18 22' => 'Auto Program (Shallow DOF)', #PH (NC)
|
1979
1985
|
'20 22' => 'Blur Control', #PH (Q)
|
1980
|
-
'24 0' => 'Aperture Priority (Adv.Hyp)', #KG
|
1981
|
-
'25 0' => 'Manual Exposure (Adv.Hyp)', #KG
|
1986
|
+
'24 0' => 'Aperture Priority (Adv.Hyp)', #KG (K-3III)
|
1987
|
+
'25 0' => 'Manual Exposure (Adv.Hyp)', #KG (K-3III)
|
1982
1988
|
'26 0' => 'Shutter and Aperture Priority (TAv)', #PH (K-3III)
|
1983
1989
|
'249 0' => 'Movie (TAv)', #31
|
1984
1990
|
'250 0' => 'Movie (TAv, Auto Aperture)', #31
|
@@ -2208,7 +2214,9 @@ my %binaryDataAttrs = (
|
|
2208
2214
|
# 256 - seen for GR III
|
2209
2215
|
# 257 - seen for GR III
|
2210
2216
|
# 262 - seen for GR III
|
2211
|
-
32768 => 'n/a
|
2217
|
+
32768 => 'Standard', #KG (K-3IIIm) (was "n/a" previously - PH)
|
2218
|
+
32769 => 'Hard', #KG (K-3IIIm)
|
2219
|
+
32770 => 'Soft', #KG (K-3IIIm)
|
2212
2220
|
},
|
2213
2221
|
},
|
2214
2222
|
0x0050 => { #PH
|
@@ -5120,52 +5128,52 @@ my %binaryDataAttrs = (
|
|
5120
5128
|
PrintConv => { 0 => 'Off', 1 => 'Short', 2 => 'Medium', 3 => 'Long' },
|
5121
5129
|
},
|
5122
5130
|
0x021f => { #KG
|
5123
|
-
|
5124
|
-
|
5125
|
-
|
5126
|
-
|
5127
|
-
|
5128
|
-
|
5129
|
-
|
5130
|
-
|
5131
|
-
|
5132
|
-
|
5131
|
+
Name => 'FirstFrameActionInAFC',
|
5132
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5133
|
+
PrintConv => {
|
5134
|
+
'0' => 'Auto',
|
5135
|
+
'1' => 'Release Priority',
|
5136
|
+
'2' => 'Focus Priority',
|
5137
|
+
# there is at least another value '3' but I couldn't figure out the
|
5138
|
+
# meaning. However, this occurs for a few AF-S captures, so it has
|
5139
|
+
# no real practical meaning.
|
5140
|
+
},
|
5133
5141
|
},
|
5134
5142
|
0x0220 => { #KG
|
5135
|
-
|
5136
|
-
|
5137
|
-
|
5138
|
-
|
5139
|
-
|
5140
|
-
|
5141
|
-
|
5143
|
+
Name => 'ActionInAFCCont',
|
5144
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5145
|
+
PrintConv => {
|
5146
|
+
'0' => 'Auto',
|
5147
|
+
'1' => 'Focus Priority',
|
5148
|
+
'2' => 'FPS Priority',
|
5149
|
+
},
|
5142
5150
|
},
|
5143
5151
|
545 => { #KG
|
5144
|
-
|
5145
|
-
|
5146
|
-
|
5147
|
-
|
5152
|
+
Name => 'AFCHold',
|
5153
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5154
|
+
Mask => 0x03,
|
5155
|
+
PrintConv => { 0 => 'Low', 1 => 'Medium', 2 => 'High', 3 => 'Off' },
|
5148
5156
|
},
|
5149
5157
|
545.1 => { #KG
|
5150
|
-
Name => '
|
5158
|
+
Name => 'AFCPointTracking',
|
5151
5159
|
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5152
5160
|
Mask => 0x0c,
|
5153
|
-
PrintConv => '
|
5154
|
-
PrintConvInv => '5 - $val',
|
5161
|
+
PrintConv => { 0 => 'Type 1', 1 => 'Type 2', 2 => 'Type 3' },
|
5155
5162
|
},
|
5156
5163
|
545.2 => { #KG
|
5157
|
-
Name => '
|
5164
|
+
Name => 'AFCSensitivity',
|
5158
5165
|
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5159
5166
|
Mask => 0x70,
|
5160
|
-
PrintConv =>
|
5167
|
+
PrintConv => '5 - $val',
|
5168
|
+
PrintConvInv => '5 - $val',
|
5161
5169
|
},
|
5162
5170
|
0x0960 => { #KG
|
5163
|
-
|
5164
|
-
|
5165
|
-
|
5166
|
-
|
5167
|
-
|
5168
|
-
|
5171
|
+
Name => 'SubjectRecognition',
|
5172
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
5173
|
+
PrintConv => {
|
5174
|
+
0 => 'Off',
|
5175
|
+
1 => 'On',
|
5176
|
+
},
|
5169
5177
|
},
|
5170
5178
|
);
|
5171
5179
|
|
@@ -5855,8 +5863,8 @@ my %binaryDataAttrs = (
|
|
5855
5863
|
%binaryDataAttrs,
|
5856
5864
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
5857
5865
|
FORMAT => 'int16u',
|
5858
|
-
DATAMEMBER => [ 3 ],
|
5859
|
-
NOTES => 'AF tags written by the K-3 Mark III, GR III and GR
|
5866
|
+
DATAMEMBER => [ 2, 3 ],
|
5867
|
+
NOTES => 'AF tags written by the K-3 Mark III, GR III, GR IIIx and GR IV.',
|
5860
5868
|
0 => {
|
5861
5869
|
Name => 'AFInfo',
|
5862
5870
|
Format => 'int16u[$size/2]',
|
@@ -5902,6 +5910,10 @@ my %binaryDataAttrs = (
|
|
5902
5910
|
0x200b => 'Contrast-detect Spot',
|
5903
5911
|
},
|
5904
5912
|
},
|
5913
|
+
2 => {
|
5914
|
+
Name => 'MaxNumAFPoints',
|
5915
|
+
RawConv => '$$self{MaxNumAFPoints} = $val',
|
5916
|
+
},
|
5905
5917
|
3 => {
|
5906
5918
|
Name => 'NumAFPoints',
|
5907
5919
|
RawConv => '$$self{NumAFPoints} = $val',
|