exiftool_vendored 12.10.0 → 12.15.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +71 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +130 -55
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +46 -10
- data/bin/lib/Image/ExifTool.pod +14 -11
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/APP12.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/Apple.pm +1 -1
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BPG.pm +1 -1
- data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +10 -4
- data/bin/lib/Image/ExifTool/Canon.pm +15 -12
- data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +1 -1
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +28 -2
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- data/bin/lib/Image/ExifTool/DPX.pm +1 -1
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +14 -1
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +1 -1
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +30 -11
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/HTML.pm +1 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +1 -1
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/ISO.pm +1 -1
- data/bin/lib/Image/ExifTool/ITC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +15 -12
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/JVC.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +1 -1
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +3 -3
- 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 +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +314 -35
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- 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 +4 -2
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +10 -2
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +12 -4
- data/bin/lib/Image/ExifTool/PPM.pm +1 -1
- data/bin/lib/Image/ExifTool/PSP.pm +1 -1
- data/bin/lib/Image/ExifTool/Palm.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +12 -4
- data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
- data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +28 -19
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +25 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +83 -5
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Real.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- data/bin/lib/Image/ExifTool/Red.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +8 -2
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +3 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +3943 -3807
- data/bin/lib/Image/ExifTool/TagNames.pod +313 -21
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Theora.pm +1 -1
- data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +1 -1
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -4
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +28 -14
- data/bin/lib/Image/ExifTool/XMP.pm +17 -8
- data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +9 -4
@@ -96,7 +96,7 @@ my %insvLimit = (
|
|
96
96
|
NOTES => q{
|
97
97
|
Timed metadata extracted from QuickTime media data and some AVI videos when
|
98
98
|
the ExtractEmbedded option is used. Although most of these tags are
|
99
|
-
combined into the single table below, ExifTool currently reads
|
99
|
+
combined into the single table below, ExifTool currently reads 49 different
|
100
100
|
formats of timed GPS metadata from video files.
|
101
101
|
},
|
102
102
|
VARS => { NO_ID => 1 },
|
@@ -1771,6 +1771,25 @@ ATCRec: for ($recPos = 0x30; $recPos + 52 < $dirLen; $recPos += 52) {
|
|
1771
1771
|
$trk = GetFloat($dataPt, 0x58);
|
1772
1772
|
}
|
1773
1773
|
|
1774
|
+
} elsif ($$dataPt =~ /^.{60}A\0.{6}([NS])\0.{6}([EW])\0/s and $dirLen >= 112) {
|
1775
|
+
|
1776
|
+
# header looks like this in my sample (unknown dashcam, "Anticlock 2 2020_1125_1455_007.MOV"):
|
1777
|
+
# 0000: 00 00 80 00 66 72 65 65 47 50 53 20 68 00 00 00 [....freeGPS h...]
|
1778
|
+
# 0010: 32 30 31 33 30 33 32 35 41 00 00 00 00 00 00 00 [20130325A.......]
|
1779
|
+
# 0020: 41 70 72 20 20 36 20 32 30 31 36 2c 20 31 36 3a [Apr 6 2016, 16:]
|
1780
|
+
# 0030: 0e 00 00 00 38 00 00 00 22 00 00 00 41 00 00 00 [....8..."...A...]
|
1781
|
+
# 0040: 8a 63 24 45 53 00 00 00 9f e6 42 45 45 00 00 00 [.c$ES.....BEE...]
|
1782
|
+
# 0050: 59 c0 04 3f 52 b8 42 41 14 00 00 00 0b 00 00 00 [Y..?R.BA........]
|
1783
|
+
# 0060: 19 00 00 00 06 00 00 00 05 00 00 00 f6 ff ff ff [................]
|
1784
|
+
# 0070: 03 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 [................]
|
1785
|
+
($latRef, $lonRef) = ($1, $2);
|
1786
|
+
($hr,$min,$sec,$yr,$mon,$day,@acc) = unpack('x48V3x28V6',$$dataPt);
|
1787
|
+
map { $_ = $_ - 4294967296 if $_ >= 0x80000000; $_ /= 1000 } @acc; # (NC)
|
1788
|
+
$lat = GetFloat($dataPt, 0x40);
|
1789
|
+
$lon = GetFloat($dataPt, 0x48);
|
1790
|
+
$spd = GetFloat($dataPt, 0x50);
|
1791
|
+
$trk = GetFloat($dataPt, 0x54);
|
1792
|
+
|
1774
1793
|
} else {
|
1775
1794
|
|
1776
1795
|
# (look for binary GPS as stored by NextBase 512G, ref PH)
|
@@ -1836,8 +1855,10 @@ ATCRec: for ($recPos = 0x30; $recPos + 52 < $dirLen; $recPos += 52) {
|
|
1836
1855
|
$et->HandleTag($tagTbl, GPSDateTime => $time);
|
1837
1856
|
$et->HandleTag($tagTbl, GPSLatitude => $lat * ($latRef eq 'S' ? -1 : 1));
|
1838
1857
|
$et->HandleTag($tagTbl, GPSLongitude => $lon * ($lonRef eq 'W' ? -1 : 1));
|
1839
|
-
|
1840
|
-
|
1858
|
+
if (defined $spd) {
|
1859
|
+
$et->HandleTag($tagTbl, GPSSpeed => $spd); # (now in km/h)
|
1860
|
+
$et->HandleTag($tagTbl, GPSSpeedRef => 'K');
|
1861
|
+
}
|
1841
1862
|
if (defined $trk) {
|
1842
1863
|
$et->HandleTag($tagTbl, GPSTrack => $trk);
|
1843
1864
|
$et->HandleTag($tagTbl, GPSTrackRef => 'T');
|
@@ -2649,7 +2670,7 @@ information like GPS tracks from MOV, MP4 and INSV media data.
|
|
2649
2670
|
|
2650
2671
|
=head1 AUTHOR
|
2651
2672
|
|
2652
|
-
Copyright 2003-
|
2673
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
2653
2674
|
|
2654
2675
|
This library is free software; you can redistribute it and/or modify it
|
2655
2676
|
under the same terms as Perl itself.
|
@@ -482,6 +482,15 @@ my %code2charset = (
|
|
482
482
|
Name => 'CharacterSet',
|
483
483
|
SubDirectory => { TagTable => 'Image::ExifTool::RIFF::CSET' },
|
484
484
|
},
|
485
|
+
# tx_ tags are generated based on the Codec used for the txts stream
|
486
|
+
tx_USER => {
|
487
|
+
Name => 'UserText',
|
488
|
+
SubDirectory => { TagTable => 'Image::ExifTool::RIFF::UserText' },
|
489
|
+
},
|
490
|
+
tx_Unknown => { # (untested)
|
491
|
+
Name => 'Text',
|
492
|
+
Notes => 'streamed text, extracted when the ExtractEmbedded option is used',
|
493
|
+
},
|
485
494
|
#
|
486
495
|
# WebP-specific tags
|
487
496
|
#
|
@@ -995,6 +1004,12 @@ my %code2charset = (
|
|
995
1004
|
Condition => '$$self{RIFFStreamType} eq "vids"',
|
996
1005
|
SubDirectory => { TagTable => 'Image::ExifTool::BMP::Main' },
|
997
1006
|
},
|
1007
|
+
{
|
1008
|
+
Name => 'TextFormat',
|
1009
|
+
Condition => '$$self{RIFFStreamType} eq "txts"',
|
1010
|
+
Hidden => 1,
|
1011
|
+
RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text"); undef',
|
1012
|
+
},
|
998
1013
|
],
|
999
1014
|
);
|
1000
1015
|
|
@@ -1025,7 +1040,7 @@ my %code2charset = (
|
|
1025
1040
|
0 => {
|
1026
1041
|
Name => 'StreamType',
|
1027
1042
|
Format => 'string[4]',
|
1028
|
-
RawConv => '$$self{RIFFStreamType} = $val',
|
1043
|
+
RawConv => '$$self{RIFFStreamNum} = ($$self{RIFFStreamNum} || 0) + 1; $$self{RIFFStreamType} = $val',
|
1029
1044
|
PrintConv => {
|
1030
1045
|
auds => 'Audio',
|
1031
1046
|
mids => 'MIDI',
|
@@ -1038,16 +1053,19 @@ my %code2charset = (
|
|
1038
1053
|
{
|
1039
1054
|
Name => 'AudioCodec',
|
1040
1055
|
Condition => '$$self{RIFFStreamType} eq "auds"',
|
1056
|
+
RawConv => '$$self{RIFFStreamCodec}[$$self{RIFFStreamNum}-1] = $val',
|
1041
1057
|
Format => 'string[4]',
|
1042
1058
|
},
|
1043
1059
|
{
|
1044
1060
|
Name => 'VideoCodec',
|
1045
1061
|
Condition => '$$self{RIFFStreamType} eq "vids"',
|
1062
|
+
RawConv => '$$self{RIFFStreamCodec}[$$self{RIFFStreamNum}-1] = $val',
|
1046
1063
|
Format => 'string[4]',
|
1047
1064
|
},
|
1048
1065
|
{
|
1049
1066
|
Name => 'Codec',
|
1050
1067
|
Format => 'string[4]',
|
1068
|
+
RawConv => '$$self{RIFFStreamCodec}[$$self{RIFFStreamNum}-1] = $val',
|
1051
1069
|
},
|
1052
1070
|
],
|
1053
1071
|
# 2 => 'StreamFlags',
|
@@ -1243,6 +1261,55 @@ my %code2charset = (
|
|
1243
1261
|
},
|
1244
1262
|
);
|
1245
1263
|
|
1264
|
+
# streamed USER txts written by Momento M6 dashcam (ref PH)
|
1265
|
+
%Image::ExifTool::RIFF::UserText = (
|
1266
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
1267
|
+
GROUPS => { 2 => 'Location' },
|
1268
|
+
NOTES => q{
|
1269
|
+
Tags decoded from the USER-format txts stream written by Momento M6 dashcam.
|
1270
|
+
Extracted only if the ExtractEmbedded option is used.
|
1271
|
+
},
|
1272
|
+
# (little-endian)
|
1273
|
+
# 0 - int32u: 32
|
1274
|
+
# 4 - int32u: sample number (starting from unknown offset)
|
1275
|
+
# 8 - int8u[4]: "w x y z" ? (w 0=front cam, 1=rear cam, z mostly 5-8)
|
1276
|
+
# 12 - int8u[4]: "0 x 1 0" ? (x incrementing once per second)
|
1277
|
+
# 16 - int8u[4]: "0 32 0 x" ?
|
1278
|
+
# 20 - int32u: 100-150(mostly), 250-300(once per second)
|
1279
|
+
# 24 - int8u[4]: "0 x y 0" ?
|
1280
|
+
28 => { Name => 'GPSAltitude', Format => 'int32u', ValueConv => '$val / 10' }, # (NC)
|
1281
|
+
# 32 - int32u: 0(mostly), 23(once per second)
|
1282
|
+
# 36 - int32u: 0
|
1283
|
+
40 => { Name => 'Accelerometer', Format => 'float[3]' },
|
1284
|
+
# 52 - int32u: 1
|
1285
|
+
56 => { Name => 'GPSSpeed', Format => 'float' }, # km/h
|
1286
|
+
60 => {
|
1287
|
+
Name => 'GPSLatitude',
|
1288
|
+
Format => 'float',
|
1289
|
+
# Note: these values are unsigned and I don't know where the hemisphere is stored,
|
1290
|
+
# but my only sample is from the U.S., so assume a positive latitude (for now)
|
1291
|
+
ValueConv => 'my $deg = int($val / 100); $deg + ($val - $deg * 100) / 60',
|
1292
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
1293
|
+
},
|
1294
|
+
64 => {
|
1295
|
+
Name => 'GPSLongitude',
|
1296
|
+
Format => 'float',
|
1297
|
+
# Note: these values are unsigned and I don't know where the hemisphere is stored,
|
1298
|
+
# but my only sample is from the U.S., so assume a negative longitude (for now)
|
1299
|
+
ValueConv => 'my $deg = int($val / 100); -($deg + ($val - $deg * 100) / 60)',
|
1300
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
1301
|
+
},
|
1302
|
+
68 => {
|
1303
|
+
Name => 'GPSDateTime',
|
1304
|
+
Description => 'GPS Date/Time',
|
1305
|
+
Groups => { 2 => 'Time' },
|
1306
|
+
Format => 'int32u',
|
1307
|
+
ValueConv => 'ConvertUnixTime($val)',
|
1308
|
+
# (likely local time, but clock seemed off by 3 hours in my sample)
|
1309
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
1310
|
+
},
|
1311
|
+
);
|
1312
|
+
|
1246
1313
|
# WebP alpha info (ref 14)
|
1247
1314
|
%Image::ExifTool::RIFF::ALPH = (
|
1248
1315
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
@@ -1752,6 +1819,7 @@ sub ProcessRIFF($$)
|
|
1752
1819
|
my ($buff, $buf2, $type, $mime, $err, $rf64);
|
1753
1820
|
my $verbose = $et->Options('Verbose');
|
1754
1821
|
my $unknown = $et->Options('Unknown');
|
1822
|
+
my $ee = $et->Options('ExtractEmbedded');
|
1755
1823
|
|
1756
1824
|
# verify this is a valid RIFF file
|
1757
1825
|
return 0 unless $raf->Read($buff, 12) == 12;
|
@@ -1769,7 +1837,8 @@ sub ProcessRIFF($$)
|
|
1769
1837
|
$mime = $riffMimeType{$type} if $type;
|
1770
1838
|
$et->SetFileType($type, $mime);
|
1771
1839
|
$$et{VALUE}{FileType} .= ' (RF64)' if $rf64;
|
1772
|
-
$$et{RIFFStreamType} = '';
|
1840
|
+
$$et{RIFFStreamType} = ''; # initialize stream type
|
1841
|
+
$$et{RIFFStreamCodec} = []; # initialize codec array
|
1773
1842
|
SetByteOrder('II');
|
1774
1843
|
my $tagTbl = GetTagTable('Image::ExifTool::RIFF::Main');
|
1775
1844
|
my $pos = 12;
|
@@ -1808,14 +1877,20 @@ sub ProcessRIFF($$)
|
|
1808
1877
|
# stop when we hit the audio data or AVI index or AVI movie data
|
1809
1878
|
# --> no more because Adobe Bridge stores XMP after this!!
|
1810
1879
|
# (so now we only do this on the FastScan option)
|
1811
|
-
if ((
|
1812
|
-
$
|
1880
|
+
if ($et->Options('FastScan') and ($tag eq 'data' or $tag eq 'idx1' or
|
1881
|
+
($tag eq 'LIST_movi' and not $ee)))
|
1813
1882
|
{
|
1814
1883
|
$et->VPrint(0, "(end of parsing)\n");
|
1815
1884
|
last;
|
1816
1885
|
}
|
1817
1886
|
# RIFF chunks are padded to an even number of bytes
|
1818
1887
|
my $len2 = $len + ($len & 0x01);
|
1888
|
+
# change name of stream txts data depending on the Codec
|
1889
|
+
if ($ee and $tag =~ /^(\d{2})tx$/) {
|
1890
|
+
$tag = 'tx_' . ($$et{RIFFStreamCodec}[$1] || 'Unknown');
|
1891
|
+
$tag = "tx_Unknown" unless defined $$tagTbl{$tag};
|
1892
|
+
$$et{DOC_NUM} = ++$$et{DOC_COUNT};
|
1893
|
+
}
|
1819
1894
|
my $tagInfo = $$tagTbl{$tag};
|
1820
1895
|
if ($tagInfo or (($verbose or $unknown) and $tag !~ /^(data|idx1|LIST_movi|RIFF)$/)) {
|
1821
1896
|
$raf->Read($buff, $len2) == $len2 or $err=1, last;
|
@@ -1835,11 +1910,14 @@ sub ProcessRIFF($$)
|
|
1835
1910
|
delete $$et{SET_GROUP0};
|
1836
1911
|
delete $$et{SET_GROUP1};
|
1837
1912
|
}
|
1913
|
+
delete $$et{DOC_NUM} if $ee;
|
1838
1914
|
} elsif ($tag eq 'RIFF') {
|
1839
1915
|
# don't read into RIFF chunk (eg. concatenated video file)
|
1840
1916
|
$raf->Read($buff, 4) == 4 or $err=1, last;
|
1841
1917
|
# extract information from remaining file as an embedded file
|
1842
1918
|
$$et{DOC_NUM} = ++$$et{DOC_COUNT}
|
1919
|
+
} elsif ($tag eq 'LIST_movi' and $ee) {
|
1920
|
+
next; # parse into movi chunk
|
1843
1921
|
} else {
|
1844
1922
|
if ($len > 0x7fffffff and not $et->Options('LargeFileSupport')) {
|
1845
1923
|
$et->Warn("Stopped parsing at large $tag chunk (LargeFileSupport not set)");
|
@@ -1874,7 +1952,7 @@ including AVI videos, WAV audio files and WEBP images.
|
|
1874
1952
|
|
1875
1953
|
=head1 AUTHOR
|
1876
1954
|
|
1877
|
-
Copyright 2003-
|
1955
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1878
1956
|
|
1879
1957
|
This library is free software; you can redistribute it and/or modify it
|
1880
1958
|
under the same terms as Perl itself.
|
@@ -225,7 +225,7 @@ resource files.
|
|
225
225
|
|
226
226
|
=head1 AUTHOR
|
227
227
|
|
228
|
-
Copyright 2003-
|
228
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
229
229
|
|
230
230
|
This library is free software; you can redistribute it and/or modify it
|
231
231
|
under the same terms as Perl itself.
|
@@ -366,7 +366,7 @@ information from RTF (Rich Text Format) documents.
|
|
366
366
|
|
367
367
|
=head1 AUTHOR
|
368
368
|
|
369
|
-
Copyright 2003-
|
369
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
370
370
|
|
371
371
|
This library is free software; you can redistribute it and/or modify it
|
372
372
|
under the same terms as Perl itself.
|
@@ -125,7 +125,7 @@ images are a type of high dynamic-range image.
|
|
125
125
|
|
126
126
|
=head1 AUTHOR
|
127
127
|
|
128
|
-
Copyright 2003-
|
128
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
129
129
|
|
130
130
|
This library is free software; you can redistribute it and/or modify it
|
131
131
|
under the same terms as Perl itself.
|
@@ -168,7 +168,7 @@ information from Rawzor compressed images.
|
|
168
168
|
|
169
169
|
=head1 AUTHOR
|
170
170
|
|
171
|
-
Copyright 2003-
|
171
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
172
172
|
|
173
173
|
This library is free software; you can redistribute it and/or modify it
|
174
174
|
under the same terms as Perl itself.
|
@@ -715,7 +715,7 @@ little-endian, but the Real format is big-endian.
|
|
715
715
|
|
716
716
|
=head1 AUTHOR
|
717
717
|
|
718
|
-
Copyright 2003-
|
718
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
719
719
|
|
720
720
|
This library is free software; you can redistribute it and/or modify it
|
721
721
|
under the same terms as Perl itself.
|
@@ -431,7 +431,7 @@ maker notes in images from Reconyx cameras.
|
|
431
431
|
|
432
432
|
=head1 AUTHOR
|
433
433
|
|
434
|
-
Copyright 2003-
|
434
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
435
435
|
|
436
436
|
This library is free software; you can redistribute it and/or modify it
|
437
437
|
under the same terms as Perl itself.
|
@@ -303,7 +303,7 @@ from Redcode R3D version 1 and 2 video files.
|
|
303
303
|
|
304
304
|
=head1 AUTHOR
|
305
305
|
|
306
|
-
Copyright 2003-
|
306
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
307
307
|
|
308
308
|
This library is free software; you can redistribute it and/or modify it
|
309
309
|
under the same terms as Perl itself.
|
@@ -1143,7 +1143,7 @@ interpret Ricoh maker notes EXIF meta information.
|
|
1143
1143
|
|
1144
1144
|
=head1 AUTHOR
|
1145
1145
|
|
1146
|
-
Copyright 2003-
|
1146
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1147
1147
|
|
1148
1148
|
This library is free software; you can redistribute it and/or modify it
|
1149
1149
|
under the same terms as Perl itself.
|
@@ -1447,7 +1447,7 @@ Samsung maker notes in EXIF information.
|
|
1447
1447
|
|
1448
1448
|
=head1 AUTHOR
|
1449
1449
|
|
1450
|
-
Copyright 2003-
|
1450
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1451
1451
|
|
1452
1452
|
This library is free software; you can redistribute it and/or modify it
|
1453
1453
|
under the same terms as Perl itself.
|
@@ -419,7 +419,7 @@ Sanyo maker notes in EXIF information.
|
|
419
419
|
|
420
420
|
=head1 AUTHOR
|
421
421
|
|
422
|
-
Copyright 2003-
|
422
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
423
423
|
|
424
424
|
This library is free software; you can redistribute it and/or modify it
|
425
425
|
under the same terms as Perl itself.
|
@@ -128,7 +128,7 @@ metadata from the JPEG APP4 SCALADO segment.
|
|
128
128
|
|
129
129
|
=head1 AUTHOR
|
130
130
|
|
131
|
-
Copyright 2003-
|
131
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
132
132
|
|
133
133
|
This library is free software; you can redistribute it and/or modify it
|
134
134
|
under the same terms as Perl itself.
|
@@ -630,7 +630,7 @@ limited to the range 1970 to 2038 on 32-bit systems.
|
|
630
630
|
|
631
631
|
=head1 AUTHOR
|
632
632
|
|
633
|
-
Copyright 2003-
|
633
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
634
634
|
|
635
635
|
This library is free software; you can redistribute it and/or modify it
|
636
636
|
under the same terms as Perl itself.
|
@@ -332,7 +332,7 @@ name prefix.
|
|
332
332
|
|
333
333
|
=head1 AUTHOR
|
334
334
|
|
335
|
-
Copyright 2003-
|
335
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
336
336
|
|
337
337
|
This library is free software; you can redistribute it and/or modify it
|
338
338
|
under the same terms as Perl itself.
|
@@ -837,7 +837,7 @@ Sigma and Foveon maker notes in EXIF information.
|
|
837
837
|
|
838
838
|
=head1 AUTHOR
|
839
839
|
|
840
|
-
Copyright 2003-
|
840
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
841
841
|
|
842
842
|
This library is free software; you can redistribute it and/or modify it
|
843
843
|
under the same terms as Perl itself.
|
@@ -650,7 +650,7 @@ Sigma and Foveon X3F images.
|
|
650
650
|
|
651
651
|
=head1 AUTHOR
|
652
652
|
|
653
|
-
Copyright 2003-
|
653
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
654
654
|
|
655
655
|
This library is free software; you can redistribute it and/or modify it
|
656
656
|
under the same terms as Perl itself.
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
34
34
|
use Image::ExifTool::Exif;
|
35
35
|
use Image::ExifTool::Minolta;
|
36
36
|
|
37
|
-
$VERSION = '3.
|
37
|
+
$VERSION = '3.35';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -146,6 +146,7 @@ sub PrintInvLensSpec($;$$);
|
|
146
146
|
32859 => 'Sony FE 20mm F1.8 G', #IB/JR
|
147
147
|
32860 => 'Sony FE 12-24mm F2.8 GM', #JR/IB
|
148
148
|
32864 => 'Sony FE 28-60mm F4-5.6', #JR
|
149
|
+
32865 => 'Sony FE 35mm F1.4 GM', #IB/JR
|
149
150
|
|
150
151
|
# (comment this out so LensID will report the LensModel, which is more useful)
|
151
152
|
# 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
|
@@ -185,6 +186,7 @@ sub PrintInvLensSpec($;$$);
|
|
185
186
|
49462 => 'Tamron 70-180mm F2.8 Di III VXD', #JR (Model A056)
|
186
187
|
49463 => 'Tamron 28-200mm F2.8-5.6 Di III RXD', #JR (Model A071)
|
187
188
|
49464 => 'Tamron 70-300mm F4.5-6.3 Di III RXD', #JR (Model A047)
|
189
|
+
49465 => 'Tamron 17-70mm F2.8 Di III-A VC RXD', #JR (Model B070)
|
188
190
|
49473 => 'Tokina atx-m 85mm F1.8 FE', #JR
|
189
191
|
49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
|
190
192
|
49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
|
@@ -217,6 +219,8 @@ sub PrintInvLensSpec($;$$);
|
|
217
219
|
50518 => 'Sigma 100-400mm F5-6.3 DG DN OS | C', #JR (020)
|
218
220
|
50521 => 'Sigma 85mm F1.4 DG DN | A', #JR (020)
|
219
221
|
50522 => 'Sigma 105mm F2.8 DG DN MACRO | A', #JR (020)
|
222
|
+
50523 => 'Sigma 65mm F2 DG DN | C', #IB (020)
|
223
|
+
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
|
220
224
|
|
221
225
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
222
226
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
@@ -6062,6 +6066,7 @@ my %pictureProfile2010 = (
|
|
6062
6066
|
29 => 'Gamma ITU709 (800%)',
|
6063
6067
|
31 => 'Gamma S-Log3 (PP8 or PP9)', #14
|
6064
6068
|
33 => 'Gamma HLG2 (PP10)', #14
|
6069
|
+
34 => 'Gamma HLG3', #IB
|
6065
6070
|
},
|
6066
6071
|
);
|
6067
6072
|
my %isoSetting2010 = (
|
@@ -9505,6 +9510,7 @@ my %isoSetting2010 = (
|
|
9505
9510
|
Name => 'DistortionCorrParams',
|
9506
9511
|
Format => 'int16s[16]',
|
9507
9512
|
},
|
9513
|
+
0x0070 => { %pictureProfile2010 }, #IB
|
9508
9514
|
0x0071 => {
|
9509
9515
|
Name => 'FocalLength',
|
9510
9516
|
Format => 'int16u',
|
@@ -11098,7 +11104,7 @@ Minolta.
|
|
11098
11104
|
|
11099
11105
|
=head1 AUTHOR
|
11100
11106
|
|
11101
|
-
Copyright 2003-
|
11107
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
11102
11108
|
|
11103
11109
|
This library is free software; you can redistribute it and/or modify it
|
11104
11110
|
under the same terms as Perl itself.
|
@@ -379,7 +379,7 @@ write Sony Image Data Converter version 3.0 metadata in ARW images.
|
|
379
379
|
|
380
380
|
=head1 AUTHOR
|
381
381
|
|
382
|
-
Copyright 2003-
|
382
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
383
383
|
|
384
384
|
This library is free software; you can redistribute it and/or modify it
|
385
385
|
under the same terms as Perl itself.
|
@@ -21,8 +21,8 @@ $VERSION = '1.01';
|
|
21
21
|
NOTES => q{
|
22
22
|
These tags are part of the CIPA Stereo Still Image specification, and are
|
23
23
|
found in the APP3 "Stim" segment of JPEG images. See
|
24
|
-
L<http://www.cipa.jp/std/documents/e/DC-006_E.pdf>
|
25
|
-
official specification.
|
24
|
+
L<https://web.archive.org/web/20190718152459/http://www.cipa.jp/std/documents/e/DC-006_E.pdf>
|
25
|
+
for the official specification.
|
26
26
|
},
|
27
27
|
0 => 'StimVersion',
|
28
28
|
1 => {
|
@@ -174,7 +174,7 @@ information.
|
|
174
174
|
|
175
175
|
=head1 AUTHOR
|
176
176
|
|
177
|
-
Copyright 2003-
|
177
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
178
178
|
|
179
179
|
This library is free software; you can redistribute it and/or modify it
|
180
180
|
under the same terms as Perl itself.
|