exiftool-vendored.pl 12.72.0 → 12.76.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.
- package/bin/Changes +64 -1
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +123 -96
- package/bin/lib/File/RandomAccess.pm +32 -6
- package/bin/lib/File/RandomAccess.pod +6 -6
- package/bin/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/lib/Image/ExifTool/AAC.pm +8 -6
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +3 -3
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +7 -6
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +3 -3
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +5 -5
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/lib/Image/ExifTool/Exif.pm +4 -3
- package/bin/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- package/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- package/bin/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +9 -4
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
- package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +7 -5
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +3 -3
- package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +6 -6
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +3 -3
- package/bin/lib/Image/ExifTool/JVC.pm +3 -3
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +67 -17
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +3 -3
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/lib/Image/ExifTool/MIE.pm +5 -5
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/lib/Image/ExifTool/Ogg.pm +3 -3
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +55 -5
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +24 -2
- package/bin/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- package/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +4 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +55 -101
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- package/bin/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
- package/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +2 -3
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Sony.pm +5 -5
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -4
- package/bin/lib/Image/ExifTool/TagLookup.pm +3879 -3862
- package/bin/lib/Image/ExifTool/TagNames.pod +11439 -11374
- package/bin/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/lib/Image/ExifTool/WriteExif.pl +27 -24
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- package/bin/lib/Image/ExifTool/Writer.pl +74 -45
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +20 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +10 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +59 -28
- package/bin/lib/Image/ExifTool.pod +81 -68
- package/bin/perl-Image-ExifTool.spec +45 -44
- package/bin/pp_build_exe.args +5 -5
- package/package.json +5 -5
|
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
|
|
|
37
37
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
38
38
|
use Image::ExifTool::Exif;
|
|
39
39
|
|
|
40
|
-
$VERSION = '2.
|
|
40
|
+
$VERSION = '2.22';
|
|
41
41
|
|
|
42
42
|
sub ProcessLeicaLEIC($$$);
|
|
43
43
|
sub WhiteBalanceConv($;$$);
|
|
@@ -2186,6 +2186,10 @@ my %shootingMode = (
|
|
|
2186
2186
|
Writable => 'rational64u',
|
|
2187
2187
|
Count => 2,
|
|
2188
2188
|
},
|
|
2189
|
+
0x0370 => { #forum15440
|
|
2190
|
+
Name => 'LensProfileName',
|
|
2191
|
+
Writable => 'string',
|
|
2192
|
+
},
|
|
2189
2193
|
);
|
|
2190
2194
|
|
|
2191
2195
|
# Type 2 tags (ref PH)
|
|
@@ -2509,6 +2513,27 @@ my %shootingMode = (
|
|
|
2509
2513
|
},
|
|
2510
2514
|
);
|
|
2511
2515
|
|
|
2516
|
+
# Leica XMP Digital Shift Assistant tags
|
|
2517
|
+
%Image::ExifTool::Panasonic::DSA = (
|
|
2518
|
+
GROUPS => { 0 => 'XMP', 1 => 'XMP-xmpDSA', 2 => 'Image' },
|
|
2519
|
+
PROCESS_PROC => 'Image::ExifTool::XMP::ProcessXMP',
|
|
2520
|
+
NAMESPACE => 'xmpDSA',
|
|
2521
|
+
WRITABLE => 'string',
|
|
2522
|
+
AVOID => 1,
|
|
2523
|
+
VARS => { NO_ID => 1 },
|
|
2524
|
+
NOTES => 'XMP Digital Shift Assistant tags written by some Leica cameras.',
|
|
2525
|
+
Version => { }, # eg. "1.0.0"
|
|
2526
|
+
CorrectionAlreadyApplied => { Writable => 'boolean' },
|
|
2527
|
+
PitchAngle => { Writable => 'real' },
|
|
2528
|
+
RollAngle => { Writable => 'real' },
|
|
2529
|
+
FocalLength35mm => { Writable => 'real' },
|
|
2530
|
+
TargetAspectRatio => { Writable => 'real' },
|
|
2531
|
+
ScalingFactorHeight => { Writable => 'real' },
|
|
2532
|
+
ValidCropCorners => { Writable => 'boolean' },
|
|
2533
|
+
ApplyAutomatically => { Writable => 'boolean' },
|
|
2534
|
+
NormalizedCropCorners => { Writable => 'real', List => 'Seq' },
|
|
2535
|
+
);
|
|
2536
|
+
|
|
2512
2537
|
# Panasonic Composite tags
|
|
2513
2538
|
%Image::ExifTool::Panasonic::Composite = (
|
|
2514
2539
|
GROUPS => { 2 => 'Camera' },
|
|
@@ -2876,7 +2901,7 @@ Panasonic and Leica maker notes in EXIF information.
|
|
|
2876
2901
|
|
|
2877
2902
|
=head1 AUTHOR
|
|
2878
2903
|
|
|
2879
|
-
Copyright 2003-
|
|
2904
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
2880
2905
|
|
|
2881
2906
|
This library is free software; you can redistribute it and/or modify it
|
|
2882
2907
|
under the same terms as Perl itself.
|
|
@@ -21,7 +21,7 @@ use vars qw($VERSION);
|
|
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
22
22
|
use Image::ExifTool::Exif;
|
|
23
23
|
|
|
24
|
-
$VERSION = '1.
|
|
24
|
+
$VERSION = '1.29';
|
|
25
25
|
|
|
26
26
|
sub ProcessJpgFromRaw($$$);
|
|
27
27
|
sub WriteJpgFromRaw($$$);
|
|
@@ -839,7 +839,7 @@ sub WriteJpgFromRaw($$$)
|
|
|
839
839
|
my $buff = substr($$dataPt, $dirStart, $dirLen);
|
|
840
840
|
$dataPt = \$buff;
|
|
841
841
|
}
|
|
842
|
-
my $raf =
|
|
842
|
+
my $raf = File::RandomAccess->new($dataPt);
|
|
843
843
|
my $outbuff;
|
|
844
844
|
my %dirInfo = (
|
|
845
845
|
RAF => $raf,
|
|
@@ -890,7 +890,7 @@ sub ProcessJpgFromRaw($$$)
|
|
|
890
890
|
# extract information from embedded JPEG
|
|
891
891
|
my %dirInfo = (
|
|
892
892
|
Parent => 'RAF',
|
|
893
|
-
RAF =>
|
|
893
|
+
RAF => File::RandomAccess->new($dataPt),
|
|
894
894
|
);
|
|
895
895
|
if ($verbose) {
|
|
896
896
|
my $indent = $$et{INDENT};
|
|
@@ -934,7 +934,7 @@ write meta information in Panasonic/Leica RAW, RW2 and RWL images.
|
|
|
934
934
|
|
|
935
935
|
=head1 AUTHOR
|
|
936
936
|
|
|
937
|
-
Copyright 2003-
|
|
937
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
938
938
|
|
|
939
939
|
This library is free software; you can redistribute it and/or modify it
|
|
940
940
|
under the same terms as Perl itself.
|
|
@@ -825,7 +825,7 @@ timed metadata from the 'mett' frame found in Parrot drone MP4 videos.
|
|
|
825
825
|
|
|
826
826
|
=head1 AUTHOR
|
|
827
827
|
|
|
828
|
-
Copyright 2003-
|
|
828
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
829
829
|
|
|
830
830
|
This library is free software; you can redistribute it and/or modify it
|
|
831
831
|
under the same terms as Perl itself.
|
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
|
58
58
|
use Image::ExifTool::GPS;
|
|
59
59
|
use Image::ExifTool::HP;
|
|
60
60
|
|
|
61
|
-
$VERSION = '3.
|
|
61
|
+
$VERSION = '3.46';
|
|
62
62
|
|
|
63
63
|
sub CryptShutterCount($$);
|
|
64
64
|
sub PrintFilter($$$);
|
|
@@ -1571,6 +1571,7 @@ my %binaryDataAttrs = (
|
|
|
1571
1571
|
0 => 'Multi-segment',
|
|
1572
1572
|
1 => 'Center-weighted average',
|
|
1573
1573
|
2 => 'Spot',
|
|
1574
|
+
6 => 'Highlight', # (GR III)
|
|
1574
1575
|
# have seen value of 16 for E70
|
|
1575
1576
|
},
|
|
1576
1577
|
},
|
|
@@ -2135,7 +2136,7 @@ my %binaryDataAttrs = (
|
|
|
2135
2136
|
PrintConvInv => [ 'Image::ExifTool::Exif::ConvertFraction($val)' ],
|
|
2136
2137
|
}],
|
|
2137
2138
|
0x004f => { #PH
|
|
2138
|
-
Name => 'ImageTone', # (Called CustomImageMode
|
|
2139
|
+
Name => 'ImageTone', # (Called CustomImageMode for K20D and ImageControlMode for GR III)
|
|
2139
2140
|
Writable => 'int16u',
|
|
2140
2141
|
PrintConvColumns => 2,
|
|
2141
2142
|
PrintConv => {
|
|
@@ -2151,6 +2152,19 @@ my %binaryDataAttrs = (
|
|
|
2151
2152
|
9 => 'Radiant', # (Q)
|
|
2152
2153
|
10 => 'Cross Processing', #31 (K-70)
|
|
2153
2154
|
11 => 'Flat', #31 (K-70)
|
|
2155
|
+
# the following values from GR III
|
|
2156
|
+
256 => 'Standard',
|
|
2157
|
+
257 => 'Vivid',
|
|
2158
|
+
258 => 'Monotone',
|
|
2159
|
+
259 => 'Soft Monotone',
|
|
2160
|
+
260 => 'Hard Monotone',
|
|
2161
|
+
261 => 'Hi-contrast B&W',
|
|
2162
|
+
262 => 'Positive Film',
|
|
2163
|
+
263 => 'Bleach Bypass 2',
|
|
2164
|
+
264 => 'Retro',
|
|
2165
|
+
265 => 'HDR Tone',
|
|
2166
|
+
266 => 'Cross Processing 2',
|
|
2167
|
+
267 => 'Negative Film',
|
|
2154
2168
|
# 256 - seen for GR III
|
|
2155
2169
|
# 257 - seen for GR III
|
|
2156
2170
|
# 262 - seen for GR III
|
|
@@ -2466,16 +2480,23 @@ my %binaryDataAttrs = (
|
|
|
2466
2480
|
},
|
|
2467
2481
|
},
|
|
2468
2482
|
0x007a => { #PH
|
|
2469
|
-
Name => '
|
|
2483
|
+
Name => 'ISOAutoMinSpeed',
|
|
2470
2484
|
Writable => 'int8u',
|
|
2471
2485
|
Count => 2,
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2486
|
+
# From the K-3III menus for the "ISO Auto with Min. Speed" setting: 'Fast' = "Increases
|
|
2487
|
+
# the sensitivity from a shutter speed faster than the standard setting in ISO Auto"
|
|
2488
|
+
ValueConv => [ undef, '$val ? exp(-Image::ExifTool::Pentax::PentaxEv($val-68)*log(2)) : 0' ],
|
|
2489
|
+
ValueConvInv => [ undef, '$val ? Image::ExifTool::Pentax::PentaxEvInv(-log($val)/log(2))+68 : 0' ],
|
|
2490
|
+
PrintConv => [
|
|
2491
|
+
{
|
|
2492
|
+
1 => 'Shutter Speed Control',
|
|
2493
|
+
2 => 'Auto Slow',
|
|
2494
|
+
3 => 'Auto Standard',
|
|
2495
|
+
4 => 'Auto Fast',
|
|
2496
|
+
},
|
|
2497
|
+
'Image::ExifTool::Exif::PrintExposureTime($val)',
|
|
2498
|
+
],
|
|
2499
|
+
PrintConvInv => [ undef, 'Image::ExifTool::Exif::ConvertFraction($val)' ],
|
|
2479
2500
|
},
|
|
2480
2501
|
0x007b => { #PH (K-5)
|
|
2481
2502
|
Name => 'CrossProcess',
|
|
@@ -6339,7 +6360,7 @@ tags, and everyone who helped contribute to the LensType values.
|
|
|
6339
6360
|
|
|
6340
6361
|
=head1 AUTHOR
|
|
6341
6362
|
|
|
6342
|
-
Copyright 2003-
|
|
6363
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
6343
6364
|
|
|
6344
6365
|
This library is free software; you can redistribute it and/or modify it
|
|
6345
6366
|
under the same terms as Perl itself.
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION);
|
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
16
16
|
use Image::ExifTool::Exif;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.10';
|
|
19
19
|
|
|
20
20
|
sub WritePhaseOne($$$);
|
|
21
21
|
sub ProcessPhaseOne($$$);
|
|
@@ -153,7 +153,7 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
|
|
|
153
153
|
Format => 'int16s',
|
|
154
154
|
Count => -1,
|
|
155
155
|
Flags => ['Unknown','Hidden'],
|
|
156
|
-
PrintConv =>
|
|
156
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
|
157
157
|
},
|
|
158
158
|
0x0226 => {
|
|
159
159
|
Name => 'ColorMatrix2',
|
|
@@ -184,13 +184,13 @@ my @formatName = ( undef, 'string', 'int16s', undef, 'int32s' );
|
|
|
184
184
|
Name => 'PhaseOne_0x0258',
|
|
185
185
|
Format => 'int16s',
|
|
186
186
|
Flags => ['Unknown','Hidden'],
|
|
187
|
-
PrintConv =>
|
|
187
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
|
188
188
|
},
|
|
189
189
|
0x025a => { #PH
|
|
190
190
|
Name => 'PhaseOne_0x025a',
|
|
191
191
|
Format => 'int16s',
|
|
192
192
|
Flags => ['Unknown','Hidden'],
|
|
193
|
-
PrintConv =>
|
|
193
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
|
194
194
|
},
|
|
195
195
|
# 0x0300 - int32u: 100,101,102
|
|
196
196
|
0x0301 => { Name => 'FirmwareVersions', Format => 'string' },
|
|
@@ -473,7 +473,7 @@ sub WritePhaseOne($$$)
|
|
|
473
473
|
return undef if $numEntries < 2 or $numEntries > 300 or $ifdEnd > $dirLen;
|
|
474
474
|
my $hdrBuff = $hdr;
|
|
475
475
|
my $valBuff = ''; # buffer for value data
|
|
476
|
-
my $fixup =
|
|
476
|
+
my $fixup = Image::ExifTool::Fixup->new;
|
|
477
477
|
my $index;
|
|
478
478
|
for ($index=0; $index<$numEntries; ++$index) {
|
|
479
479
|
my $entry = $dirStart + $ifdStart + 8 + $entrySize * $index;
|
|
@@ -725,7 +725,7 @@ One maker notes.
|
|
|
725
725
|
|
|
726
726
|
=head1 AUTHOR
|
|
727
727
|
|
|
728
|
-
Copyright 2003-
|
|
728
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
729
729
|
|
|
730
730
|
This library is free software; you can redistribute it and/or modify it
|
|
731
731
|
under the same terms as Perl itself.
|
|
@@ -484,7 +484,7 @@ information from Kodak Photo CD Image Pac (PCD) files.
|
|
|
484
484
|
|
|
485
485
|
=head1 AUTHOR
|
|
486
486
|
|
|
487
|
-
Copyright 2003-
|
|
487
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
488
488
|
|
|
489
489
|
This library is free software; you can redistribute it and/or modify it
|
|
490
490
|
under the same terms as Perl itself.
|
|
@@ -237,7 +237,7 @@ write information written by the Camera Bits Photo Mechanic software.
|
|
|
237
237
|
|
|
238
238
|
=head1 AUTHOR
|
|
239
239
|
|
|
240
|
-
Copyright 2003-
|
|
240
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
241
241
|
|
|
242
242
|
This library is free software; you can redistribute it and/or modify it
|
|
243
243
|
under the same terms as Perl itself.
|
|
@@ -28,7 +28,7 @@ use strict;
|
|
|
28
28
|
use vars qw($VERSION $AUTOLOAD $iptcDigestInfo %printFlags);
|
|
29
29
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
30
30
|
|
|
31
|
-
$VERSION = '1.
|
|
31
|
+
$VERSION = '1.70';
|
|
32
32
|
|
|
33
33
|
sub ProcessPhotoshop($$$);
|
|
34
34
|
sub WritePhotoshop($$$);
|
|
@@ -70,7 +70,7 @@ my %thumbnailInfo = (
|
|
|
70
70
|
Protected => 1,
|
|
71
71
|
RawConv => 'my $img=substr($val,0x1c); $self->ValidateImage(\$img,$tag)',
|
|
72
72
|
ValueConvInv => q{
|
|
73
|
-
my $et =
|
|
73
|
+
my $et = Image::ExifTool->new;
|
|
74
74
|
my @tags = qw{ImageWidth ImageHeight FileType};
|
|
75
75
|
my $info = $et->ImageInfo(\$val, @tags);
|
|
76
76
|
my ($w, $h, $type) = @$info{@tags};
|
|
@@ -892,7 +892,7 @@ sub ProcessDocumentData($$$)
|
|
|
892
892
|
unless ($raf) {
|
|
893
893
|
my $dataPt = $$dirInfo{DataPt};
|
|
894
894
|
my $start = $$dirInfo{DirStart} || 0;
|
|
895
|
-
$raf =
|
|
895
|
+
$raf = File::RandomAccess->new($dataPt);
|
|
896
896
|
$raf->Seek($start, 0) if $start;
|
|
897
897
|
$dirLen = length $$dataPt - $start unless defined $dirLen;
|
|
898
898
|
$et->VerboseDump($dataPt, Start => $start, Len => $dirLen, Base => $$dirInfo{Base});
|
|
@@ -1201,7 +1201,7 @@ be preserved when copying Photoshop information via user-defined tags.
|
|
|
1201
1201
|
|
|
1202
1202
|
=head1 AUTHOR
|
|
1203
1203
|
|
|
1204
|
-
Copyright 2003-
|
|
1204
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
1205
1205
|
|
|
1206
1206
|
This library is free software; you can redistribute it and/or modify it
|
|
1207
1207
|
under the same terms as Perl itself.
|
|
@@ -16,7 +16,7 @@ use strict;
|
|
|
16
16
|
use vars qw($VERSION $AUTOLOAD);
|
|
17
17
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.45';
|
|
20
20
|
|
|
21
21
|
sub WritePS($$);
|
|
22
22
|
sub ProcessPS($$;$);
|
|
@@ -430,7 +430,7 @@ sub ProcessPS($$;$)
|
|
|
430
430
|
|
|
431
431
|
# allow read from data
|
|
432
432
|
unless ($raf) {
|
|
433
|
-
$raf =
|
|
433
|
+
$raf = File::RandomAccess->new($$dirInfo{DataPt});
|
|
434
434
|
$et->VerboseDir('PostScript');
|
|
435
435
|
}
|
|
436
436
|
#
|
|
@@ -777,7 +777,7 @@ This code reads meta information from EPS (Encapsulated PostScript), PS
|
|
|
777
777
|
|
|
778
778
|
=head1 AUTHOR
|
|
779
779
|
|
|
780
|
-
Copyright 2003-
|
|
780
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
781
781
|
|
|
782
782
|
This library is free software; you can redistribute it and/or modify it
|
|
783
783
|
under the same terms as Perl itself.
|
|
@@ -112,7 +112,7 @@ Print Image Matching meta information.
|
|
|
112
112
|
|
|
113
113
|
=head1 AUTHOR
|
|
114
114
|
|
|
115
|
-
Copyright 2003-
|
|
115
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
116
116
|
|
|
117
117
|
This library is free software; you can redistribute it and/or modify it
|
|
118
118
|
under the same terms as Perl itself.
|
|
@@ -1331,7 +1331,7 @@ information from the APP7 Qualcomm segment in JPEG images.
|
|
|
1331
1331
|
|
|
1332
1332
|
=head1 AUTHOR
|
|
1333
1333
|
|
|
1334
|
-
Copyright 2003-
|
|
1334
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
1335
1335
|
|
|
1336
1336
|
This library is free software; you can redistribute it and/or modify it
|
|
1337
1337
|
under the same terms as Perl itself.
|
|
@@ -48,7 +48,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
48
48
|
use Image::ExifTool::Exif;
|
|
49
49
|
use Image::ExifTool::GPS;
|
|
50
50
|
|
|
51
|
-
$VERSION = '2.
|
|
51
|
+
$VERSION = '2.93';
|
|
52
52
|
|
|
53
53
|
sub ProcessMOV($$;$);
|
|
54
54
|
sub ProcessKeys($$$);
|
|
@@ -64,6 +64,7 @@ sub Process_3gf($$$);
|
|
|
64
64
|
sub Process_gps0($$$);
|
|
65
65
|
sub Process_gsen($$$);
|
|
66
66
|
sub ProcessKenwood($$$);
|
|
67
|
+
sub ProcessLIGO_JSON($$$);
|
|
67
68
|
sub ProcessRIFFTrailer($$$);
|
|
68
69
|
sub ProcessTTAD($$$);
|
|
69
70
|
sub ProcessNMEA($$$);
|
|
@@ -267,6 +268,24 @@ my %timeInfo = (
|
|
|
267
268
|
PrintConvInv => '$self->InverseDateTime($val)',
|
|
268
269
|
# (can't put Groups here because they aren't constant!)
|
|
269
270
|
);
|
|
271
|
+
# properties for ISO 8601 format date/time tags
|
|
272
|
+
my %iso8601Date = (
|
|
273
|
+
Shift => 'Time',
|
|
274
|
+
ValueConv => q{
|
|
275
|
+
require Image::ExifTool::XMP;
|
|
276
|
+
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
277
|
+
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
278
|
+
return $val;
|
|
279
|
+
},
|
|
280
|
+
ValueConvInv => q{
|
|
281
|
+
require Image::ExifTool::XMP;
|
|
282
|
+
my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
283
|
+
($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
|
|
284
|
+
return $val;
|
|
285
|
+
},
|
|
286
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
|
287
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
288
|
+
);
|
|
270
289
|
# information for duration tags
|
|
271
290
|
my %durationInfo = (
|
|
272
291
|
ValueConv => '$$self{TimeScale} ? $val / $$self{TimeScale} : $val',
|
|
@@ -644,6 +663,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
644
663
|
Deletable => 1,
|
|
645
664
|
SubDirectory => {
|
|
646
665
|
TagTable => 'Image::ExifTool::Jpeg2000::Main',
|
|
666
|
+
DirName => 'JUMBF',
|
|
647
667
|
# 16 bytes uuid
|
|
648
668
|
# +4 bytes 0
|
|
649
669
|
# +9 bytes "manifest\0"
|
|
@@ -707,6 +727,13 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
707
727
|
TagTable => 'Image::ExifTool::QuickTime::Stream',
|
|
708
728
|
ProcessProc => \&ProcessKenwood,
|
|
709
729
|
},
|
|
730
|
+
},{
|
|
731
|
+
Name => 'LIGO_JSON',
|
|
732
|
+
Condition => '$$valPt =~ /^LIGOGPSINFO \{/',
|
|
733
|
+
SubDirectory => {
|
|
734
|
+
TagTable => 'Image::ExifTool::QuickTime::Stream',
|
|
735
|
+
ProcessProc => \&ProcessLIGO_JSON,
|
|
736
|
+
},
|
|
710
737
|
},{
|
|
711
738
|
Name => 'FLIRData',
|
|
712
739
|
SubDirectory => { TagTable => 'Image::ExifTool::FLIR::UserData' },
|
|
@@ -825,6 +852,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
825
852
|
# note that this may be written and/or deleted, but can't currently be added back again
|
|
826
853
|
Writable => 1,
|
|
827
854
|
},
|
|
855
|
+
# '35AX'? - seen "AT" (Yada RoadCam Pro 4K dashcam)
|
|
828
856
|
);
|
|
829
857
|
|
|
830
858
|
# stuff seen in 'skip' atom (70mai Pro Plus+ MP4 videos)
|
|
@@ -1565,22 +1593,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
1565
1593
|
"\xa9day" => {
|
|
1566
1594
|
Name => 'ContentCreateDate',
|
|
1567
1595
|
Groups => { 2 => 'Time' },
|
|
1568
|
-
|
|
1569
|
-
# handle values in the form "2010-02-12T13:27:14-0800" (written by Apple iPhone)
|
|
1570
|
-
ValueConv => q{
|
|
1571
|
-
require Image::ExifTool::XMP;
|
|
1572
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
1573
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
1574
|
-
return $val;
|
|
1575
|
-
},
|
|
1576
|
-
ValueConvInv => q{
|
|
1577
|
-
require Image::ExifTool::XMP;
|
|
1578
|
-
my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
1579
|
-
($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
|
|
1580
|
-
return $val;
|
|
1581
|
-
},
|
|
1582
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
1583
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
1596
|
+
%iso8601Date,
|
|
1584
1597
|
},
|
|
1585
1598
|
"\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
|
|
1586
1599
|
"\xa9alb" => 'Album', #PH (iTunes 8.0.2)
|
|
@@ -1864,21 +1877,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
1864
1877
|
Apple Photos has been reported to show a crazy date/time for some MP4 files
|
|
1865
1878
|
containing this tag, but perhaps only if it is missing a time zone
|
|
1866
1879
|
}, #forum10690/11125
|
|
1867
|
-
|
|
1868
|
-
ValueConv => q{
|
|
1869
|
-
require Image::ExifTool::XMP;
|
|
1870
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
1871
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
1872
|
-
return $val;
|
|
1873
|
-
},
|
|
1874
|
-
ValueConvInv => q{
|
|
1875
|
-
require Image::ExifTool::XMP;
|
|
1876
|
-
$val = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
1877
|
-
$val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
|
|
1878
|
-
return $val;
|
|
1879
|
-
},
|
|
1880
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
1881
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
1880
|
+
%iso8601Date,
|
|
1882
1881
|
},
|
|
1883
1882
|
manu => { # (SX280)
|
|
1884
1883
|
Name => 'Make',
|
|
@@ -2301,23 +2300,9 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
2301
2300
|
symbol in these tag ID's for the Ricoh Theta Z1 and maybe other models
|
|
2302
2301
|
},
|
|
2303
2302
|
Groups => { 2 => 'Time' },
|
|
2304
|
-
Shift => 'Time',
|
|
2305
2303
|
Avoid => 1,
|
|
2306
2304
|
# handle values in the form "2010-02-12T13:27:14-0800"
|
|
2307
|
-
|
|
2308
|
-
require Image::ExifTool::XMP;
|
|
2309
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
2310
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
2311
|
-
return $val;
|
|
2312
|
-
},
|
|
2313
|
-
ValueConvInv => q{
|
|
2314
|
-
require Image::ExifTool::XMP;
|
|
2315
|
-
my $tmp = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
2316
|
-
($val = $tmp) =~ s/([-+]\d{2}):(\d{2})$/$1$2/ if defined $tmp; # remove time zone colon
|
|
2317
|
-
return $val;
|
|
2318
|
-
},
|
|
2319
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
2320
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
2305
|
+
%iso8601Date,
|
|
2321
2306
|
},
|
|
2322
2307
|
'@xyz' => { #PH (iPhone 3GS)
|
|
2323
2308
|
Name => 'GPSCoordinates',
|
|
@@ -3330,22 +3315,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
3330
3315
|
"\xa9day" => {
|
|
3331
3316
|
Name => 'ContentCreateDate',
|
|
3332
3317
|
Groups => { 2 => 'Time' },
|
|
3333
|
-
|
|
3334
|
-
# handle values in the form "2010-02-12T13:27:14-0800"
|
|
3335
|
-
ValueConv => q{
|
|
3336
|
-
require Image::ExifTool::XMP;
|
|
3337
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
3338
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
3339
|
-
return $val;
|
|
3340
|
-
},
|
|
3341
|
-
ValueConvInv => q{
|
|
3342
|
-
require Image::ExifTool::XMP;
|
|
3343
|
-
$val = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
3344
|
-
$val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
|
|
3345
|
-
return $val;
|
|
3346
|
-
},
|
|
3347
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
3348
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
3318
|
+
%iso8601Date,
|
|
3349
3319
|
},
|
|
3350
3320
|
"\xa9des" => 'Description', #4
|
|
3351
3321
|
"\xa9enc" => 'EncodedBy', #10
|
|
@@ -6394,12 +6364,10 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
6394
6364
|
ValueConvInv => '$val * 1000',
|
|
6395
6365
|
PrintConv => 'ConvertDuration($val)',
|
|
6396
6366
|
PrintConvInv => q{
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6401
|
-
$a[0] += shift(@a) * 60 while @a > 1;
|
|
6402
|
-
return $a[0] * $sign;
|
|
6367
|
+
my $sign = ($val =~ s/^-//) ? -1 : 1;
|
|
6368
|
+
my @a = $val =~ /(\d+(?:\.\d+)?)/g;
|
|
6369
|
+
unshift @a, 0 while @a < 4;
|
|
6370
|
+
return $sign * (((($a[0] * 24) + $a[1]) * 60 + $a[2]) * 60 + $a[3]);
|
|
6403
6371
|
},
|
|
6404
6372
|
},
|
|
6405
6373
|
|
|
@@ -6513,21 +6481,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
6513
6481
|
creationdate=> {
|
|
6514
6482
|
Name => 'CreationDate',
|
|
6515
6483
|
Groups => { 2 => 'Time' },
|
|
6516
|
-
|
|
6517
|
-
ValueConv => q{
|
|
6518
|
-
require Image::ExifTool::XMP;
|
|
6519
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val,1);
|
|
6520
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
6521
|
-
return $val;
|
|
6522
|
-
},
|
|
6523
|
-
ValueConvInv => q{
|
|
6524
|
-
require Image::ExifTool::XMP;
|
|
6525
|
-
$val = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
6526
|
-
$val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
|
|
6527
|
-
return $val;
|
|
6528
|
-
},
|
|
6529
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
6530
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
6484
|
+
%iso8601Date,
|
|
6531
6485
|
},
|
|
6532
6486
|
description => { },
|
|
6533
6487
|
director => { },
|
|
@@ -6577,21 +6531,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
6577
6531
|
'location.date' => {
|
|
6578
6532
|
Name => 'LocationDate',
|
|
6579
6533
|
Groups => { 2 => 'Time' },
|
|
6580
|
-
|
|
6581
|
-
ValueConv => q{
|
|
6582
|
-
require Image::ExifTool::XMP;
|
|
6583
|
-
$val = Image::ExifTool::XMP::ConvertXMPDate($val);
|
|
6584
|
-
$val =~ s/([-+]\d{2})(\d{2})$/$1:$2/; # add colon to timezone if necessary
|
|
6585
|
-
return $val;
|
|
6586
|
-
},
|
|
6587
|
-
ValueConvInv => q{
|
|
6588
|
-
require Image::ExifTool::XMP;
|
|
6589
|
-
$val = Image::ExifTool::XMP::FormatXMPDate($val);
|
|
6590
|
-
$val =~ s/([-+]\d{2}):(\d{2})$/$1$2/; # remove time zone colon
|
|
6591
|
-
return $val;
|
|
6592
|
-
},
|
|
6593
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
|
6594
|
-
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
6534
|
+
%iso8601Date,
|
|
6595
6535
|
},
|
|
6596
6536
|
'location.accuracy.horizontal' => { Name => 'LocationAccuracyHorizontal' },
|
|
6597
6537
|
'live-photo.auto' => { Name => 'LivePhotoAuto', Writable => 'int8u' },
|
|
@@ -6684,6 +6624,16 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
6684
6624
|
'detected-face.roll-angle' => { Name => 'DetectedFaceRollAngle', Writable => 0 },
|
|
6685
6625
|
# (fiel)com.apple.quicktime.detected-face.yaw-angle (dtyp=23, float)
|
|
6686
6626
|
'detected-face.yaw-angle' => { Name => 'DetectedFaceYawAngle', Writable => 0 },
|
|
6627
|
+
# the following tags generated by ShutterEncoder when "preserve metadata" is selected (forum15610)
|
|
6628
|
+
major_brand => { Name => 'MajorBrand', Avoid => 1 },
|
|
6629
|
+
minor_version => { Name => 'MinorVersion', Avoid => 1 },
|
|
6630
|
+
compatible_brands => { Name => 'CompatibleBrands', Avoid => 1 },
|
|
6631
|
+
creation_time => {
|
|
6632
|
+
Name => 'CreationTime',
|
|
6633
|
+
Groups => { 2 => 'Time' },
|
|
6634
|
+
Avoid => 1,
|
|
6635
|
+
%iso8601Date,
|
|
6636
|
+
},
|
|
6687
6637
|
#
|
|
6688
6638
|
# seen in Apple ProRes RAW file
|
|
6689
6639
|
#
|
|
@@ -7315,6 +7265,10 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
|
7315
7265
|
Name => 'SpatialAudio',
|
|
7316
7266
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::SpatialAudio' },
|
|
7317
7267
|
},
|
|
7268
|
+
btrt => {
|
|
7269
|
+
Name => 'BitrateInfo',
|
|
7270
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Bitrate' },
|
|
7271
|
+
},
|
|
7318
7272
|
# alac - 28 bytes
|
|
7319
7273
|
# adrm - AAX DRM atom? 148 bytes
|
|
7320
7274
|
# aabd - AAX unknown 17kB (contains 'aavd' strings)
|
|
@@ -9353,7 +9307,7 @@ sub ProcessMOV($$;$)
|
|
|
9353
9307
|
}
|
|
9354
9308
|
# more convenient to package data as a RandomAccess file
|
|
9355
9309
|
unless ($raf) {
|
|
9356
|
-
$raf =
|
|
9310
|
+
$raf = File::RandomAccess->new($dataPt);
|
|
9357
9311
|
$dirEnd = $dataPos + $$dirInfo{DirLen} + ($$dirInfo{DirStart} || 0) if $$dirInfo{DirLen};
|
|
9358
9312
|
}
|
|
9359
9313
|
# skip leading bytes if necessary
|
|
@@ -10009,7 +9963,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
|
|
|
10009
9963
|
|
|
10010
9964
|
=head1 AUTHOR
|
|
10011
9965
|
|
|
10012
|
-
Copyright 2003-
|
|
9966
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
10013
9967
|
|
|
10014
9968
|
This library is free software; you can redistribute it and/or modify it
|
|
10015
9969
|
under the same terms as Perl itself.
|