exiftool-vendored.pl 12.49.0 → 12.54.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 +107 -6
- package/bin/MANIFEST +5 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +3 -3
- package/bin/exiftool +39 -30
- 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 +10 -7
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +26 -9
- 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 +11 -21
- 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 +20 -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 +14 -6
- 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 +3 -1
- package/bin/lib/Image/ExifTool/ID3.pm +1 -1
- package/bin/lib/Image/ExifTool/IPTC.pm +6 -2
- 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 +45 -2
- 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 +2 -2
- 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 +845 -355
- 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 +6 -4
- 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 +8 -3
- 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 +52 -9
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +95 -14
- package/bin/lib/Image/ExifTool/README +6 -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 +35 -20
- 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 +15 -8
- package/bin/lib/Image/ExifTool/TagLookup.pm +4672 -4568
- package/bin/lib/Image/ExifTool/TagNames.pod +357 -46
- 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 +25 -4
- package/bin/lib/Image/ExifTool/XMP2.pl +29 -2
- 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 +45 -20
- package/bin/lib/Image/ExifTool.pod +48 -46
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/pp_build_exe.args +6 -5
- package/package.json +3 -3
|
@@ -19,7 +19,7 @@ use strict;
|
|
|
19
19
|
use vars qw($VERSION $warnString);
|
|
20
20
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
21
21
|
|
|
22
|
-
$VERSION = '1.
|
|
22
|
+
$VERSION = '1.28';
|
|
23
23
|
|
|
24
24
|
sub WarnProc($) { $warnString = $_[0]; }
|
|
25
25
|
|
|
@@ -385,6 +385,18 @@ sub HandleMember($$;$)
|
|
|
385
385
|
$et->HandleTag($tagTablePtr, '_com', $com) if defined $com and length $com;
|
|
386
386
|
}
|
|
387
387
|
|
|
388
|
+
#------------------------------------------------------------------------------
|
|
389
|
+
# Extract file from ZIP archive
|
|
390
|
+
# Inputs: 0) ExifTool ref, 1) Zip object ref, 2) file name
|
|
391
|
+
# Returns: zip member or undef it it didn't exist
|
|
392
|
+
sub ExtractFile($$$)
|
|
393
|
+
{
|
|
394
|
+
my ($et, $zip, $file) = @_;
|
|
395
|
+
my $result = $zip->memberNamed($file);
|
|
396
|
+
$et->VPrint(1, " (Extracting '${file}' from zip archive)\n");
|
|
397
|
+
return $result;
|
|
398
|
+
}
|
|
399
|
+
|
|
388
400
|
#------------------------------------------------------------------------------
|
|
389
401
|
# Extract information from a ZIP file
|
|
390
402
|
# Inputs: 0) ExifTool object reference, 1) dirInfo reference
|
|
@@ -460,7 +472,7 @@ sub ProcessZIP($$)
|
|
|
460
472
|
# check for an Office Open file (DOCX, etc)
|
|
461
473
|
# --> read '[Content_Types].xml' to determine the file type
|
|
462
474
|
my ($mime, @members);
|
|
463
|
-
my $cType = $zip
|
|
475
|
+
my $cType = ExtractFile($et, $zip, '[Content_Types].xml');
|
|
464
476
|
if ($cType) {
|
|
465
477
|
($buff, $status) = $zip->contents($cType);
|
|
466
478
|
if (not $status and (
|
|
@@ -501,7 +513,7 @@ sub ProcessZIP($$)
|
|
|
501
513
|
}
|
|
502
514
|
|
|
503
515
|
# check for an Open Document, IDML or EPUB file
|
|
504
|
-
my $mType = $zip
|
|
516
|
+
my $mType = ExtractFile($et, $zip, 'mimetype');
|
|
505
517
|
if ($mType) {
|
|
506
518
|
($mime, $status) = $zip->contents($mType);
|
|
507
519
|
if (not $status and $mime =~ /([\x21-\xfe]+)/s) {
|
|
@@ -510,9 +522,9 @@ sub ProcessZIP($$)
|
|
|
510
522
|
$et->SetFileType($openDocType{$mime} || 'ZIP', $mime);
|
|
511
523
|
$et->Warn("Unrecognized MIMEType $mime") unless $openDocType{$mime};
|
|
512
524
|
# extract Open Document metadata from "meta.xml"
|
|
513
|
-
my $meta = $zip
|
|
525
|
+
my $meta = ExtractFile($et, $zip, 'meta.xml');
|
|
514
526
|
# IDML files have metadata in a different place (ref 6)
|
|
515
|
-
$meta or $meta = $zip
|
|
527
|
+
$meta or $meta = ExtractFile($et, $zip, 'META-INF/metadata.xml');
|
|
516
528
|
if ($meta) {
|
|
517
529
|
($buff, $status) = $zip->contents($meta);
|
|
518
530
|
unless ($status) {
|
|
@@ -532,7 +544,7 @@ sub ProcessZIP($$)
|
|
|
532
544
|
# process rootfile of EPUB container if applicable
|
|
533
545
|
for (;;) {
|
|
534
546
|
last if $meta and $mime ne 'application/epub+zip';
|
|
535
|
-
my $container = $zip
|
|
547
|
+
my $container = ExtractFile($et, $zip, 'META-INF/container.xml');
|
|
536
548
|
($buff, $status) = $zip->contents($container);
|
|
537
549
|
last if $status;
|
|
538
550
|
$buff =~ /<rootfile\s+[^>]*?\bfull-path=(['"])(.*?)\1/s or last;
|
|
@@ -570,7 +582,7 @@ sub ProcessZIP($$)
|
|
|
570
582
|
my $type;
|
|
571
583
|
my %tag = ( jpg => 'PreviewImage', png => 'PreviewPNG' );
|
|
572
584
|
foreach $type ('jpg', 'png') {
|
|
573
|
-
my $thumb = $zip
|
|
585
|
+
my $thumb = ExtractFile($et, $zip, "Thumbnails/thumbnail.$type");
|
|
574
586
|
next unless $thumb;
|
|
575
587
|
($buff, $status) = $zip->contents($thumb);
|
|
576
588
|
$et->FoundTag($tag{$type}, $buff) unless $status;
|
|
@@ -708,7 +720,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
|
|
|
708
720
|
|
|
709
721
|
=head1 AUTHOR
|
|
710
722
|
|
|
711
|
-
Copyright 2003-
|
|
723
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
712
724
|
|
|
713
725
|
This library is free software; you can redistribute it and/or modify it
|
|
714
726
|
under the same terms as Perl itself.
|
|
@@ -220,7 +220,7 @@ metadata from Zeiss Integrated Software RAW (ZISRAW) CZI files.
|
|
|
220
220
|
|
|
221
221
|
=head1 AUTHOR
|
|
222
222
|
|
|
223
|
-
Copyright 2003-
|
|
223
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
224
224
|
|
|
225
225
|
This library is free software; you can redistribute it and/or modify it
|
|
226
226
|
under the same terms as Perl itself.
|
|
@@ -215,7 +215,7 @@ information from Apple iWork '09 XML+ZIP files.
|
|
|
215
215
|
|
|
216
216
|
=head1 AUTHOR
|
|
217
217
|
|
|
218
|
-
Copyright 2003-
|
|
218
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
219
219
|
|
|
220
220
|
This library is free software; you can redistribute it and/or modify it
|
|
221
221
|
under the same terms as Perl itself.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Revisions: Nov. 12/2003 - P. Harvey Created
|
|
9
9
|
# (See html/history.html for revision history)
|
|
10
10
|
#
|
|
11
|
-
# Legal: Copyright (c) 2003-
|
|
11
|
+
# Legal: Copyright (c) 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
12
12
|
# This library is free software; you can redistribute it and/or
|
|
13
13
|
# modify it under the same terms as Perl itself.
|
|
14
14
|
#------------------------------------------------------------------------------
|
|
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars);
|
|
31
31
|
|
|
32
|
-
$VERSION = '12.
|
|
32
|
+
$VERSION = '12.54';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -116,6 +116,7 @@ sub SetPreferredByteOrder($;$);
|
|
|
116
116
|
sub CopyBlock($$$);
|
|
117
117
|
sub CopyFileAttrs($$$);
|
|
118
118
|
sub TimeNow(;$$);
|
|
119
|
+
sub InverseDateTime($$;$$);
|
|
119
120
|
sub NewGUID();
|
|
120
121
|
sub MakeTiffHeader($$$$;$$);
|
|
121
122
|
|
|
@@ -145,16 +146,16 @@ sub ReadValue($$$;$$$);
|
|
|
145
146
|
Samsung::Trailer Sony::SRF2 Sony::SR2SubIFD Sony::PMP ITC ID3 ID3::Lyrics3
|
|
146
147
|
FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC MPEG::Audio
|
|
147
148
|
MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile QuickTime::Stream
|
|
148
|
-
QuickTime::Tags360Fly Matroska MOI MXF DV Flash Flash::FLV
|
|
149
|
-
Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE
|
|
150
|
-
XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
|
|
151
|
-
EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard
|
|
152
|
-
VCard::VCalendar RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR RTF OOXML iWork ISO
|
|
149
|
+
QuickTime::Tags360Fly Matroska Matroska::Tags MOI MXF DV Flash Flash::FLV
|
|
150
|
+
Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE
|
|
151
|
+
JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
|
|
152
|
+
EXE::PEString EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard
|
|
153
|
+
Text VCard::VCalendar RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR RTF OOXML iWork ISO
|
|
153
154
|
FLIR::AFF FLIR::FPF MacOS MacOS::MDItem FlashPix::DocTable
|
|
154
155
|
);
|
|
155
156
|
|
|
156
157
|
# alphabetical list of current Lang modules
|
|
157
|
-
@langs = qw(cs de en en_ca en_gb es fi fr it ja ko nl pl ru sv tr zh_cn zh_tw);
|
|
158
|
+
@langs = qw(cs de en en_ca en_gb es fi fr it ja ko nl pl ru sk sv tr zh_cn zh_tw);
|
|
158
159
|
|
|
159
160
|
$defaultLang = 'en'; # default language
|
|
160
161
|
|
|
@@ -174,6 +175,7 @@ $defaultLang = 'en'; # default language
|
|
|
174
175
|
nl => 'Dutch (Nederlands)',
|
|
175
176
|
pl => 'Polish (Polski)',
|
|
176
177
|
ru => 'Russian (Русский)',
|
|
178
|
+
sk => 'Slovak (Slovenčina)',
|
|
177
179
|
sv => 'Swedish (Svenska)',
|
|
178
180
|
'tr'=> 'Turkish (Türkçe)',
|
|
179
181
|
zh_cn => 'Simplified Chinese (简体中文)',
|
|
@@ -603,6 +605,7 @@ my %fileDescription = (
|
|
|
603
605
|
CRM => 'video/x-canon-crm',
|
|
604
606
|
CRW => 'image/x-canon-crw',
|
|
605
607
|
CSV => 'text/csv',
|
|
608
|
+
CUR => 'image/x-cursor', #PH (NC)
|
|
606
609
|
CZI => 'image/x-zeiss-czi', #PH (NC)
|
|
607
610
|
DCP => 'application/octet-stream', #PH (NC)
|
|
608
611
|
DCR => 'image/x-kodak-dcr',
|
|
@@ -651,7 +654,7 @@ my %fileDescription = (
|
|
|
651
654
|
HDR => 'image/vnd.radiance',
|
|
652
655
|
HTML => 'text/html',
|
|
653
656
|
ICC => 'application/vnd.iccprofile',
|
|
654
|
-
ICO => '
|
|
657
|
+
ICO => 'image/x-icon', #PH (NC)
|
|
655
658
|
ICS => 'text/calendar',
|
|
656
659
|
IDML => 'application/vnd.adobe.indesign-idml-package',
|
|
657
660
|
IIQ => 'image/x-raw',
|
|
@@ -1806,6 +1809,16 @@ my %systemTagsNotes = (
|
|
|
1806
1809
|
Protected => 1,
|
|
1807
1810
|
},
|
|
1808
1811
|
PageCount => { Notes => 'the number of pages in a multi-page TIFF document' },
|
|
1812
|
+
SphericalVideoXML => {
|
|
1813
|
+
Groups => { 0 => 'QuickTime', 1 => 'GSpherical', 2 => 'Video' },
|
|
1814
|
+
# (group 1 is 'GSpherical' to trigger creation of this tag when writing,
|
|
1815
|
+
# but when reading the family 1 group is the track number)
|
|
1816
|
+
Flags => [ 'Writable', 'Binary', 'Protected' ],
|
|
1817
|
+
Notes => q{
|
|
1818
|
+
the SphericalVideoXML block from MP4/MOV videos. This tag is generated only
|
|
1819
|
+
if specifically requested
|
|
1820
|
+
},
|
|
1821
|
+
},
|
|
1809
1822
|
);
|
|
1810
1823
|
|
|
1811
1824
|
# tags defined by UserParam option (added at runtime)
|
|
@@ -2028,6 +2041,7 @@ sub new
|
|
|
2028
2041
|
$$self{DEL_GROUP} = { }; # lookup for groups to delete when writing
|
|
2029
2042
|
$$self{SAVE_COUNT} = 0; # count calls to SaveNewValues()
|
|
2030
2043
|
$$self{FILE_SEQUENCE} = 0; # sequence number for files when reading
|
|
2044
|
+
$$self{INDENT2} = ''; # indentation of verbose messages from SetNewValue
|
|
2031
2045
|
|
|
2032
2046
|
# initialize our new groups for writing
|
|
2033
2047
|
$self->SetNewGroups(@defaultWriteGroups);
|
|
@@ -3908,7 +3922,7 @@ sub CanCreate($)
|
|
|
3908
3922
|
#==============================================================================
|
|
3909
3923
|
# Functions below this are not part of the public API
|
|
3910
3924
|
|
|
3911
|
-
# Initialize member variables
|
|
3925
|
+
# Initialize member variables before reading or writing a new file
|
|
3912
3926
|
# Inputs: 0) ExifTool object reference
|
|
3913
3927
|
sub Init($)
|
|
3914
3928
|
{
|
|
@@ -4173,10 +4187,15 @@ sub Open($*$;$)
|
|
|
4173
4187
|
# handle Windows Unicode file name
|
|
4174
4188
|
local $SIG{'__WARN__'} = \&SetWarning;
|
|
4175
4189
|
my ($access, $create);
|
|
4176
|
-
if ($mode eq '>') {
|
|
4190
|
+
if ($mode eq '>' or $mode eq '>>') {
|
|
4177
4191
|
eval {
|
|
4178
4192
|
$access = Win32API::File::GENERIC_WRITE();
|
|
4179
|
-
$
|
|
4193
|
+
if ($mode eq '>>') {
|
|
4194
|
+
$access |= Win32API::File::FILE_APPEND_DATA();
|
|
4195
|
+
$create = Win32API::File::OPEN_ALWAYS();
|
|
4196
|
+
} else {
|
|
4197
|
+
$create = Win32API::File::CREATE_ALWAYS();
|
|
4198
|
+
}
|
|
4180
4199
|
}
|
|
4181
4200
|
} else {
|
|
4182
4201
|
eval {
|
|
@@ -4432,11 +4451,15 @@ sub ParseArguments($;@)
|
|
|
4432
4451
|
sub IsSameID($$)
|
|
4433
4452
|
{
|
|
4434
4453
|
my ($id, $grp) = @_;
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4454
|
+
for (;;) {
|
|
4455
|
+
return 1 if $grp eq $id; # decimal ID's or raw ID's
|
|
4456
|
+
if ($id =~ /^\d+$/) { # numerical numerical ID's may be in hex
|
|
4457
|
+
return 1 if $grp =~ s/^0x0*// and $grp eq sprintf('%x', $id);
|
|
4458
|
+
} else { # other ID's may conform to ExifTool group name conventions
|
|
4459
|
+
my $tmp = $id;
|
|
4460
|
+
return 1 if $tmp =~ s/([^-_A-Za-z0-9])/sprintf('%.2x',ord $1)/ge and $grp eq $tmp;
|
|
4461
|
+
}
|
|
4462
|
+
last unless $id =~ s/-.*//; # remove language code if it exists
|
|
4440
4463
|
}
|
|
4441
4464
|
return 0;
|
|
4442
4465
|
}
|
|
@@ -8263,15 +8286,17 @@ sub FoundTag($$$;@)
|
|
|
8263
8286
|
{
|
|
8264
8287
|
local $_;
|
|
8265
8288
|
my ($self, $tagInfo, $value, @grps) = @_;
|
|
8266
|
-
my ($tag, $noListDel);
|
|
8289
|
+
my ($tag, $noListDel, $tbl);
|
|
8267
8290
|
my $options = $$self{OPTIONS};
|
|
8268
8291
|
|
|
8269
8292
|
if (ref $tagInfo eq 'HASH') {
|
|
8270
8293
|
$tag = $$tagInfo{Name} or warn("No tag name\n"), return undef;
|
|
8294
|
+
$tbl = $$tagInfo{Table};
|
|
8271
8295
|
} else {
|
|
8272
8296
|
$tag = $tagInfo;
|
|
8273
8297
|
# look for tag in Extra
|
|
8274
|
-
$
|
|
8298
|
+
$tbl = GetTagTable('Image::ExifTool::Extra');
|
|
8299
|
+
$tagInfo = $self->GetTagInfo($tbl, $tag);
|
|
8275
8300
|
# make temporary hash if tag doesn't exist in Extra
|
|
8276
8301
|
# (not advised to do this since the tag won't show in list)
|
|
8277
8302
|
$tagInfo or $tagInfo = { Name => $tag, Groups => \%allGroupsExifTool };
|
|
@@ -8280,7 +8305,7 @@ sub FoundTag($$$;@)
|
|
|
8280
8305
|
# get tag priority
|
|
8281
8306
|
my $priority = $$tagInfo{Priority};
|
|
8282
8307
|
unless (defined $priority) {
|
|
8283
|
-
$priority = $$
|
|
8308
|
+
$priority = $$tbl{PRIORITY};
|
|
8284
8309
|
$priority = 0 if not defined $priority and $$tagInfo{Avoid};
|
|
8285
8310
|
}
|
|
8286
8311
|
$grps[0] or $grps[0] = $$self{SET_GROUP0};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
#
|
|
6
6
|
# URL: https://exiftool.org/
|
|
7
7
|
#
|
|
8
|
-
# Legal: Copyright (c) 2003-
|
|
8
|
+
# Legal: Copyright (c) 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
9
9
|
# This library is free software; you can redistribute it and/or
|
|
10
10
|
# modify it under the same terms as Perl itself.
|
|
11
11
|
#------------------------------------------------------------------------------
|
|
@@ -661,14 +661,15 @@ types of files to reduce memory usage when reading from a non-seekable
|
|
|
661
661
|
stream, and bypasses CRC validation for speed when writing PNG files. When
|
|
662
662
|
combined with the ScanForXMP option, prevents scanning for XMP in recognized
|
|
663
663
|
file types. With a value of 2, ExifTool will also avoid extracting any EXIF
|
|
664
|
-
MakerNote information, and will stop
|
|
665
|
-
images
|
|
666
|
-
|
|
667
|
-
otherwise.) When set to 3 or
|
|
668
|
-
are generated.
|
|
669
|
-
at FileType.
|
|
670
|
-
based on the file's extension.
|
|
671
|
-
|
|
664
|
+
MakerNote information, and will stop processing at the IDAT chunk of PNG
|
|
665
|
+
images and the mdat atom in QuickTime-format files. (By the PNG
|
|
666
|
+
specification, metadata is allowed after IDAT, but ExifTool always writes it
|
|
667
|
+
before because some utilities will ignore it otherwise.) When set to 3 or
|
|
668
|
+
higher, only pseudo system tags and FileType are generated. For 3, the file
|
|
669
|
+
header is read to provide an educated guess at FileType. For 4, the file is
|
|
670
|
+
not read at all and FileType is determined based on the file's extension.
|
|
671
|
+
For 5, generation of Composite tags is also disabled (like setting
|
|
672
|
+
L</Composite> to 0). Default is undef.
|
|
672
673
|
|
|
673
674
|
=item Filter
|
|
674
675
|
|
|
@@ -2322,43 +2323,44 @@ Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
|
|
|
2322
2323
|
=item Family 1 (Specific Location):
|
|
2323
2324
|
|
|
2324
2325
|
AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible,
|
|
2325
|
-
CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD,
|
|
2326
|
-
Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky,
|
|
2327
|
-
EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
|
|
2328
|
-
FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS,
|
|
2329
|
-
|
|
2330
|
-
HTML-
|
|
2331
|
-
ICC-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
MIE-
|
|
2338
|
-
MIE-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
Real
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2326
|
+
CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD,
|
|
2327
|
+
Casio, Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky,
|
|
2328
|
+
EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
|
|
2329
|
+
FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS,
|
|
2330
|
+
GSpherical, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC, HTML,
|
|
2331
|
+
HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm,
|
|
2332
|
+
ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
|
|
2333
|
+
ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
|
|
2334
|
+
IPTC, IPTC#, ISO, ITC, Insta360, InteropIFD, ItemList, JFIF, JFXX, JPEG,
|
|
2335
|
+
JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak,
|
|
2336
|
+
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
|
|
2337
|
+
LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera,
|
|
2338
|
+
MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image,
|
|
2339
|
+
MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,
|
|
2340
|
+
MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB, MNG, MOBI, MOI,
|
|
2341
|
+
MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown,
|
|
2342
|
+
Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw,
|
|
2343
|
+
Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, NikonSettings,
|
|
2344
|
+
NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG,
|
|
2345
|
+
PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot, Pentax, PhaseOne,
|
|
2346
|
+
PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD,
|
|
2347
|
+
PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
|
|
2348
|
+
Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4,
|
|
2349
|
+
Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD,
|
|
2350
|
+
SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,
|
|
2351
|
+
SubIFD, System, Theora, Torrent, Track#, UserData, VCalendar, VCard,
|
|
2352
|
+
Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
|
|
2353
|
+
XMP-GCamera, XMP-GCreations, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
|
|
2352
2354
|
XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
|
|
2353
|
-
XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
|
|
2354
|
-
XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam,
|
|
2355
|
-
XMP-
|
|
2356
|
-
XMP-
|
|
2357
|
-
XMP-
|
|
2358
|
-
XMP-
|
|
2359
|
-
XMP-
|
|
2360
|
-
XMP-
|
|
2361
|
-
ZIP, iTunes
|
|
2355
|
+
XMP-acdsee, XMP-album, XMP-apple-fi, XMP-ast, XMP-aux, XMP-cc, XMP-cell,
|
|
2356
|
+
XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam,
|
|
2357
|
+
XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia,
|
|
2358
|
+
XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-ics, XMP-iptcCore,
|
|
2359
|
+
XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw,
|
|
2360
|
+
XMP-mwg-rs, XMP-nine, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop,
|
|
2361
|
+
XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc,
|
|
2362
|
+
XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM,
|
|
2363
|
+
XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
|
2362
2364
|
|
|
2363
2365
|
=item Family 2 (Category):
|
|
2364
2366
|
|
|
@@ -2757,7 +2759,7 @@ specified by the L</Charset> option.
|
|
|
2757
2759
|
|
|
2758
2760
|
=head1 AUTHOR
|
|
2759
2761
|
|
|
2760
|
-
Copyright 2003-
|
|
2762
|
+
Copyright 2003-2023, Phil Harvey
|
|
2761
2763
|
|
|
2762
2764
|
This library is free software; you can redistribute it and/or modify it
|
|
2763
2765
|
under the same terms as Perl itself.
|
package/bin/pp_build_exe.args
CHANGED
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
# 10) Copy zip archive to web servers.
|
|
22
22
|
# 11) Update zip file version in link and text of html/index.html.
|
|
23
23
|
#------------------------------------------------------------------------------
|
|
24
|
-
-T exiftool-12.
|
|
25
|
-
#--info=FileVersion=12.4.
|
|
26
|
-
#--info=ProductVersion=12.4.
|
|
27
|
-
##"--info=Build Date=
|
|
24
|
+
-T exiftool-12.54
|
|
25
|
+
#--info=FileVersion=12.5.4.0
|
|
26
|
+
#--info=ProductVersion=12.5.4.0
|
|
27
|
+
##"--info=Build Date=2023:01:06 16:50:41-05:00"
|
|
28
28
|
##"--info=Bundled Perl Version=ActivePerl 5.24.0"
|
|
29
|
-
##"--info=LegalCopyright=Copyright (c) 2003-
|
|
29
|
+
##"--info=LegalCopyright=Copyright (c) 2003-2023, Phil Harvey"
|
|
30
30
|
##"--info=ProductName=ExifTool"
|
|
31
31
|
##"--info=Comments=ExifTool EXE for Windows"
|
|
32
32
|
##"--info=Home Page=https://exiftool.org/"
|
|
@@ -163,6 +163,7 @@
|
|
|
163
163
|
-M Image::ExifTool::Lang::nl
|
|
164
164
|
-M Image::ExifTool::Lang::pl
|
|
165
165
|
-M Image::ExifTool::Lang::ru
|
|
166
|
+
-M Image::ExifTool::Lang::sk
|
|
166
167
|
-M Image::ExifTool::Lang::sv
|
|
167
168
|
-M Image::ExifTool::Lang::tr
|
|
168
169
|
-M Image::ExifTool::Lang::zh_cn
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exiftool-vendored.pl",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.54.0",
|
|
4
4
|
"description": "Vendored perl ExifTool for Node.js",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"homepage": "https://github.com/mceachen/exiftool-vendored.pl#readme",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"mocha": "^10.
|
|
46
|
-
"prettier": "^2.
|
|
45
|
+
"mocha": "^10.2.0",
|
|
46
|
+
"prettier": "^2.8.2",
|
|
47
47
|
"rimraf": "^3.0.2"
|
|
48
48
|
}
|
|
49
49
|
}
|