exiftool-vendored.pl 12.50.0 → 12.55.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 +81 -3
- package/bin/MANIFEST +2 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +3 -3
- package/bin/exiftool +15 -12
- package/bin/fmt_files/kml_track.fmt +3 -3
- package/bin/lib/File/RandomAccess.pm +1 -1
- package/bin/lib/File/RandomAccess.pod +2 -2
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- 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 +197 -27
- 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 +1 -1
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +14 -2
- 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 +9 -9
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +4 -4
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +1 -1
- 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 +5 -16
- 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 +7 -6
- package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- 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 +21 -13
- 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 +12 -6
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +25 -8
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +2 -1
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +35 -8
- 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 +2 -2
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +6016 -760
- package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- 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 +1806 -0
- 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 +1 -1
- 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 +1 -1
- 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 +262 -46
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +687 -280
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +4 -3
- 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 +1 -1
- 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 +12 -7
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +9 -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 +1 -1
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- 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 +26 -7
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +166 -39
- package/bin/lib/Image/ExifTool/README +5 -1
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Samsung.pm +3 -1
- 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 +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Sony.pm +7 -7
- 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 +13 -8
- package/bin/lib/Image/ExifTool/TagLookup.pm +4608 -4512
- package/bin/lib/Image/ExifTool/TagNames.pod +323 -43
- 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/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteExif.pl +14 -1
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +5 -1
- 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 +30 -14
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
- package/bin/lib/Image/ExifTool/Writer.pl +35 -15
- package/bin/lib/Image/ExifTool/XMP.pm +23 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +20 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +20 -8
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +38 -16
- package/bin/lib/Image/ExifTool.pod +39 -38
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/pp_build_exe.args +6 -5
- package/package.json +4 -4
|
@@ -541,7 +541,7 @@ write GIF meta information.
|
|
|
541
541
|
|
|
542
542
|
=head1 AUTHOR
|
|
543
543
|
|
|
544
|
-
Copyright 2003-
|
|
544
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
545
545
|
|
|
546
546
|
This library is free software; you can redistribute it and/or modify it
|
|
547
547
|
under the same terms as Perl itself.
|
|
@@ -270,7 +270,7 @@ GIMP software.
|
|
|
270
270
|
|
|
271
271
|
=head1 AUTHOR
|
|
272
272
|
|
|
273
|
-
Copyright 2003-
|
|
273
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
274
274
|
|
|
275
275
|
This library is free software; you can redistribute it and/or modify it
|
|
276
276
|
under the same terms as Perl itself.
|
|
@@ -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.70';
|
|
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
|
|
@@ -206,7 +210,7 @@ sub LoadTrackLog($$;$)
|
|
|
206
210
|
my $fix = { };
|
|
207
211
|
my $csvDelim = $et->Options('CSVDelim');
|
|
208
212
|
$csvDelim = ',' unless defined $csvDelim;
|
|
209
|
-
my (@saveFix, $timeSpan);
|
|
213
|
+
my (@saveFix, @saveTime, $timeSpan);
|
|
210
214
|
for (;;) {
|
|
211
215
|
$raf->ReadLine($_) or last;
|
|
212
216
|
# determine file format
|
|
@@ -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");
|
|
@@ -351,8 +357,13 @@ sub LoadTrackLog($$;$)
|
|
|
351
357
|
}
|
|
352
358
|
# read KML "Point" coordinates
|
|
353
359
|
@$fix{'lon','lat','alt'} = split ',', $1;
|
|
360
|
+
$$has{alt} = 1 if $$fix{alt};
|
|
354
361
|
} else {
|
|
355
|
-
$$fix{
|
|
362
|
+
if ($tok eq 'when' and $$fix{'time'}) {
|
|
363
|
+
push @saveTime, $1; # flightaware KML stores times in array
|
|
364
|
+
} else {
|
|
365
|
+
$$fix{$tag} = $1;
|
|
366
|
+
}
|
|
356
367
|
if ($isOrient{$tag}) {
|
|
357
368
|
$$has{orient} = 1;
|
|
358
369
|
} elsif ($tag eq 'alt') {
|
|
@@ -369,7 +380,11 @@ sub LoadTrackLog($$;$)
|
|
|
369
380
|
$td = 1;
|
|
370
381
|
}
|
|
371
382
|
# validate and store GPS fix
|
|
372
|
-
next unless defined $$fix{lat} and defined $$fix{lon}
|
|
383
|
+
next unless defined $$fix{lat} and defined $$fix{lon};
|
|
384
|
+
unless (defined $$fix{'time'}) {
|
|
385
|
+
next unless @saveTime;
|
|
386
|
+
$$fix{'time'} = shift @saveTime; # get next time in flightaware KML list
|
|
387
|
+
}
|
|
373
388
|
unless ($$fix{lat} =~ /^[+-]?\d+\.?\d*/ and $$fix{lon} =~ /^[+-]?\d+\.?\d*/) {
|
|
374
389
|
$e0 or $et->VPrint(0, "Coordinate format error in $from\n"), $e0 = 1;
|
|
375
390
|
next;
|
|
@@ -496,6 +511,7 @@ DoneFix: $isDate = 1;
|
|
|
496
511
|
$secs = $val;
|
|
497
512
|
} else {
|
|
498
513
|
$$fix{$param} = $val;
|
|
514
|
+
$$has{$param} = 1 if $sepTags{$param};
|
|
499
515
|
}
|
|
500
516
|
}
|
|
501
517
|
# make coordinate negative according to reference direction if necessary
|
|
@@ -1101,6 +1117,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
|
1101
1117
|
next unless defined $v0 and defined $v1;
|
|
1102
1118
|
$f = $f0b;
|
|
1103
1119
|
} else {
|
|
1120
|
+
next if $sepTags{$key}; # (don't scan outwards for some formats, eg. CSV)
|
|
1104
1121
|
# scan outwards looking for fixes with the required information
|
|
1105
1122
|
# (NOTE: SHOULD EVENTUALLY DO THIS FOR EXTRAPOLATION TOO!)
|
|
1106
1123
|
my ($t0b, $t1b);
|
|
@@ -1127,8 +1144,8 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
|
|
|
1127
1144
|
# 360 degrees to the smaller angle before interpolating
|
|
1128
1145
|
$v0 < $v1 ? $v0 += 360 : $v1 += 360;
|
|
1129
1146
|
$$fix{$key} = $v1 * $f + $v0 * (1 - $f);
|
|
1130
|
-
#
|
|
1131
|
-
my $max =
|
|
1147
|
+
# some ranges are -180 to 180, others are 0 to 360
|
|
1148
|
+
my $max = $cyc180{$key} ? 180 : 360;
|
|
1132
1149
|
$$fix{$key} -= 360 if $$fix{$key} >= $max;
|
|
1133
1150
|
} else {
|
|
1134
1151
|
# simple linear interpolation
|
|
@@ -1444,7 +1461,7 @@ user-defined tag GPSRoll, must be active.
|
|
|
1444
1461
|
|
|
1445
1462
|
=head1 AUTHOR
|
|
1446
1463
|
|
|
1447
|
-
Copyright 2003-
|
|
1464
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
1448
1465
|
|
|
1449
1466
|
This library is free software; you can redistribute it and/or modify it
|
|
1450
1467
|
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.
|