exiftool_vendored 13.36.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 +23 -0
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +2 -2
- 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 +59 -5
- 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 +5 -5
- 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 +5 -4
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- 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 +2 -2
- 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 +4 -4
- 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 +2 -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 +18 -7
- 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/README +7 -6
- 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 +18 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5745 -5695
- data/bin/lib/Image/ExifTool/TagNames.pod +662 -509
- 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/XMP.pm +31 -30
- 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 +4 -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
|
@@ -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 => {
|
@@ -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
|
@@ -13069,7 +13069,7 @@ my %nikonFocalConversions = (
|
|
13069
13069
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-ast', 2 => 'Image' },
|
13070
13070
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13071
13071
|
NAMESPACE => 'ast',
|
13072
|
-
VARS => {
|
13072
|
+
VARS => { ID_FMT => 'none' },
|
13073
13073
|
NOTES => 'Tags used by Nikon NX Studio in Nikon NKSC sidecar files and trailers.',
|
13074
13074
|
about => { },
|
13075
13075
|
version => { },
|
@@ -13127,7 +13127,7 @@ my %nikonFocalConversions = (
|
|
13127
13127
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-sdc', 2 => 'Image' },
|
13128
13128
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13129
13129
|
NAMESPACE => 'sdc',
|
13130
|
-
VARS => {
|
13130
|
+
VARS => { ID_FMT => 'none' },
|
13131
13131
|
about => { },
|
13132
13132
|
version => { },
|
13133
13133
|
appversion => { Name => 'AppVersion' },
|
@@ -13137,7 +13137,7 @@ my %nikonFocalConversions = (
|
|
13137
13137
|
GROUPS => { 0 => 'XMP', 1 => 'XMP-nine', 2 => 'Image' },
|
13138
13138
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13139
13139
|
NAMESPACE => 'nine',
|
13140
|
-
VARS => {
|
13140
|
+
VARS => { ID_FMT => 'none' },
|
13141
13141
|
about => { },
|
13142
13142
|
version => { },
|
13143
13143
|
Label => { },
|
@@ -13154,7 +13154,7 @@ my %nikonFocalConversions = (
|
|
13154
13154
|
%Image::ExifTool::Nikon::NineEdits = (
|
13155
13155
|
GROUPS => { 0 => 'XML', 1 => 'NineEdits', 2 => 'Image' },
|
13156
13156
|
PROCESS_PROC => \&Image::ExifTool::XMP::ProcessXMP,
|
13157
|
-
VARS => {
|
13157
|
+
VARS => { ID_FMT => 'none' },
|
13158
13158
|
NOTES => 'XML-based tags used to store editing information.',
|
13159
13159
|
filterParametersBinary => { %base64bin },
|
13160
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
|
|
@@ -120,6 +120,7 @@ my %olympusLensTypes = (
|
|
120
120
|
'0 38 10' => 'Olympus M.Zuiko Digital ED 20mm F1.4 Pro',
|
121
121
|
'0 39 10' => 'Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro', #forum3833
|
122
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
|
123
124
|
# Sigma lenses
|
124
125
|
'1 01 00' => 'Sigma 18-50mm F3.5-5.6 DC', #8
|
125
126
|
'1 01 10' => 'Sigma 30mm F2.8 EX DN', #NJ
|
@@ -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
|
@@ -1183,7 +1185,8 @@ my %binaryDataAttrs = (
|
|
1183
1185
|
0x111 => 'AF-C (Release-priority)', #PH (K-5,K-3)
|
1184
1186
|
0x112 => 'AF-A (Release-priority)', #PH (K-3)
|
1185
1187
|
0x120 => 'Contrast-detect (Release-priority)', #PH (K-01)
|
1186
|
-
# 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)
|
1187
1190
|
0x8006 => 'Auto-area (Macro)', # (GR III)
|
1188
1191
|
0x8007 => 'Zone Select (Macro)', # (GR III)
|
1189
1192
|
0x8008 => 'Select (Macro)', # (GR III)
|
@@ -1970,16 +1973,18 @@ my %binaryDataAttrs = (
|
|
1970
1973
|
'19 0' => 'Astrotracer', #29
|
1971
1974
|
# extra K10D modes (ref 16)
|
1972
1975
|
'13 0' => 'Shutter & Aperture Priority AE',
|
1976
|
+
'14 0' => 'Shutter Priority AE', #KG (K-3III))
|
1973
1977
|
'15 0' => 'Sensitivity Priority AE',
|
1974
1978
|
'16 0' => 'Flash X-Sync Speed AE',
|
1979
|
+
'17 0' => 'Flash X-Sync Speed', #KG (K-3III))
|
1975
1980
|
'18 0' => 'Auto Program (Normal)', #PH (K-5)
|
1976
1981
|
'18 1' => 'Auto Program (Hi-speed)', #PH (NC)
|
1977
1982
|
'18 2' => 'Auto Program (DOF)', #PH (K-5)
|
1978
1983
|
'18 3' => 'Auto Program (MTF)', #PH (NC)
|
1979
1984
|
'18 22' => 'Auto Program (Shallow DOF)', #PH (NC)
|
1980
1985
|
'20 22' => 'Blur Control', #PH (Q)
|
1981
|
-
'24 0' => 'Aperture Priority (Adv.Hyp)', #KG
|
1982
|
-
'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)
|
1983
1988
|
'26 0' => 'Shutter and Aperture Priority (TAv)', #PH (K-3III)
|
1984
1989
|
'249 0' => 'Movie (TAv)', #31
|
1985
1990
|
'250 0' => 'Movie (TAv, Auto Aperture)', #31
|
@@ -2209,7 +2214,9 @@ my %binaryDataAttrs = (
|
|
2209
2214
|
# 256 - seen for GR III
|
2210
2215
|
# 257 - seen for GR III
|
2211
2216
|
# 262 - seen for GR III
|
2212
|
-
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)
|
2213
2220
|
},
|
2214
2221
|
},
|
2215
2222
|
0x0050 => { #PH
|
@@ -5856,8 +5863,8 @@ my %binaryDataAttrs = (
|
|
5856
5863
|
%binaryDataAttrs,
|
5857
5864
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
5858
5865
|
FORMAT => 'int16u',
|
5859
|
-
DATAMEMBER => [ 3 ],
|
5860
|
-
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.',
|
5861
5868
|
0 => {
|
5862
5869
|
Name => 'AFInfo',
|
5863
5870
|
Format => 'int16u[$size/2]',
|
@@ -5903,6 +5910,10 @@ my %binaryDataAttrs = (
|
|
5903
5910
|
0x200b => 'Contrast-detect Spot',
|
5904
5911
|
},
|
5905
5912
|
},
|
5913
|
+
2 => {
|
5914
|
+
Name => 'MaxNumAFPoints',
|
5915
|
+
RawConv => '$$self{MaxNumAFPoints} = $val',
|
5916
|
+
},
|
5906
5917
|
3 => {
|
5907
5918
|
Name => 'NumAFPoints',
|
5908
5919
|
RawConv => '$$self{NumAFPoints} = $val',
|
@@ -5,9 +5,12 @@
|
|
5
5
|
#
|
6
6
|
# Revisions: 2024-12-04 - P. Harvey Created
|
7
7
|
#
|
8
|
-
# Notes: Tag definitions for Protobuf tags support
|
9
|
-
#
|
10
|
-
#
|
8
|
+
# Notes: Tag definitions for Protobuf tags support 'signed', 'unsigned',
|
9
|
+
# and 'int64s' formats for VARINT (type 0) values, 'int64u',
|
10
|
+
# 'int64s', 'rational64u', 'rational64s' and 'double' for I64
|
11
|
+
# (type 1), 'undef', 'string' and 'rational' for LEN (type 2),
|
12
|
+
# and 'int32u', 'int32s', 'rational32u', 'rational32s',
|
13
|
+
# 'fixed32u', 'fixed32s' and 'float' for I32 (type 5) values.
|
11
14
|
#
|
12
15
|
# References: 1) https://protobuf.dev/programming-guides/encoding/
|
13
16
|
#------------------------------------------------------------------------------
|
@@ -18,7 +21,7 @@ use strict;
|
|
18
21
|
use vars qw($VERSION);
|
19
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
20
23
|
|
21
|
-
$VERSION = '1.
|
24
|
+
$VERSION = '1.05';
|
22
25
|
|
23
26
|
sub ProcessProtobuf($$$;$);
|
24
27
|
|
@@ -128,6 +131,9 @@ sub ProcessProtobuf($$$;$)
|
|
128
131
|
$$et{ProtoPrefix}{$dirName} = '' unless defined $$et{ProtoPrefix}{$dirName};
|
129
132
|
SetByteOrder('II');
|
130
133
|
}
|
134
|
+
# prefix for unknown tags
|
135
|
+
my $unkPre = $$tagTbl{TAG_PREFIX} ? $$tagTbl{TAG_PREFIX} . '_' : 'Protobuf ';
|
136
|
+
|
131
137
|
# loop through protobuf records
|
132
138
|
for (;;) {
|
133
139
|
my $pos = $$dirInfo{Pos};
|
@@ -195,7 +201,7 @@ sub ProcessProtobuf($$$;$)
|
|
195
201
|
# (fall through to process known SubDirectory)
|
196
202
|
} elsif ($$tagInfo{IsProtobuf}) {
|
197
203
|
# process Unknown protobuf directories
|
198
|
-
$et->VPrint(1, "$$et{INDENT}
|
204
|
+
$et->VPrint(1, "$$et{INDENT}${unkPre}$tag (" . length($buff) . " bytes) -->\n");
|
199
205
|
my $addr = $dataPos + $$dirInfo{Pos} - length($buff);
|
200
206
|
$et->VerboseDump(\$buff, Addr => $addr, Prefix => $$et{INDENT});
|
201
207
|
my %subdir = ( DataPt => \$buff, DataPos => $addr, DirName => $dirName );
|
@@ -212,7 +218,7 @@ sub ProcessProtobuf($$$;$)
|
|
212
218
|
my $denom = VarInt(\%dir);
|
213
219
|
$rat = " (rational $num/$denom)" if $denom and $dir{Pos} == length($buff);
|
214
220
|
}
|
215
|
-
if ($buff !~ /[^\x20-\x7e]/) {
|
221
|
+
if ($buff !~ /[^\r\n\t\x20-\x7e]/) {
|
216
222
|
$val = $buff; # assume this is an ASCII string
|
217
223
|
} elsif (length($buff) % 4) {
|
218
224
|
$val = '0x' . unpack('H*', $buff);
|
@@ -28,7 +28,7 @@ my @qualcommFormat = (
|
|
28
28
|
%Image::ExifTool::Qualcomm::Main = (
|
29
29
|
PROCESS_PROC => \&ProcessQualcomm,
|
30
30
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
31
|
-
VARS => {
|
31
|
+
VARS => { ID_FMT => 'none', NO_LOOKUP => 1 }, # too long, too many, and too obscure
|
32
32
|
NOTES => q{
|
33
33
|
The tags below have been observed in the JPEG APP7 "Qualcomm Camera
|
34
34
|
Attributes" segment written by some cameras such as the HP iPAQ Voice
|
@@ -1228,7 +1228,7 @@ my @qualcommFormat = (
|
|
1228
1228
|
%Image::ExifTool::Qualcomm::DualCamera = (
|
1229
1229
|
PROCESS_PROC => \&ProcessDualCamera,
|
1230
1230
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
1231
|
-
VARS => {
|
1231
|
+
VARS => { ID_FMT => 'none', NO_LOOKUP => 1 }, # too long, too many, and too obscure
|
1232
1232
|
NOTES => q{
|
1233
1233
|
Found in JPEG APP4 "Qualcomm Dual Camera Attributes" written by some Nokia
|
1234
1234
|
phones.
|
@@ -49,7 +49,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
49
49
|
use Image::ExifTool::Exif;
|
50
50
|
use Image::ExifTool::GPS;
|
51
51
|
|
52
|
-
$VERSION = '3.
|
52
|
+
$VERSION = '3.21';
|
53
53
|
|
54
54
|
sub ProcessMOV($$;$);
|
55
55
|
sub ProcessKeys($$$);
|
@@ -2269,6 +2269,27 @@ my %userDefined = (
|
|
2269
2269
|
Base => '$start - 10',
|
2270
2270
|
ByteOrder => 'LittleEndian',
|
2271
2271
|
},
|
2272
|
+
},{
|
2273
|
+
Name => 'MakerNoteRicohPentax2',
|
2274
|
+
# used by cameras such as the Ricoh GR III
|
2275
|
+
Condition => '$$valPt=~/^RICOH\0II/',
|
2276
|
+
SubDirectory => {
|
2277
|
+
TagTable => 'Image::ExifTool::Pentax::Main',
|
2278
|
+
ProcessProc => \&Image::ExifTool::Exif::ProcessExif, # (because ProcessMOV is default)
|
2279
|
+
Start => 8,
|
2280
|
+
Base => '$start - 8',
|
2281
|
+
ByteOrder => 'LittleEndian',
|
2282
|
+
},
|
2283
|
+
},{
|
2284
|
+
Name => 'MakerNoteRicohPentax3',
|
2285
|
+
Condition => '$$valPt=~/^RICOH\0MM/', # (just in case)
|
2286
|
+
SubDirectory => {
|
2287
|
+
TagTable => 'Image::ExifTool::Pentax::Main',
|
2288
|
+
ProcessProc => \&Image::ExifTool::Exif::ProcessExif, # (because ProcessMOV is default)
|
2289
|
+
Start => 8,
|
2290
|
+
Base => '$start - 8',
|
2291
|
+
ByteOrder => 'BigEndian',
|
2292
|
+
},
|
2272
2293
|
},{
|
2273
2294
|
Name => 'MakerNotePentaxUnknown',
|
2274
2295
|
Binary => 1,
|
@@ -7301,6 +7322,7 @@ my %userDefined = (
|
|
7301
7322
|
},
|
7302
7323
|
{
|
7303
7324
|
Name => 'TimeToSampleTable',
|
7325
|
+
Format => 'undef',
|
7304
7326
|
Flags => ['Binary','Unknown'],
|
7305
7327
|
},
|
7306
7328
|
],
|
@@ -10063,14 +10085,14 @@ sub ProcessMOV($$;$)
|
|
10063
10085
|
ProcessKenwoodTrailer($et, { RAF => $raf }, $tbl);
|
10064
10086
|
last;
|
10065
10087
|
}
|
10066
|
-
$
|
10067
|
-
|
10088
|
+
if (not $tagInfo or $$tagInfo{Unknown}) {
|
10089
|
+
$ignore = 1;
|
10090
|
+
} elsif ($size > 0x8000000) {
|
10068
10091
|
my $t = PrintableTagID($tag,2);
|
10069
|
-
|
10070
|
-
|
10071
|
-
|
10072
|
-
|
10073
|
-
}
|
10092
|
+
$et->Warn("Skipping '${t}' atom > 128 MiB", $eeTag ? 2 : 1) and $ignore = 1;
|
10093
|
+
} elsif (not $eeTag) {
|
10094
|
+
my $t = PrintableTagID($tag,2);
|
10095
|
+
$et->Warn("Skipping '${t}' atom > 32 MiB", 2) and $ignore = 1;
|
10074
10096
|
}
|
10075
10097
|
}
|
10076
10098
|
if (defined $tagInfo and not $ignore and not ($tagInfo and $$tagInfo{DontRead})) {
|
@@ -211,12 +211,13 @@ key:
|
|
211
211
|
an ID_LABEL of "Index" is assumed for tables which use
|
212
212
|
ProcessBinaryData or set the IS_BINARY flag.
|
213
213
|
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
to
|
218
|
-
|
219
|
-
language translations in
|
214
|
+
ID_FMT Format for tag ID's in the documentation. Setting is 'hex' to
|
215
|
+
print tag ID in hexadecimal (with 4 hex digits or more), 'dec'
|
216
|
+
to leave as decimal, 'str' to use a quoted string, or 'none'
|
217
|
+
to drop the "Tag ID" column entirely. Any setting other than
|
218
|
+
'hex' prevents hex-looking strings from being converted when
|
219
|
+
importing an XML file for language translations in
|
220
|
+
BuildLangModules().
|
220
221
|
|
221
222
|
NO_LOOKUP Do not add tags to TagLookup.pm lookup tables.
|
222
223
|
|
@@ -22,7 +22,7 @@ my $implementedRawzorVersion = 199; # (up to version 1.99)
|
|
22
22
|
# Rawzor-specific tags
|
23
23
|
%Image::ExifTool::Rawzor::Main = (
|
24
24
|
GROUPS => { 2 => 'Other' },
|
25
|
-
VARS => {
|
25
|
+
VARS => { ID_FMT => 'none' },
|
26
26
|
NOTES => q{
|
27
27
|
Rawzor files store compressed images of other formats. As well as the
|
28
28
|
information listed below, exiftool uncompresses and extracts the meta
|