exiftool_vendored 12.50.0 → 12.54.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +69 -3
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +12 -9
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- 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 +197 -27
- 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 +3 -3
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +14 -2
- 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 +9 -9
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +4 -4
- 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 +1 -1
- 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 +5 -16
- 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 +7 -6
- 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 +20 -13
- 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 +12 -6
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +13 -5
- 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/ICO.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 +1 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +2 -1
- 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 +35 -8
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.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 +2 -2
- 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 +6016 -760
- 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/sk.pm +1806 -0
- 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/MISB.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 +1 -1
- data/bin/lib/Image/ExifTool/MRC.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 +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +262 -46
- 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 +658 -276
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
- data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- 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 -3
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +1 -1
- 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 +12 -7
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +9 -2
- 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 +1 -1
- 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 +8 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +63 -15
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- 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 +3 -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 +7 -7
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +13 -8
- data/bin/lib/Image/ExifTool/TagLookup.pm +4599 -4505
- data/bin/lib/Image/ExifTool/TagNames.pod +313 -39
- 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 +14 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +5 -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 +30 -14
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
- data/bin/lib/Image/ExifTool/Writer.pl +35 -15
- data/bin/lib/Image/ExifTool/XMP.pm +23 -3
- data/bin/lib/Image/ExifTool/XMP2.pl +20 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +20 -8
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +38 -16
- data/bin/lib/Image/ExifTool.pod +39 -38
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -12,7 +12,7 @@ use strict;
|
|
12
12
|
use vars qw($VERSION);
|
13
13
|
use Image::ExifTool::Exif;
|
14
14
|
|
15
|
-
$VERSION = '1.
|
15
|
+
$VERSION = '1.55';
|
16
16
|
|
17
17
|
my %coordConv = (
|
18
18
|
ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
|
@@ -407,12 +407,18 @@ my %coordConv = (
|
|
407
407
|
# Require either GPS:GPSAltitudeRef or XMP:GPSAltitudeRef
|
408
408
|
RawConv => '(defined $val[1] or defined $val[3]) ? $val : undef',
|
409
409
|
ValueConv => q{
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
410
|
+
foreach (0,2) {
|
411
|
+
next unless defined $val[$_] and IsFloat($val[$_]) and defined $val[$_+1];
|
412
|
+
return $val[$_+1] ? -abs($val[$_]) : $val[$_];
|
413
|
+
}
|
414
|
+
return undef;
|
414
415
|
},
|
415
416
|
PrintConv => q{
|
417
|
+
foreach (0,2) {
|
418
|
+
next unless defined $val[$_] and IsFloat($val[$_]);
|
419
|
+
next unless defined $prt[$_+1] and $prt[$_+1] =~ /Sea/;
|
420
|
+
return((int($val[$_]*10)/10) . ' m ' . $prt[$_+1]);
|
421
|
+
}
|
416
422
|
$val = int($val * 10) / 10;
|
417
423
|
return(($val =~ s/^-// ? "$val m Below" : "$val m Above") . " Sea Level");
|
418
424
|
},
|
@@ -599,7 +605,7 @@ GPS (Global Positioning System) meta information in EXIF data.
|
|
599
605
|
|
600
606
|
=head1 AUTHOR
|
601
607
|
|
602
|
-
Copyright 2003-
|
608
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
603
609
|
|
604
610
|
This library is free software; you can redistribute it and/or modify it
|
605
611
|
under the same terms as Perl itself.
|
@@ -2242,7 +2242,7 @@ coordinates.
|
|
2242
2242
|
|
2243
2243
|
=head1 AUTHOR
|
2244
2244
|
|
2245
|
-
Copyright 2003-
|
2245
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
2246
2246
|
|
2247
2247
|
This library is free software; you can redistribute it and/or modify it
|
2248
2248
|
under the same terms as Perl itself.
|
@@ -29,7 +29,7 @@ use vars qw($VERSION);
|
|
29
29
|
use Image::ExifTool qw(:Public);
|
30
30
|
use Image::ExifTool::GPS;
|
31
31
|
|
32
|
-
$VERSION = '1.
|
32
|
+
$VERSION = '1.69';
|
33
33
|
|
34
34
|
sub JITTER() { return 2 } # maximum time jitter
|
35
35
|
|
@@ -75,7 +75,8 @@ my %xmlTag = (
|
|
75
75
|
);
|
76
76
|
|
77
77
|
# fix information keys which must be interpolated around a circle
|
78
|
-
my %cyclical = (lon => 1, track => 1, dir => 1, roll => 1);
|
78
|
+
my %cyclical = (lon => 1, track => 1, dir => 1, pitch => 1, roll => 1);
|
79
|
+
my %cyc180 = (lon => 1, pitch => 1, roll => 1); # wraps from 180 to -180
|
79
80
|
|
80
81
|
# fix information keys for each of our general categories
|
81
82
|
my %fixInfoKeys = (
|
@@ -88,6 +89,9 @@ my %fixInfoKeys = (
|
|
88
89
|
|
89
90
|
my %isOrient = ( dir => 1, pitch => 1, roll => 1 ); # test for orientation key
|
90
91
|
|
92
|
+
# tags which may exist separately in some formats (eg. CSV)
|
93
|
+
my %sepTags = ( dir => 1, pitch => 1, roll => 1, track => 1, speed => 1 );
|
94
|
+
|
91
95
|
# conversion factors for GPSSpeed
|
92
96
|
my %speedConv = (
|
93
97
|
'K' => 1.852, # km/h per knot
|
@@ -276,6 +280,8 @@ sub LoadTrackLog($$;$)
|
|
276
280
|
$param = 'pitch';
|
277
281
|
} elsif (/^(Angle)?Roll/i) {
|
278
282
|
$param = 'roll';
|
283
|
+
} elsif (/^Img ?Dir/i) {
|
284
|
+
$param = 'dir';
|
279
285
|
}
|
280
286
|
if ($param) {
|
281
287
|
$et->VPrint(2, "CSV column '${_}' is $param\n");
|
@@ -496,6 +502,7 @@ DoneFix: $isDate = 1;
|
|
496
502
|
$secs = $val;
|
497
503
|
} else {
|
498
504
|
$$fix{$param} = $val;
|
505
|
+
$$has{$param} = 1 if $sepTags{$param};
|
499
506
|
}
|
500
507
|
}
|
501
508
|
# make coordinate negative according to reference direction if necessary
|
@@ -1101,6 +1108,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1101
1108
|
next unless defined $v0 and defined $v1;
|
1102
1109
|
$f = $f0b;
|
1103
1110
|
} else {
|
1111
|
+
next if $sepTags{$key}; # (don't scan outwards for some formats, eg. CSV)
|
1104
1112
|
# scan outwards looking for fixes with the required information
|
1105
1113
|
# (NOTE: SHOULD EVENTUALLY DO THIS FOR EXTRAPOLATION TOO!)
|
1106
1114
|
my ($t0b, $t1b);
|
@@ -1127,8 +1135,8 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
1127
1135
|
# 360 degrees to the smaller angle before interpolating
|
1128
1136
|
$v0 < $v1 ? $v0 += 360 : $v1 += 360;
|
1129
1137
|
$$fix{$key} = $v1 * $f + $v0 * (1 - $f);
|
1130
|
-
#
|
1131
|
-
my $max =
|
1138
|
+
# some ranges are -180 to 180, others are 0 to 360
|
1139
|
+
my $max = $cyc180{$key} ? 180 : 360;
|
1132
1140
|
$$fix{$key} -= 360 if $$fix{$key} >= $max;
|
1133
1141
|
} else {
|
1134
1142
|
# simple linear interpolation
|
@@ -1444,7 +1452,7 @@ user-defined tag GPSRoll, must be active.
|
|
1444
1452
|
|
1445
1453
|
=head1 AUTHOR
|
1446
1454
|
|
1447
|
-
Copyright 2003-
|
1455
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1448
1456
|
|
1449
1457
|
This library is free software; you can redistribute it and/or modify it
|
1450
1458
|
under the same terms as Perl itself.
|
@@ -733,7 +733,7 @@ metadata from GoPro MP4 videos.
|
|
733
733
|
|
734
734
|
=head1 AUTHOR
|
735
735
|
|
736
|
-
Copyright 2003-
|
736
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
737
737
|
|
738
738
|
This library is free software; you can redistribute it and/or modify it
|
739
739
|
under the same terms as Perl itself.
|
@@ -1123,7 +1123,7 @@ information from H.264 video streams.
|
|
1123
1123
|
|
1124
1124
|
=head1 AUTHOR
|
1125
1125
|
|
1126
|
-
Copyright 2003-
|
1126
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1127
1127
|
|
1128
1128
|
This library is free software; you can redistribute it and/or modify it
|
1129
1129
|
under the same terms as Perl itself.
|
@@ -250,7 +250,7 @@ Hewlett-Packard maker notes.
|
|
250
250
|
|
251
251
|
=head1 AUTHOR
|
252
252
|
|
253
|
-
Copyright 2003-
|
253
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
254
254
|
|
255
255
|
This library is free software; you can redistribute it and/or modify it
|
256
256
|
under the same terms as Perl itself.
|
@@ -555,7 +555,7 @@ meta information from HTML documents.
|
|
555
555
|
|
556
556
|
=head1 AUTHOR
|
557
557
|
|
558
|
-
Copyright 2003-
|
558
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
559
559
|
|
560
560
|
This library is free software; you can redistribute it and/or modify it
|
561
561
|
under the same terms as Perl itself.
|
@@ -917,7 +917,7 @@ page.
|
|
917
917
|
|
918
918
|
=head1 AUTHOR
|
919
919
|
|
920
|
-
Copyright 2003-
|
920
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
921
921
|
|
922
922
|
This library is free software; you can redistribute it and/or modify it
|
923
923
|
under the same terms as Perl itself.
|
@@ -1357,7 +1357,7 @@ data created on one device into another device's native color space.
|
|
1357
1357
|
|
1358
1358
|
=head1 AUTHOR
|
1359
1359
|
|
1360
|
-
Copyright 2003-
|
1360
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1361
1361
|
|
1362
1362
|
This library is free software; you can redistribute it and/or modify it
|
1363
1363
|
under the same terms as Perl itself.
|
@@ -121,7 +121,7 @@ information from Windows ICO (icon) and CUR (cursor) files.
|
|
121
121
|
|
122
122
|
=head1 AUTHOR
|
123
123
|
|
124
|
-
Copyright 2003-
|
124
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
125
125
|
|
126
126
|
This library is free software; you can redistribute it and/or modify it
|
127
127
|
under the same terms as Perl itself.
|
@@ -1652,7 +1652,7 @@ other types of audio files.
|
|
1652
1652
|
|
1653
1653
|
=head1 AUTHOR
|
1654
1654
|
|
1655
|
-
Copyright 2003-
|
1655
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1656
1656
|
|
1657
1657
|
This library is free software; you can redistribute it and/or modify it
|
1658
1658
|
under the same terms as Perl itself.
|
@@ -1284,7 +1284,7 @@ image files.
|
|
1284
1284
|
|
1285
1285
|
=head1 AUTHOR
|
1286
1286
|
|
1287
|
-
Copyright 2003-
|
1287
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1288
1288
|
|
1289
1289
|
This library is free software; you can redistribute it and/or modify it
|
1290
1290
|
under the same terms as Perl itself.
|
@@ -184,7 +184,7 @@ information from ISO 9660 disk images.
|
|
184
184
|
|
185
185
|
=head1 AUTHOR
|
186
186
|
|
187
|
-
Copyright 2003-
|
187
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
188
188
|
|
189
189
|
This library is free software; you can redistribute it and/or modify it
|
190
190
|
under the same terms as Perl itself.
|
@@ -191,7 +191,7 @@ information (including artwork images) from iTunes Cover Flow files.
|
|
191
191
|
|
192
192
|
=head1 AUTHOR
|
193
193
|
|
194
|
-
Copyright 2003-
|
194
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
195
195
|
|
196
196
|
This library is free software; you can redistribute it and/or modify it
|
197
197
|
under the same terms as Perl itself.
|
@@ -348,7 +348,7 @@ stored as hash lookups of tag name/value for each SourceFile.
|
|
348
348
|
|
349
349
|
=head1 AUTHOR
|
350
350
|
|
351
|
-
Copyright 2003-
|
351
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
352
352
|
|
353
353
|
This library is free software; you can redistribute it and/or modify it
|
354
354
|
under the same terms as Perl itself.
|
@@ -258,7 +258,7 @@ them and the LargeFileSupport option is enabled.
|
|
258
258
|
|
259
259
|
=head1 AUTHOR
|
260
260
|
|
261
|
-
Copyright 2003-
|
261
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
262
262
|
|
263
263
|
This library is free software; you can redistribute it and/or modify it
|
264
264
|
under the same terms as Perl itself.
|
@@ -205,6 +205,7 @@ sub ProcessJPEG_HDR($$$);
|
|
205
205
|
Name => 'JUMBF',
|
206
206
|
Condition => '$$valPt =~ /^JP/',
|
207
207
|
SubDirectory => { TagTable => 'Image::ExifTool::Jpeg2000::Main' },
|
208
|
+
# Note: The recommended options for reading C2PA JUMBF metadata are "-G3 -b -j -u"
|
208
209
|
}],
|
209
210
|
APP12 => [{
|
210
211
|
Name => 'PictureInfo',
|
@@ -718,7 +719,7 @@ segments are included in the Image::ExifTool module itself.
|
|
718
719
|
|
719
720
|
=head1 AUTHOR
|
720
721
|
|
721
|
-
Copyright 2003-
|
722
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
722
723
|
|
723
724
|
This library is free software; you can redistribute it and/or modify it
|
724
725
|
under the same terms as Perl itself.
|
@@ -2590,7 +2590,7 @@ estimated JPEG quality if requested.
|
|
2590
2590
|
|
2591
2591
|
=head1 AUTHOR
|
2592
2592
|
|
2593
|
-
Copyright 2003-
|
2593
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
2594
2594
|
|
2595
2595
|
This library is free software; you can redistribute it and/or modify it
|
2596
2596
|
under the same terms as Perl itself.
|
@@ -176,7 +176,7 @@ information from JSON files.
|
|
176
176
|
|
177
177
|
=head1 AUTHOR
|
178
178
|
|
179
|
-
Copyright 2003-
|
179
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
180
180
|
|
181
181
|
This library is free software; you can redistribute it and/or modify it
|
182
182
|
under the same terms as Perl itself.
|
@@ -117,7 +117,7 @@ notes.
|
|
117
117
|
|
118
118
|
=head1 AUTHOR
|
119
119
|
|
120
|
-
Copyright 2003-
|
120
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
121
121
|
|
122
122
|
This library is free software; you can redistribute it and/or modify it
|
123
123
|
under the same terms as Perl itself.
|
@@ -16,7 +16,7 @@ use strict;
|
|
16
16
|
use vars qw($VERSION);
|
17
17
|
use Image::ExifTool qw(:DataAccess :Utils);
|
18
18
|
|
19
|
-
$VERSION = '1.
|
19
|
+
$VERSION = '1.33';
|
20
20
|
|
21
21
|
sub ProcessJpeg2000Box($$$);
|
22
22
|
sub ProcessJUMD($$$);
|
@@ -418,6 +418,12 @@ my %j2cMarker = (
|
|
418
418
|
Binary => 1,
|
419
419
|
JUMBF_Suffix => 'Data', # (used when tag is renamed according to JUMDLabel)
|
420
420
|
},
|
421
|
+
c2sh => { # used in JUMBF
|
422
|
+
Name => 'C2PASaltHash',
|
423
|
+
Format => 'undef',
|
424
|
+
ValueConv => 'unpack("H*",$val)',
|
425
|
+
JUMBF_Suffix => 'Salt', # (used when tag is renamed according to JUMDLabel)
|
426
|
+
},
|
421
427
|
#
|
422
428
|
# stuff seen in JPEG XL images:
|
423
429
|
#
|
@@ -438,7 +444,7 @@ my %j2cMarker = (
|
|
438
444
|
ProcessProc => \&Image::ExifTool::ProcessTIFF,
|
439
445
|
WriteProc => \&Image::ExifTool::WriteTIFF,
|
440
446
|
DirName => 'EXIF',
|
441
|
-
Start => '$valuePtr + 4',
|
447
|
+
Start => '$valuePtr + 4 + (length($$dataPt)-$valuePtr > 4 ? unpack("N", $$dataPt) : 0)',
|
442
448
|
},
|
443
449
|
},
|
444
450
|
);
|
@@ -770,7 +776,22 @@ sub ProcessJUMD($$$)
|
|
770
776
|
$et->HandleTag($tagTablePtr, 'sig', substr($$dataPt, $pos, 32));
|
771
777
|
$pos += 32;
|
772
778
|
}
|
773
|
-
$
|
779
|
+
my $more = $end - $pos;
|
780
|
+
if ($more) {
|
781
|
+
# (may find c2sh box hiding after JUMD record)
|
782
|
+
if ($more >= 8) {
|
783
|
+
my %dirInfo = (
|
784
|
+
DataPt => $dataPt,
|
785
|
+
DataLen => $$dirInfo{DataLen},
|
786
|
+
DirStart => $pos,
|
787
|
+
DirLen => $more,
|
788
|
+
DirName => 'JUMDPrivate',
|
789
|
+
);
|
790
|
+
$et->ProcessDirectory(\%dirInfo, GetTagTable('Image::ExifTool::Jpeg2000::Main'));
|
791
|
+
} else {
|
792
|
+
$et->Warn("Extra data in JUMD box $more bytes)", 1);
|
793
|
+
}
|
794
|
+
}
|
774
795
|
return 1;
|
775
796
|
}
|
776
797
|
|
@@ -902,7 +923,7 @@ sub ProcessJpeg2000Box($$$)
|
|
902
923
|
my ($et, $dirInfo, $tagTablePtr) = @_;
|
903
924
|
my $dataPt = $$dirInfo{DataPt};
|
904
925
|
my $dataLen = $$dirInfo{DataLen};
|
905
|
-
my $dataPos = $$dirInfo{DataPos};
|
926
|
+
my $dataPos = $$dirInfo{DataPos} || 0;
|
906
927
|
my $dirLen = $$dirInfo{DirLen} || 0;
|
907
928
|
my $dirStart = $$dirInfo{DirStart} || 0;
|
908
929
|
my $base = $$dirInfo{Base} || 0;
|
@@ -1075,11 +1096,16 @@ sub ProcessJpeg2000Box($$$)
|
|
1075
1096
|
if ($$tagInfo{SubDirectory}) {
|
1076
1097
|
my $subdir = $$tagInfo{SubDirectory};
|
1077
1098
|
my $subdirStart = $valuePtr;
|
1099
|
+
my $subdirLen = $boxLen;
|
1078
1100
|
if (defined $$subdir{Start}) {
|
1079
|
-
#### eval Start ($valuePtr)
|
1101
|
+
#### eval Start ($valuePtr, $dataPt)
|
1080
1102
|
$subdirStart = eval($$subdir{Start});
|
1103
|
+
$subdirLen -= $subdirStart - $valuePtr;
|
1104
|
+
if ($subdirLen < 0) {
|
1105
|
+
$subdirStart = $valuePtr;
|
1106
|
+
$subdirLen = 0;
|
1107
|
+
}
|
1081
1108
|
}
|
1082
|
-
my $subdirLen = $boxLen - ($subdirStart - $valuePtr);
|
1083
1109
|
my %subdirInfo = (
|
1084
1110
|
Parent => 'JP2',
|
1085
1111
|
DataPt => $dataPt,
|
@@ -1097,7 +1123,8 @@ sub ProcessJpeg2000Box($$$)
|
|
1097
1123
|
my $subTable = GetTagTable($$subdir{TagTable}) || $tagTablePtr;
|
1098
1124
|
if ($outfile) {
|
1099
1125
|
# remove this directory from our create list
|
1100
|
-
delete $$et{AddJp2Dirs}{$$tagInfo{Name}};
|
1126
|
+
delete $$et{AddJp2Dirs}{$$tagInfo{Name}}; # (eg. 'EXIF')
|
1127
|
+
delete $$et{AddJp2Dirs}{$boxID}; # (eg. 'Exif')
|
1101
1128
|
my $newdir;
|
1102
1129
|
# only edit writable UUID, Exif and jp2h boxes
|
1103
1130
|
if ($uuid or $boxID eq 'Exif' or ($boxID eq 'xml ' and $$et{IsJXL}) or
|
@@ -1355,7 +1382,7 @@ files.
|
|
1355
1382
|
|
1356
1383
|
=head1 AUTHOR
|
1357
1384
|
|
1358
|
-
Copyright 2003-
|
1385
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1359
1386
|
|
1360
1387
|
This library is free software; you can redistribute it and/or modify it
|
1361
1388
|
under the same terms as Perl itself.
|
@@ -3252,7 +3252,7 @@ interpret Kodak maker notes EXIF meta information.
|
|
3252
3252
|
|
3253
3253
|
=head1 AUTHOR
|
3254
3254
|
|
3255
|
-
Copyright 2003-
|
3255
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
3256
3256
|
|
3257
3257
|
This library is free software; you can redistribute it and/or modify it
|
3258
3258
|
under the same terms as Perl itself.
|
@@ -152,7 +152,7 @@ meta information from Kyocera Contax N Digital RAW images.
|
|
152
152
|
|
153
153
|
=head1 AUTHOR
|
154
154
|
|
155
|
-
Copyright 2003-
|
155
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
156
156
|
|
157
157
|
This library is free software; you can redistribute it and/or modify it
|
158
158
|
under the same terms as Perl itself.
|
@@ -139,7 +139,7 @@ metadata from Leica Image File (LIF) images.
|
|
139
139
|
|
140
140
|
=head1 AUTHOR
|
141
141
|
|
142
|
-
Copyright 2003-
|
142
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
143
143
|
|
144
144
|
This library is free software; you can redistribute it and/or modify it
|
145
145
|
under the same terms as Perl itself.
|
@@ -702,7 +702,7 @@ information MS Shell Link (Windows shortcut) files.
|
|
702
702
|
|
703
703
|
=head1 AUTHOR
|
704
704
|
|
705
|
-
Copyright 2003-
|
705
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
706
706
|
|
707
707
|
This library is free software; you can redistribute it and/or modify it
|
708
708
|
under the same terms as Perl itself.
|
@@ -1570,7 +1570,7 @@ and values.
|
|
1570
1570
|
|
1571
1571
|
=head1 AUTHOR
|
1572
1572
|
|
1573
|
-
Copyright 2003-
|
1573
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1574
1574
|
|
1575
1575
|
This library is free software; you can redistribute it and/or modify it
|
1576
1576
|
under the same terms as Perl itself.
|
@@ -4149,7 +4149,7 @@ $VERSION = '1.36';
|
|
4149
4149
|
'Auto' => 'Automatisch',
|
4150
4150
|
'Continuous' => 'Serienaufnahme',
|
4151
4151
|
'Custom' => 'Benutzerdefiniert',
|
4152
|
-
'Face
|
4152
|
+
'Face Detect' => 'Gesichtserkennung AF',
|
4153
4153
|
'Infinity' => 'Unendlich',
|
4154
4154
|
'Macro' => 'Makro',
|
4155
4155
|
'Macro (1)' => 'Makro (1)',
|
@@ -8702,7 +8702,7 @@ and values.
|
|
8702
8702
|
|
8703
8703
|
=head1 AUTHOR
|
8704
8704
|
|
8705
|
-
Copyright 2003-
|
8705
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
8706
8706
|
|
8707
8707
|
This library is free software; you can redistribute it and/or modify it
|
8708
8708
|
under the same terms as Perl itself.
|
@@ -989,7 +989,7 @@ and values.
|
|
989
989
|
|
990
990
|
=head1 AUTHOR
|
991
991
|
|
992
|
-
Copyright 2003-
|
992
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
993
993
|
|
994
994
|
This library is free software; you can redistribute it and/or modify it
|
995
995
|
under the same terms as Perl itself.
|
@@ -1032,7 +1032,7 @@ and values.
|
|
1032
1032
|
|
1033
1033
|
=head1 AUTHOR
|
1034
1034
|
|
1035
|
-
Copyright 2003-
|
1035
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
1036
1036
|
|
1037
1037
|
This library is free software; you can redistribute it and/or modify it
|
1038
1038
|
under the same terms as Perl itself.
|
@@ -4005,7 +4005,7 @@ and values.
|
|
4005
4005
|
|
4006
4006
|
=head1 AUTHOR
|
4007
4007
|
|
4008
|
-
Copyright 2003-
|
4008
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
4009
4009
|
|
4010
4010
|
This library is free software; you can redistribute it and/or modify it
|
4011
4011
|
under the same terms as Perl itself.
|
@@ -2878,7 +2878,7 @@ and values.
|
|
2878
2878
|
|
2879
2879
|
=head1 AUTHOR
|
2880
2880
|
|
2881
|
-
Copyright 2003-
|
2881
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
2882
2882
|
|
2883
2883
|
This library is free software; you can redistribute it and/or modify it
|
2884
2884
|
under the same terms as Perl itself.
|