exiftool_vendored 13.08.0 → 13.12.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 +60 -2
- 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 +229 -158
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool/AAC.pm +1 -1
- 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 +10 -8
- 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 +14 -6
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +8 -4
- data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +1 -1
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +96 -45
- 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 +123 -32
- data/bin/lib/Image/ExifTool/Exif.pm +7 -4
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +1 -1
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- 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 +81 -2
- 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 +8 -5
- 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 +5 -4
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -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 +3 -2
- 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 +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/LigoGPS.pm +408 -0
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +22 -13
- 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 +12 -4
- 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 +164 -35
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonSettings.pm +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 +1 -1
- 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 +3 -3
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +3 -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 +20 -2
- 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 +2 -1
- data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Protobuf.pm +24 -14
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +94 -26
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +20 -302
- data/bin/lib/Image/ExifTool/README +4 -0
- 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 +1 -1
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +1 -1
- 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 +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +14 -5
- data/bin/lib/Image/ExifTool/TagNames.pod +106 -34
- 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/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +48 -12
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +25 -13
- data/bin/lib/Image/ExifTool/XISF.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +20 -11
- data/bin/lib/Image/ExifTool.pod +55 -40
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -482,23 +482,26 @@ sub WriteKeys($$$)
|
|
482
482
|
sub WriteItemInfo($$$)
|
483
483
|
{
|
484
484
|
my ($et, $dirInfo, $outfile) = @_;
|
485
|
-
my $boxPos = $$dirInfo{BoxPos};
|
485
|
+
my $boxPos = $$dirInfo{BoxPos}; # hash of [position,length,irefVer(iref only)] for box in $outfile
|
486
486
|
my $raf = $$et{RAF};
|
487
487
|
my $items = $$et{ItemInfo};
|
488
|
-
my (%did, @mdatEdit, $name);
|
488
|
+
my (%did, @mdatEdit, $name, $tmap);
|
489
489
|
|
490
490
|
return () unless $items and $raf;
|
491
491
|
|
492
492
|
# extract information from EXIF/XMP metadata items
|
493
493
|
my $primary = $$et{PrimaryItem};
|
494
494
|
my $curPos = $raf->Tell();
|
495
|
+
my $lastID = 0;
|
495
496
|
my $id;
|
496
497
|
foreach $id (sort { $a <=> $b } keys %$items) {
|
498
|
+
$lastID = $id;
|
497
499
|
$primary = $id unless defined $primary; # assume primary is lowest-number item if pitm missing
|
498
500
|
my $item = $$items{$id};
|
499
501
|
# only edit primary EXIF/XMP metadata
|
500
502
|
next unless $$item{RefersTo} and $$item{RefersTo}{$primary};
|
501
503
|
my $type = $$item{ContentType} || $$item{Type} || next;
|
504
|
+
$tmap = $id if $type eq 'tmap'; # save ID of primary 'tmap' item (tone-mapped image)
|
502
505
|
# get ExifTool name for this item
|
503
506
|
$name = { Exif => 'EXIF', 'application/rdf+xml' => 'XMP' }->{$type};
|
504
507
|
next unless $name; # only care about EXIF and XMP
|
@@ -553,6 +556,7 @@ sub WriteItemInfo($$$)
|
|
553
556
|
}
|
554
557
|
}
|
555
558
|
my ($hdr, $subTable, $proc);
|
559
|
+
my $strt = 0;
|
556
560
|
if ($name eq 'EXIF') {
|
557
561
|
if (not length $buff) {
|
558
562
|
# create EXIF from scratch
|
@@ -562,6 +566,7 @@ sub WriteItemInfo($$$)
|
|
562
566
|
$hdr = '';
|
563
567
|
} elsif (length($buff) >= 4 and length($buff) >= 4 + unpack('N',$buff)) {
|
564
568
|
$hdr = substr($buff, 0, 4 + unpack('N',$buff));
|
569
|
+
$strt = length $hdr;
|
565
570
|
} else {
|
566
571
|
$et->Warn('Invalid Exif header');
|
567
572
|
next;
|
@@ -575,8 +580,8 @@ sub WriteItemInfo($$$)
|
|
575
580
|
my %dirInfo = (
|
576
581
|
DataPt => \$buff,
|
577
582
|
DataLen => length $buff,
|
578
|
-
DirStart =>
|
579
|
-
DirLen => length($buff) -
|
583
|
+
DirStart => $strt,
|
584
|
+
DirLen => length($buff) - $strt,
|
580
585
|
);
|
581
586
|
my $changed = $$et{CHANGED};
|
582
587
|
my $newVal = $et->WriteDirectory(\%dirInfo, $subTable, $proc);
|
@@ -700,8 +705,10 @@ sub WriteItemInfo($$$)
|
|
700
705
|
$type = "Exif\0";
|
701
706
|
$mime = '';
|
702
707
|
}
|
703
|
-
my $id =
|
704
|
-
|
708
|
+
my $id = ++$lastID; # use next highest available ID (so ID's in iinf are in order)
|
709
|
+
#[retracted] # create new item information hash to save infe box in case we need it for sorting
|
710
|
+
#[retracted] my $item = $$items{$id} = { };
|
711
|
+
# add new infe entry to iinf box
|
705
712
|
my $n = length($type) + length($mime) + length($enc) + 16;
|
706
713
|
if ($id < 0x10000) {
|
707
714
|
$add{iinf} .= pack('Na4CCCCnn', $n, 'infe', 2, 0, 0, 1, $id, 0) . $type . $mime . $enc;
|
@@ -709,11 +716,14 @@ sub WriteItemInfo($$$)
|
|
709
716
|
$n += 2;
|
710
717
|
$add{iinf} .= pack('Na4CCCCNn', $n, 'infe', 3, 0, 0, 1, $id, 0) . $type . $mime . $enc;
|
711
718
|
}
|
712
|
-
# add
|
719
|
+
#[retracted] $add{iinf} .= $$item{infe};
|
720
|
+
# add new cdsc to iref (also refer to primary 'tmap' if it exists)
|
713
721
|
if ($irefVer) {
|
714
|
-
$
|
722
|
+
my ($fmt, $siz, $num) = defined $tmap ? ('N', 22, 2) : ('', 18, 1);
|
723
|
+
$add{iref} .= pack('Na4NnN'.$fmt, $siz, 'cdsc', $id, $num, $primary, $tmap);
|
715
724
|
} else {
|
716
|
-
$
|
725
|
+
my ($fmt, $siz, $num) = defined $tmap ? ('n', 16, 2) : ('', 14, 1);
|
726
|
+
$add{iref} .= pack('Na4nnn'.$fmt, $siz, 'cdsc', $id, $num, $primary, $tmap);
|
717
727
|
}
|
718
728
|
# add new entry to iloc table (see ISO14496-12:2015 pg.79)
|
719
729
|
my $ilocVer = Get8u($outfile, $$boxPos{iloc}[0] + 8);
|
@@ -778,8 +788,9 @@ sub WriteItemInfo($$$)
|
|
778
788
|
my $added = 0;
|
779
789
|
my $tag;
|
780
790
|
foreach $tag (sort { $$boxPos{$a}[0] <=> $$boxPos{$b}[0] } keys %$boxPos) {
|
791
|
+
$$boxPos{$tag}[0] += $added;
|
781
792
|
next unless $add{$tag};
|
782
|
-
my $pos = $$boxPos{$tag}[0]
|
793
|
+
my $pos = $$boxPos{$tag}[0];
|
783
794
|
unless ($$boxPos{$tag}[1]) {
|
784
795
|
$tag eq 'iref' or $et->Error('Internal error adding iref box'), last;
|
785
796
|
# create new iref box
|
@@ -826,9 +837,34 @@ sub WriteItemInfo($$$)
|
|
826
837
|
}
|
827
838
|
# add new entries to this box (or add pitm after hdlr)
|
828
839
|
substr($$outfile, $pos + $$boxPos{$tag}[1], 0) = $add{$tag};
|
840
|
+
$$boxPos{$tag}[1] += length $add{$tag};
|
829
841
|
$added += length $add{$tag}; # positions are shifted by length of new entries
|
830
842
|
}
|
831
843
|
}
|
844
|
+
#[This sorting idea was retracted because just sorting 'iinf' wasn't sufficient to
|
845
|
+
# repair the problem where an out-of-order ID was added -- Apple Preview still
|
846
|
+
# ignores the gain-map image. It looks like either or both 'iref' and 'iloc' must
|
847
|
+
# also be sorted by ID, although the spec doesn't mention this]
|
848
|
+
#[retracted] # sort infe entries in iinf box if necessary
|
849
|
+
#[retracted] if ($$et{ItemsNotSorted}) {
|
850
|
+
#[retracted] if ($$boxPos{iinf}) {
|
851
|
+
#[retracted] my $iinfVer = Get8u($outfile, $$boxPos{iinf}[0] + 8);
|
852
|
+
#[retracted] my $off = $iinfVer == 0 ? 14 : 16; # offset to first infe item
|
853
|
+
#[retracted] my $sorted = ''; # sorted iinf payload
|
854
|
+
#[retracted] $sorted .= $$items{$_}{infe} || '' foreach sort { $a <=> $b } keys %$items;
|
855
|
+
#[retracted] if (length $sorted == $$boxPos{iinf}[1]-$off) {
|
856
|
+
#[retracted] # replace with sorted infe entries
|
857
|
+
#[retracted] substr($$outfile, $$boxPos{iinf}[0] + $off, length $sorted) = $sorted;
|
858
|
+
#[retracted] $et->Warn('Item info entries are out of order. Fixed.');
|
859
|
+
#[retracted] ++$$et{CHANGED};
|
860
|
+
#[retracted] } else {
|
861
|
+
#[retracted] $et->Warn('Error sorting item info entries');
|
862
|
+
#[retracted] }
|
863
|
+
#[retracted] } else {
|
864
|
+
#[retracted] $et->Warn('Item info entries are out of order');
|
865
|
+
#[retracted] }
|
866
|
+
#[retracted] delete $$et{ItemsNotSorted};
|
867
|
+
#[retracted] }
|
832
868
|
delete $$et{ItemInfo};
|
833
869
|
return @mdatEdit ? \@mdatEdit : undef;
|
834
870
|
}
|
@@ -1129,7 +1165,7 @@ sub WriteQuickTime($$$)
|
|
1129
1165
|
next;
|
1130
1166
|
}
|
1131
1167
|
}
|
1132
|
-
undef $tagInfo if $tagInfo and $$tagInfo{
|
1168
|
+
undef $tagInfo if $tagInfo and $$tagInfo{AddedUnknown};
|
1133
1169
|
|
1134
1170
|
if ($tagInfo and (not defined $$tagInfo{Writable} or $$tagInfo{Writable})) {
|
1135
1171
|
my $subdir = $$tagInfo{SubDirectory};
|
@@ -2100,7 +2136,7 @@ QuickTime-based file formats like MOV and MP4.
|
|
2100
2136
|
|
2101
2137
|
=head1 AUTHOR
|
2102
2138
|
|
2103
|
-
Copyright 2003-
|
2139
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
2104
2140
|
|
2105
2141
|
This library is free software; you can redistribute it and/or modify it
|
2106
2142
|
under the same terms as Perl itself.
|
@@ -372,7 +372,7 @@ Currently writes only WebP files.
|
|
372
372
|
|
373
373
|
=head1 AUTHOR
|
374
374
|
|
375
|
-
Copyright 2003-
|
375
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
376
376
|
|
377
377
|
This library is free software; you can redistribute it and/or modify it
|
378
378
|
under the same terms as Perl itself.
|
@@ -1651,7 +1651,7 @@ This file contains routines to write XMP metadata.
|
|
1651
1651
|
|
1652
1652
|
=head1 AUTHOR
|
1653
1653
|
|
1654
|
-
Copyright 2003-
|
1654
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
1655
1655
|
|
1656
1656
|
This library is free software; you can redistribute it and/or modify it
|
1657
1657
|
under the same terms as Perl itself.
|
@@ -1297,12 +1297,13 @@ sub SetNewValuesFromFile($$;@)
|
|
1297
1297
|
foreach (qw(ByteUnit Charset CharsetEXIF CharsetFileName CharsetID3 CharsetIPTC
|
1298
1298
|
CharsetPhotoshop Composite DateFormat Debug EncodeHangs Escape ExtendedXMP
|
1299
1299
|
ExtractEmbedded FastScan Filter FixBase Geolocation GeolocAltNames
|
1300
|
-
GeolocFeature GeolocMinPop GeolocMaxDist GlobalTimeShift
|
1301
|
-
IgnoreGroups IgnoreMinorErrors IgnoreTags ImageHashType Lang
|
1302
|
-
LargeFileSupport LigoGPSScale ListItem ListSep MDItemTags
|
1303
|
-
NoPDFList NoWarning Password PrintConv QuickTimeUTC
|
1304
|
-
SavePath ScanForXMP StructFormat SystemTags
|
1305
|
-
Validate WindowsLongPath WindowsWideFile
|
1300
|
+
GeolocFeature GeolocMinPop GeolocMaxDist GlobalTimeShift GPSQuadrant
|
1301
|
+
HexTagIDs IgnoreGroups IgnoreMinorErrors IgnoreTags ImageHashType Lang
|
1302
|
+
LargeFileSupport LigoGPSScale ListItem ListSep MDItemTags
|
1303
|
+
MissingTagValue NoPDFList NoWarning Password PrintConv QuickTimeUTC
|
1304
|
+
RequestTags SaveFormat SavePath ScanForXMP StructFormat SystemTags
|
1305
|
+
TimeZone Unknown UserParam Validate WindowsLongPath WindowsWideFile
|
1306
|
+
XAttrTags XMPAutoConv))
|
1306
1307
|
{
|
1307
1308
|
$srcExifTool->Options($_ => $$options{$_});
|
1308
1309
|
}
|
@@ -4993,7 +4994,7 @@ my $strptimeLib; # strptime library name if available
|
|
4993
4994
|
sub InverseDateTime($$;$$)
|
4994
4995
|
{
|
4995
4996
|
my ($self, $val, $tzFlag, $dateOnly) = @_;
|
4996
|
-
my ($rtnVal, $tz);
|
4997
|
+
my ($rtnVal, $tz, $fs);
|
4997
4998
|
my $fmt = $$self{OPTIONS}{DateFormat};
|
4998
4999
|
# strip off timezone first if it exists
|
4999
5000
|
if (not $fmt and $val =~ s/([-+])(\d{1,2}):?(\d{2})\s*(DST)?$//i) {
|
@@ -5019,8 +5020,17 @@ sub InverseDateTime($$;$$)
|
|
5019
5020
|
$strptimeLib = '';
|
5020
5021
|
}
|
5021
5022
|
}
|
5022
|
-
# handle
|
5023
|
-
|
5023
|
+
# handle fractional seconds (%f) and time zone (%z)
|
5024
|
+
($fs, $tz) = ('', '');
|
5025
|
+
if ($fmt =~ /%(f|:?z)/) {
|
5026
|
+
if ($fmt =~ s/(.*[^%])%f/$1/) {
|
5027
|
+
$fs = $2 if $val =~ s/(.*)(\.\d+)/$1/; # (take last .### as fractional seconds)
|
5028
|
+
}
|
5029
|
+
if ($fmt =~ s/(.*[^%])%(:?)z/$1/) {
|
5030
|
+
my $colon = $2;
|
5031
|
+
$tz = "$2:$3" if $val =~ s/(.*)([-+]\d{2})$colon(\d{2})/$1/;
|
5032
|
+
}
|
5033
|
+
}
|
5024
5034
|
my ($lib, $wrn, @a);
|
5025
5035
|
TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
5026
5036
|
# handle %s format ourself (not supported in Fedora, see forum15032)
|
@@ -5065,7 +5075,7 @@ TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
|
5065
5075
|
$a[$i] = "0$a[$i]"; # pad to 2 digits if necessary
|
5066
5076
|
}
|
5067
5077
|
}
|
5068
|
-
$val = join(':', @a[5,4,3]) . ' ' . join(':', @a[2,1,0]) . $fs;
|
5078
|
+
$val = join(':', @a[5,4,3]) . ' ' . join(':', @a[2,1,0]) . $fs . $tz;
|
5069
5079
|
last;
|
5070
5080
|
}
|
5071
5081
|
}
|
@@ -5077,7 +5087,9 @@ TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
|
5077
5087
|
my $ss = $a[4]; # get SS
|
5078
5088
|
push @a, '00' while @a < 5; # add MM, SS if not given
|
5079
5089
|
# get sub-seconds if they exist (must be after SS, and have leading ".")
|
5080
|
-
|
5090
|
+
unless ($fmt) {
|
5091
|
+
$fs = (@a > 5 and $val =~ /(\.\d+)\s*$/) ? $1 : '';
|
5092
|
+
}
|
5081
5093
|
# add/remove timezone if necessary
|
5082
5094
|
if ($tzFlag) {
|
5083
5095
|
if (not $tz) {
|
@@ -6976,7 +6988,7 @@ sub SetFileTime($$;$$$$)
|
|
6976
6988
|
$mtime = $m unless defined $mtime;
|
6977
6989
|
$success = eval { utime($atime, $mtime, $file) } if defined $atime and defined $mtime;
|
6978
6990
|
}
|
6979
|
-
$self->Warn('Error
|
6991
|
+
$self->Warn('Error updating file time') unless $success;
|
6980
6992
|
return $success;
|
6981
6993
|
}
|
6982
6994
|
$saveFile = $file;
|
@@ -7365,7 +7377,7 @@ used routines.
|
|
7365
7377
|
|
7366
7378
|
=head1 AUTHOR
|
7367
7379
|
|
7368
|
-
Copyright 2003-
|
7380
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
7369
7381
|
|
7370
7382
|
This library is free software; you can redistribute it and/or modify it
|
7371
7383
|
under the same terms as Perl itself.
|
@@ -163,7 +163,7 @@ information from XISF (Extensible Image Serialization Format) images.
|
|
163
163
|
|
164
164
|
=head1 AUTHOR
|
165
165
|
|
166
|
-
Copyright 2003-
|
166
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
167
167
|
|
168
168
|
This library is free software; you can redistribute it and/or modify it
|
169
169
|
under the same terms as Perl itself.
|
@@ -4582,7 +4582,7 @@ information.
|
|
4582
4582
|
|
4583
4583
|
=head1 AUTHOR
|
4584
4584
|
|
4585
|
-
Copyright 2003-
|
4585
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
4586
4586
|
|
4587
4587
|
This library is free software; you can redistribute it and/or modify it
|
4588
4588
|
under the same terms as Perl itself.
|
@@ -2427,7 +2427,7 @@ This file contains definitions for less common XMP namespaces.
|
|
2427
2427
|
|
2428
2428
|
=head1 AUTHOR
|
2429
2429
|
|
2430
|
-
Copyright 2003-
|
2430
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
2431
2431
|
|
2432
2432
|
This library is free software; you can redistribute it and/or modify it
|
2433
2433
|
under the same terms as Perl itself.
|
@@ -944,7 +944,7 @@ information.
|
|
944
944
|
|
945
945
|
=head1 AUTHOR
|
946
946
|
|
947
|
-
Copyright 2003-
|
947
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
948
948
|
|
949
949
|
This library is free software; you can redistribute it and/or modify it
|
950
950
|
under the same terms as Perl itself.
|
@@ -840,7 +840,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
|
|
840
840
|
|
841
841
|
=head1 AUTHOR
|
842
842
|
|
843
|
-
Copyright 2003-
|
843
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
844
844
|
|
845
845
|
This library is free software; you can redistribute it and/or modify it
|
846
846
|
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-2025, 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-2025, 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.
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -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-2025, 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 $advFmtSelf);
|
31
31
|
|
32
|
-
$VERSION = '13.
|
32
|
+
$VERSION = '13.12';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -154,10 +154,10 @@ sub ReadValue($$$;$$$);
|
|
154
154
|
Matroska::StdTag MOI MXF DV Flash Flash::FLV Real::Media Real::Audio
|
155
155
|
Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS XISF MIE JSON HTML XMP::SVG
|
156
156
|
Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
|
157
|
-
EXE::
|
158
|
-
VCard::VCalendar VCard::VNote RSRC Rawzor ZIP
|
159
|
-
RTF OOXML iWork ISO FLIR::AFF FLIR::FPF MacOS
|
160
|
-
FlashPix::DocTable
|
157
|
+
EXE::DebugRSDS EXE::DebugNB10 EXE::Misc EXE::MachO EXE::PEF EXE::ELF EXE::AR
|
158
|
+
EXE::CHM LNK Font VCard Text VCard::VCalendar VCard::VNote RSRC Rawzor ZIP
|
159
|
+
ZIP::GZIP ZIP::RAR ZIP::RAR5 RTF OOXML iWork ISO FLIR::AFF FLIR::FPF MacOS
|
160
|
+
MacOS::MDItem FlashPix::DocTable
|
161
161
|
);
|
162
162
|
|
163
163
|
# alphabetical list of current Lang modules
|
@@ -1126,6 +1126,7 @@ my @availableOptions = (
|
|
1126
1126
|
[ 'GeoMinSats', undef, 'geotag minimum satellites' ],
|
1127
1127
|
[ 'GeoSpeedRef', undef, 'geotag GPSSpeedRef' ],
|
1128
1128
|
[ 'GlobalTimeShift', undef, 'apply time shift to all extracted date/time values' ],
|
1129
|
+
[ 'GPSQuadrant', undef, 'quadrant for GPS if not otherwise known' ],
|
1129
1130
|
[ 'Group#', undef, 'return tags for specified groups in family #' ],
|
1130
1131
|
[ 'HexTagIDs', 0, 'use hex tag ID\'s in family 7 group names' ],
|
1131
1132
|
[ 'HtmlDump', 0, 'HTML dump (0-3, higher # = bigger limit)' ],
|
@@ -2500,6 +2501,7 @@ sub Options($$;@)
|
|
2500
2501
|
}
|
2501
2502
|
} elsif ($param =~ /^(IgnoreTags|IgnoreGroups)$/) {
|
2502
2503
|
if (defined $newVal) {
|
2504
|
+
ref $newVal eq 'HASH' and $$options{$param} = $newVal, next;
|
2503
2505
|
# parse list from delimited string if necessary
|
2504
2506
|
my @ignoreList = (ref $newVal eq 'ARRAY') ? @$newVal : ($newVal =~ /[-\w?*:#]+/g);
|
2505
2507
|
ExpandShortcuts(\@ignoreList) if $param eq 'IgnoreTags';
|
@@ -6551,11 +6553,13 @@ sub ConvertDateTime($$)
|
|
6551
6553
|
$fmt =~ s/(^|[^%])((%%)*)%-?\.?\d*f/$1$2$frac/g;
|
6552
6554
|
}
|
6553
6555
|
# parse %z and %s ourself (to handle time zones properly)
|
6554
|
-
if ($fmt =~
|
6556
|
+
if ($fmt =~ /%:?[sz]/) {
|
6555
6557
|
# use system time zone unless otherwise specified
|
6556
6558
|
$tz = TimeZoneString(\@a, TimeLocal(@a)) if not $tz and eval { require Time::Local };
|
6557
6559
|
# remove colon, setting to UTC if time zone is not numeric
|
6558
|
-
$tz =
|
6560
|
+
$tz = '+00:00' unless $tz and $tz=~/^[-+]\d{2}:\d{2}$/;
|
6561
|
+
$fmt =~ s/(^|[^%])((%%)*)%:z/$1$2$tz/g; # convert '%:z' format codes
|
6562
|
+
$tz =~ s/://;
|
6559
6563
|
$fmt =~ s/(^|[^%])((%%)*)%z/$1$2$tz/g; # convert '%z' format codes
|
6560
6564
|
if ($fmt =~ /%s/ and eval { require Time::Local }) {
|
6561
6565
|
# calculate seconds since the Epoch, UTC
|
@@ -8374,7 +8378,11 @@ sub DoProcessTIFF($$;$)
|
|
8374
8378
|
# save a copy of the EXIF data
|
8375
8379
|
my $dirStart = $$dirInfo{DirStart} || 0;
|
8376
8380
|
my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $dirStart);
|
8377
|
-
|
8381
|
+
if ($dirLen > 0 or not $outfile) {
|
8382
|
+
$$self{EXIF_DATA} = substr($$dataPt, $dirStart, $dirLen);
|
8383
|
+
} else {
|
8384
|
+
delete $$self{EXIF_DATA}; # create from scratch;
|
8385
|
+
}
|
8378
8386
|
$self->VerboseDir('TIFF') if $$self{OPTIONS}{Verbose} and length($$self{INDENT}) > 2;
|
8379
8387
|
} elsif ($outfile) {
|
8380
8388
|
delete $$self{EXIF_DATA}; # create from scratch
|
@@ -8961,8 +8969,9 @@ sub GetTagInfo($$$;$$$)
|
|
8961
8969
|
next;
|
8962
8970
|
}
|
8963
8971
|
}
|
8964
|
-
# don't return Unknown tags unless that option is set (also see forum13716)
|
8965
|
-
if ($$tagInfo{Unknown} and not $$options{Unknown} and
|
8972
|
+
# don't return Unknown tags unless that option is set or we are writing (also see forum13716)
|
8973
|
+
if ($$tagInfo{Unknown} and not $$options{Unknown} and
|
8974
|
+
(not $$self{IsWriting} or $$tagInfo{AddedUnknown}) and not
|
8966
8975
|
($$options{Verbose} or $$self{HTML_DUMP} or
|
8967
8976
|
($$options{Validate} and not $$tagInfo{AddedUnknown})))
|
8968
8977
|
{
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
# URL: https://exiftool.org/
|
7
7
|
#
|
8
|
-
# Legal: Copyright (c) 2003-
|
8
|
+
# Legal: Copyright (c) 2003-2025, 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
|
#------------------------------------------------------------------------------
|
@@ -613,8 +613,10 @@ different when copying tags with L</SetNewValuesFromFile>.
|
|
613
613
|
Format for printing date/time values. See C<strftime> in the L<POSIX>
|
614
614
|
package and L<https://exiftool.org/filename.html#codes> for details about
|
615
615
|
the format string. If the date can not be converted, the value is left
|
616
|
-
unchanged unless the StrictDate option is set.
|
617
|
-
|
616
|
+
unchanged unless the StrictDate option is set. ExifTool adds a few
|
617
|
+
additional format specifiers (C<%f>, C<%s> and C<%z>), see
|
618
|
+
L<https://exiftool.org/filename.html#codes> for more details. The inverse
|
619
|
+
conversion (ie. when calling L</SetNewValue>) is performed only if
|
618
620
|
POSIX::strptime or Time::Piece is installed. The default setting of undef
|
619
621
|
causes date/time values to remain in standard EXIF format (similar to a
|
620
622
|
DateFormat of "%Y:%m:%d %H:%M:%S").
|
@@ -825,6 +827,15 @@ determined unambiguously. For example:
|
|
825
827
|
If the starting tag is not specified, or the specified tag isn't available,
|
826
828
|
then the shift is calculated based on the first shifted tag.
|
827
829
|
|
830
|
+
=item GPSQuadrant
|
831
|
+
|
832
|
+
This option is used to specify the GPS quadrant in the case where a warning
|
833
|
+
was issued because the GPS quadrant couldn't be determined. The value is a
|
834
|
+
2-character code where the first character is 'N' or 'S' and the second
|
835
|
+
character is 'E' or 'W' (case insensitive). If this option is not set and
|
836
|
+
the quadrant is unknown, a warning is issued and the quadrant is assumed to
|
837
|
+
be 'NE'.
|
838
|
+
|
828
839
|
=item Group#
|
829
840
|
|
830
841
|
Extract tags only for specified groups in family # (Group0 assumed if #
|
@@ -853,7 +864,7 @@ used. Set to 0 for absolute offsets. Default is undef.
|
|
853
864
|
=item IgnoreGroups
|
854
865
|
|
855
866
|
Comma-separated list of group names to ignore when reading. The group names
|
856
|
-
are case insensitive and may be
|
867
|
+
are case insensitive and may be preceded by a family number. Set to undef
|
857
868
|
to clear the previous IgnoreGroups list. Default is undef.
|
858
869
|
|
859
870
|
=item IgnoreMinorErrors
|
@@ -878,7 +889,7 @@ to undef to clear the previous IgnoreTags list. Default is undef.
|
|
878
889
|
|
879
890
|
=item ImageHashType
|
880
891
|
|
881
|
-
Sets type of hash
|
892
|
+
Sets type of hash algorithm used for the ImageDataHash tag calculation.
|
882
893
|
Supported options are 'MD5', 'SHA256', and 'SHA512'. Default is 'MD5'.
|
883
894
|
|
884
895
|
=item Lang
|
@@ -1019,7 +1030,7 @@ when written. According to the QuickTime specification date/time values
|
|
1019
1030
|
should be UTC, but many digital cameras store local time instead (presumably
|
1020
1031
|
because they don't know the time zone), so the default is to not convert
|
1021
1032
|
these times (except for Canon CR3 files, which always use UTC times). This
|
1022
|
-
option also disables the
|
1033
|
+
option also disables the auto-detection of incorrect time-zero offsets in
|
1023
1034
|
QuickTime date/time values, and enforces a time zero of 1904 as per the
|
1024
1035
|
QuickTime specification.
|
1025
1036
|
|
@@ -2559,39 +2570,39 @@ Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
|
|
2559
2570
|
FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GM, GPS,
|
2560
2571
|
GSpherical, Garmin, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,
|
2561
2572
|
HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv,
|
2562
|
-
ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view,
|
2563
|
-
ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4,
|
2564
|
-
IPTC, IPTC#, ISO, ITC, InfiRay, Insta360, InteropIFD, ItemList,
|
2565
|
-
JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys,
|
2566
|
-
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LIGO, LNK,
|
2567
|
-
LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC, MIE-Audio,
|
2568
|
-
MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo,
|
2569
|
-
MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient,
|
2570
|
-
MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB,
|
2571
|
-
MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes,
|
2572
|
-
Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta,
|
2573
|
-
Motorola, NITF, Nextbase, Nikon, NikonCapture, NikonCustom,
|
2574
|
-
NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR,
|
2575
|
-
PICT, PNG, PNG-cICP, PNG-pHYs, PSP, Palm, Panasonic,
|
2576
|
-
Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop,
|
2577
|
-
PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm,
|
2578
|
-
RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real,
|
2579
|
-
Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD,
|
2580
|
-
SEAL, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG,
|
2581
|
-
Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD,
|
2582
|
-
Track#, UserData, VCalendar, VCard, VNote,
|
2583
|
-
|
2584
|
-
XMP-
|
2585
|
-
XMP-
|
2586
|
-
XMP-
|
2587
|
-
XMP-
|
2588
|
-
XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif,
|
2589
|
-
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr,
|
2590
|
-
XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
|
2591
|
-
XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama,
|
2592
|
-
XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi,
|
2593
|
-
XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff,
|
2594
|
-
XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
|
2573
|
+
ICC-chrm, ICC-cicp, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view,
|
2574
|
+
ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4,
|
2575
|
+
IFD0, IFD1, IPTC, IPTC#, ISO, ITC, InfiRay, Insta360, InteropIFD, ItemList,
|
2576
|
+
JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys,
|
2577
|
+
Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LIGO, LNK,
|
2578
|
+
Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC, MIE-Audio,
|
2579
|
+
MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo,
|
2580
|
+
MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient,
|
2581
|
+
MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB,
|
2582
|
+
MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes,
|
2583
|
+
MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta,
|
2584
|
+
MinoltaRaw, Motorola, NITF, Nextbase, Nikon, NikonCapture, NikonCustom,
|
2585
|
+
NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR,
|
2586
|
+
Opus, PDF, PICT, PNG, PNG-cICP, PNG-pHYs, PSP, Palm, Panasonic,
|
2587
|
+
PanasonicRaw, Parrot, Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop,
|
2588
|
+
PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm,
|
2589
|
+
QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real,
|
2590
|
+
Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD,
|
2591
|
+
Reconyx, Red, Ricoh, SEAL, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG,
|
2592
|
+
Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD,
|
2593
|
+
System, Theora, Torrent, Track#, UserData, VCalendar, VCard, VNote,
|
2594
|
+
Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
|
2595
|
+
XMP-GCamera, XMP-GContainer, XMP-GCreations, XMP-GDepth, XMP-GFocus,
|
2596
|
+
XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1,
|
2597
|
+
XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-acdsee-rs, XMP-album, XMP-apple-fi,
|
2598
|
+
XMP-ast, XMP-aux, XMP-cc, XMP-cell, XMP-crd, XMP-creatorAtom, XMP-crs,
|
2599
|
+
XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif,
|
2600
|
+
XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr,
|
2601
|
+
XMP-hdrgm, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
|
2602
|
+
XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-nine, XMP-panorama,
|
2603
|
+
XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi,
|
2604
|
+
XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc, XMP-swf, XMP-tiff,
|
2605
|
+
XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote,
|
2595
2606
|
XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
|
2596
2607
|
|
2597
2608
|
=item Family 2 (Category):
|
@@ -2832,6 +2843,10 @@ for the system. In Windows this also has the effect of activating Unicode
|
|
2832
2843
|
filename support via the special Windows wide-character i/o routines if
|
2833
2844
|
Win32API::File is available.
|
2834
2845
|
|
2846
|
+
Note that setting the L</WindowsWideFile> or L</WindowsLongPath> option
|
2847
|
+
causes L</CharsetFileName> to default to 'UTF8' in Windows if not defined,
|
2848
|
+
and L</WindowsLongPath> is set by default in ExifTool 13.07 and later.
|
2849
|
+
|
2835
2850
|
=item Internal Character Sets:
|
2836
2851
|
|
2837
2852
|
The encodings used to store strings in the various metadata formats. These
|
@@ -3015,7 +3030,7 @@ specified by the L</Charset> option.
|
|
3015
3030
|
|
3016
3031
|
=head1 AUTHOR
|
3017
3032
|
|
3018
|
-
Copyright 2003-
|
3033
|
+
Copyright 2003-2025, Phil Harvey
|
3019
3034
|
|
3020
3035
|
This library is free software; you can redistribute it and/or modify it
|
3021
3036
|
under the same terms as Perl itself.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2025-01-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -205,6 +205,7 @@ files:
|
|
205
205
|
- bin/lib/Image/ExifTool/Lang/zh_cn.pm
|
206
206
|
- bin/lib/Image/ExifTool/Lang/zh_tw.pm
|
207
207
|
- bin/lib/Image/ExifTool/Leaf.pm
|
208
|
+
- bin/lib/Image/ExifTool/LigoGPS.pm
|
208
209
|
- bin/lib/Image/ExifTool/Lytro.pm
|
209
210
|
- bin/lib/Image/ExifTool/M2TS.pm
|
210
211
|
- bin/lib/Image/ExifTool/MIE.pm
|