exiftool_vendored 13.36.0 → 13.38.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 +39 -1
- data/bin/MANIFEST +9 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +47 -47
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +65 -63
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +16 -9
- 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/DSF.pm +138 -0
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +5 -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 +13 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +11 -8
- data/bin/lib/Image/ExifTool/Google.pm +814 -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 +14 -13
- 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 +34 -25
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- 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/QuickTimeStream.pl +2 -0
- 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 +22 -7
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5753 -5696
- data/bin/lib/Image/ExifTool/TagNames.pod +707 -518
- 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/WavPack.pm +144 -0
- data/bin/lib/Image/ExifTool/XMP.pm +43 -37
- 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 +42 -27
- data/bin/lib/Image/ExifTool.pod +60 -59
- data/bin/perl-Image-ExifTool.spec +46 -46
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -6
@@ -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})) {
|
@@ -984,7 +984,9 @@ sub SetGPSDateTime($$$;$)
|
|
984
984
|
}
|
985
985
|
$sampleTime -= $tzOff; # shift from local time to UTC
|
986
986
|
}
|
987
|
+
$$et{SET_GROUP0} = 'Composite';
|
987
988
|
$et->HandleTag($tagTbl, GPSDateTime => Image::ExifTool::ConvertUnixTime($sampleTime,0,3) . 'Z');
|
989
|
+
delete $$et{SET_GROUP0};
|
988
990
|
}
|
989
991
|
}
|
990
992
|
|
@@ -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
|