exiftool_vendored 13.14.0 → 13.16.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.
- checksums.yaml +4 -4
- data/bin/Changes +30 -3
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +3 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -8
- data/bin/lib/Image/ExifTool/Canon.pm +5 -3
- data/bin/lib/Image/ExifTool/EXE.pm +16 -2
- data/bin/lib/Image/ExifTool/ID3.pm +4 -4
- data/bin/lib/Image/ExifTool/MIE.pm +6 -3
- data/bin/lib/Image/ExifTool/Nikon.pm +328 -6
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +7 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +69 -24
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +10 -10
- data/bin/lib/Image/ExifTool/README +4 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +11 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4813 -4811
- data/bin/lib/Image/ExifTool/TagNames.pod +149 -10
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +45 -23
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +3 -1
- data/bin/lib/Image/ExifTool/Writer.pl +8 -7
- data/bin/lib/Image/ExifTool.pm +3 -3
- data/bin/lib/Image/ExifTool.pod +52 -51
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
12
12
|
=head1 TAG TABLES
|
13
13
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
15
|
-
They contain a total of
|
15
|
+
They contain a total of 28393 tags, with 17525 unique tag names.
|
16
16
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
@@ -17237,6 +17237,8 @@ These tags are extracted from encrypted data in images from the Z9.
|
|
17237
17237
|
MenuSettingsOffsetZ9v4 Nikon MenuSettingsZ9v3
|
17238
17238
|
-
|
17239
17239
|
Nikon MenuSettingsZ9v4
|
17240
|
+
-
|
17241
|
+
Nikon MenuSettingsZ9v5
|
17240
17242
|
|
17241
17243
|
=head3 Nikon MenuSettingsZ9 Tags
|
17242
17244
|
|
@@ -17398,7 +17400,7 @@ These tags are used by the Z9 firmware 3.00.
|
|
17398
17400
|
|
17399
17401
|
=head3 Nikon MenuSettingsZ9v4 Tags
|
17400
17402
|
|
17401
|
-
These tags are used by the Z9 firmware 4.0.0 and 4.1.0
|
17403
|
+
These tags are used by the Z9 firmware 4.0.0 and 4.1.0.
|
17402
17404
|
|
17403
17405
|
Index1 Tag Name Writable
|
17404
17406
|
------ -------- --------
|
@@ -17538,6 +17540,148 @@ These tags are used by the Z9 firmware 4.0.0 and 4.1.0
|
|
17538
17540
|
2070 BracketButtonPlaybackMode int8u
|
17539
17541
|
2072 FlashModeButtonPlaybackMode int8u
|
17540
17542
|
|
17543
|
+
=head3 Nikon MenuSettingsZ9v5 Tags
|
17544
|
+
|
17545
|
+
These tags are used by the Z9 firmware 5.1.
|
17546
|
+
|
17547
|
+
Index1 Tag Name Writable
|
17548
|
+
------ -------- --------
|
17549
|
+
72 HighFrameRate int8u
|
17550
|
+
158 MultipleExposureMode int8u
|
17551
|
+
160 MultiExposureShots int8u
|
17552
|
+
208 Intervals int32u
|
17553
|
+
212 ShotsPerInterval int32u
|
17554
|
+
252 FocusShiftNumberShots int8u
|
17555
|
+
256 FocusShiftStepWidth int8u
|
17556
|
+
260 FocusShiftInterval int8u~
|
17557
|
+
264 FocusShiftExposureLock? int8u
|
17558
|
+
294 PhotoShootingMenuBank int8u
|
17559
|
+
296 ExtendedMenuBanks int8u
|
17560
|
+
332 PhotoShootingMenuBankImageArea int8u
|
17561
|
+
346 AutoISO int8u
|
17562
|
+
348 ISOAutoHiLimit? int16u
|
17563
|
+
350 ISOAutoFlashLimit? int16u
|
17564
|
+
358 ISOAutoShutterTime no
|
17565
|
+
440 MovieVignetteControl? int8u
|
17566
|
+
442 DiffractionCompensation int8u
|
17567
|
+
444 FlickerReductionShooting int8u
|
17568
|
+
448 FlashControlMode int8u
|
17569
|
+
450 FlashMasterCompensation? int8s
|
17570
|
+
454 FlashGNDistance? no
|
17571
|
+
458 FlashOutput? int8u
|
17572
|
+
552 AFAreaMode int8u
|
17573
|
+
554 VRMode int8u
|
17574
|
+
558 BracketSet int8u
|
17575
|
+
560 BracketProgram int8u
|
17576
|
+
562 BracketIncrement int8u
|
17577
|
+
574 HDR int8u
|
17578
|
+
580 SecondarySlotFunction int8u
|
17579
|
+
586 HDRLevel int8u
|
17580
|
+
590 Slot2JpgSize? int8u
|
17581
|
+
596 DXCropAlert int8u
|
17582
|
+
598 SubjectDetection int8u
|
17583
|
+
600 DynamicAFAreaSize int8u
|
17584
|
+
640 HighFrequencyFlickerReduction? int8u
|
17585
|
+
650 MovieImageArea? int8u & 0x01
|
17586
|
+
660 MovieType? int8u
|
17587
|
+
662 MovieISOAutoHiLimit? int16u
|
17588
|
+
664 MovieISOAutoControlManualMode? int8u
|
17589
|
+
666 MovieISOAutoManualMode? int16u
|
17590
|
+
740 MovieActiveD-Lighting? int8u
|
17591
|
+
742 MovieHighISONoiseReduction? int8u
|
17592
|
+
748 MovieFlickerReduction int8u
|
17593
|
+
750 MovieMeteringMode? int8u
|
17594
|
+
752 MovieFocusMode? int8u
|
17595
|
+
754 MovieAFAreaMode int8u
|
17596
|
+
756 MovieVRMode? int8u
|
17597
|
+
760 MovieElectronicVR? int8u
|
17598
|
+
762 MovieSoundRecording? int8u
|
17599
|
+
764 MicrophoneSensitivity? int8u
|
17600
|
+
766 MicrophoneAttenuator? int8u
|
17601
|
+
768 MicrophoneFrequencyResponse? int8u
|
17602
|
+
770 WindNoiseReduction? int8u
|
17603
|
+
792 MovieToneMap? int8u
|
17604
|
+
798 MovieFrameSize? int8u
|
17605
|
+
800 MovieFrameRate? int8u
|
17606
|
+
806 MicrophoneJackPower? int8u
|
17607
|
+
807 MovieDXCropAlert? int8u
|
17608
|
+
808 MovieSubjectDetection? int8u
|
17609
|
+
816 MovieHighResZoom? int8u
|
17610
|
+
851 CustomSettingsZ9v4 NikonCustom SettingsZ9v4
|
17611
|
+
1502 Language? int8u
|
17612
|
+
1504 TimeZone int8u
|
17613
|
+
1510 MonitorBrightness? int8u
|
17614
|
+
1532 AFFineTune? int8u
|
17615
|
+
1536 NonCPULens1FocalLength? int16s~
|
17616
|
+
1540 NonCPULens2FocalLength? int16s~
|
17617
|
+
1542 NonCPULens3FocalLength? int16s~
|
17618
|
+
1548 NonCPULens4FocalLength? int16s~
|
17619
|
+
1552 NonCPULens5FocalLength? int16s~
|
17620
|
+
1556 NonCPULens6FocalLength? int16s~
|
17621
|
+
1560 NonCPULens7FocalLength? int16s~
|
17622
|
+
1564 NonCPULens8FocalLength? int16s~
|
17623
|
+
1568 NonCPULens9FocalLength? int16s~
|
17624
|
+
1572 NonCPULens10FocalLength? int16s~
|
17625
|
+
1576 NonCPULens11FocalLength? int16s~
|
17626
|
+
1580 NonCPULens12FocalLength? int16s~
|
17627
|
+
1584 NonCPULens13FocalLength? int16s~
|
17628
|
+
1588 NonCPULens14FocalLength? int16s~
|
17629
|
+
1592 NonCPULens15FocalLength? int16s~
|
17630
|
+
1596 NonCPULens16FocalLength? int16s~
|
17631
|
+
1600 NonCPULens17FocalLength? int16s~
|
17632
|
+
1604 NonCPULens18FocalLength? int16s~
|
17633
|
+
1608 NonCPULens19FocalLength? int16s~
|
17634
|
+
1612 NonCPULens20FocalLength? int16s~
|
17635
|
+
1616 NonCPULens1MaxAperture? int16s~
|
17636
|
+
1620 NonCPULens2MaxAperture? int16s~
|
17637
|
+
1624 NonCPULens3MaxAperture? int16s~
|
17638
|
+
1628 NonCPULens4MaxAperture? int16s~
|
17639
|
+
1632 NonCPULens5MaxAperture? int16s~
|
17640
|
+
1636 NonCPULens6MaxAperture? int16s~
|
17641
|
+
1640 NonCPULens7MaxAperture? int16s~
|
17642
|
+
1644 NonCPULens8MaxAperture? int16s~
|
17643
|
+
1648 NonCPULens9MaxAperture? int16s~
|
17644
|
+
1652 NonCPULens10MaxAperture? int16s~
|
17645
|
+
1656 NonCPULens11MaxAperture? int16s~
|
17646
|
+
1660 NonCPULens12MaxAperture? int16s~
|
17647
|
+
1664 NonCPULens13MaxAperture? int16s~
|
17648
|
+
1668 NonCPULens14MaxAperture? int16s~
|
17649
|
+
1672 NonCPULens15MaxAperture? int16s~
|
17650
|
+
1676 NonCPULens16MaxAperture? int16s~
|
17651
|
+
1680 NonCPULens17MaxAperture? int16s~
|
17652
|
+
1684 NonCPULens18MaxAperture? int16s~
|
17653
|
+
1688 NonCPULens19MaxAperture? int16s~
|
17654
|
+
1692 NonCPULens20MaxAperture? int16s~
|
17655
|
+
1708 HDMIOutputResolution int8u
|
17656
|
+
1721 SetClockFromLocationData? int8u
|
17657
|
+
1728 AirplaneMode? int8u
|
17658
|
+
1729 EmptySlotRelease? int8u
|
17659
|
+
1764 EnergySavingMode? int8u
|
17660
|
+
1788 RecordLocationData? int8u
|
17661
|
+
1792 USBPowerDelivery? int8u
|
17662
|
+
1801 SensorShield? int8u
|
17663
|
+
1866 AutoCapturePreset int8u
|
17664
|
+
1868 FocusShiftAutoReset? int8u
|
17665
|
+
1926 PreReleaseBurstLength int8u
|
17666
|
+
1928 PostReleaseBurstLength int8u
|
17667
|
+
1942 VerticalISOButton int8u
|
17668
|
+
1944 ExposureCompensationButton int8u
|
17669
|
+
1946 ISOButton int8u
|
17670
|
+
2006 ViewModeShowEffectsOfSettings? int8u
|
17671
|
+
2008 DispButton int8u
|
17672
|
+
2052 ExposureDelay fixed32u~
|
17673
|
+
2056 CommandDialFrameAdvanceZoom? int8u
|
17674
|
+
2058 SubCommandDialFrameAdvanceZoom? int8u
|
17675
|
+
2060 PlaybackButton int8u
|
17676
|
+
2062 WBButton int8u
|
17677
|
+
2064 BracketButton int8u
|
17678
|
+
2066 FlashModeButton int8u
|
17679
|
+
2068 LensFunc1ButtonPlaybackMode int8u
|
17680
|
+
2070 LensFunc2ButtonPlaybackMode int8u
|
17681
|
+
2072 PlaybackButtonPlaybackMode int8u
|
17682
|
+
2074 BracketButtonPlaybackMode int8u
|
17683
|
+
2076 FlashModeButtonPlaybackMode int8u
|
17684
|
+
|
17541
17685
|
=head3 Nikon ShotInfo Tags
|
17542
17686
|
|
17543
17687
|
This information is encrypted for ShotInfoVersion 02xx, and some tags are
|
@@ -30011,12 +30155,6 @@ L<AudioKeys|Image::ExifTool::TagNames/QuickTime AudioKeys Tags> and
|
|
30011
30155
|
L<VideoKeys|Image::ExifTool::TagNames/QuickTime VideoKeys Tags> tags for
|
30012
30156
|
more information.
|
30013
30157
|
|
30014
|
-
Beware that the values of the Keys tags are actually stored inside an
|
30015
|
-
ItemList atom in the file, so deleting the ItemList group as a block (ie.
|
30016
|
-
C<-ItemList:all=>) also deletes Keys tags. Instead, to preserve Keys tags
|
30017
|
-
the ItemList tags may be deleted individually with
|
30018
|
-
C<-QuickTime:ItemList:all=>.
|
30019
|
-
|
30020
30158
|
Alternate language tags may be accessed for
|
30021
30159
|
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
|
30022
30160
|
L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags> tags by adding
|
@@ -30027,8 +30165,8 @@ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> tags support a
|
|
30027
30165
|
language code, but without a country code. If no language code is specified
|
30028
30166
|
when writing, the default language is written and alternate languages for
|
30029
30167
|
the tag are deleted. Use the "und" language code to write the default
|
30030
|
-
language without deleting alternate languages. Note that
|
30031
|
-
as
|
30168
|
+
language without deleting alternate languages. Note that when reading,
|
30169
|
+
"eng" is also treated as the default language if there is no country code.
|
30032
30170
|
|
30033
30171
|
According to the specification, integer-format QuickTime date/time tags
|
30034
30172
|
should be stored as UTC. Unfortunately, digital cameras often store local
|
@@ -32187,6 +32325,7 @@ This chunk is found in lossless WebP files.
|
|
32187
32325
|
------ -------- --------
|
32188
32326
|
1 ImageWidth no
|
32189
32327
|
2 ImageHeight no
|
32328
|
+
4 AlphaIsUsed no
|
32190
32329
|
|
32191
32330
|
=head3 RIFF VP8X Tags
|
32192
32331
|
|
@@ -378,6 +378,9 @@ sub WriteNextbase($$$)
|
|
378
378
|
# Write Meta Keys to add/delete entries as necessary ('mdta' handler) (ref PH)
|
379
379
|
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
|
380
380
|
# Returns: updated keys box data
|
381
|
+
# Note: Residual entries may be left in the 'keys' directory when deleting tags
|
382
|
+
# with language codes because the language code(s) are not known until the
|
383
|
+
# corresponding ItemList entry(s) are processed
|
381
384
|
sub WriteKeys($$$)
|
382
385
|
{
|
383
386
|
my ($et, $dirInfo, $tagTablePtr) = @_;
|
@@ -901,15 +904,10 @@ sub WriteQuickTime($$$)
|
|
901
904
|
my $createKeys = 0;
|
902
905
|
my ($rtnVal, $rtnErr) = $dataPt ? (undef, undef) : (1, 0);
|
903
906
|
|
904
|
-
# check for
|
907
|
+
# check for trailer at end of file
|
905
908
|
if ($raf) {
|
906
|
-
|
907
|
-
|
908
|
-
substr($buf2, 8) eq '8db42d694ccc418790edff439fe026bf')
|
909
|
-
{
|
910
|
-
$trailer = [ 'Insta360', $raf->Tell() - unpack('V',$buf2) ];
|
911
|
-
}
|
912
|
-
$raf->Seek($pos, 0) or return 0;
|
909
|
+
$trailer = IdentifyTrailers($raf);
|
910
|
+
$trailer and not ref $trailer and $et->Error($trailer), return 1;
|
913
911
|
}
|
914
912
|
if ($dataPt) {
|
915
913
|
$raf = File::RandomAccess->new($dataPt);
|
@@ -1598,16 +1596,26 @@ sub WriteQuickTime($$$)
|
|
1598
1596
|
if (($lastTag eq 'mdat' or $lastTag eq 'moov') and not $dataPt and (not $$tagTablePtr{$tag} or
|
1599
1597
|
ref $$tagTablePtr{$tag} eq 'HASH' and $$tagTablePtr{$tag}{Unknown}))
|
1600
1598
|
{
|
1601
|
-
# identify other known trailers
|
1599
|
+
# identify other known trailers from their first bytes
|
1602
1600
|
$buf2 = '';
|
1603
1601
|
$raf->Seek($lastPos,0) and $raf->Read($buf2,8);
|
1602
|
+
my ($type, $len);
|
1604
1603
|
if ($buf2 eq 'CCCCCCCC') {
|
1605
|
-
$
|
1604
|
+
$type = 'Kenwood';
|
1606
1605
|
} elsif ($buf2 =~ /^(gpsa|gps0|gsen|gsea)...\0/s) {
|
1607
|
-
$
|
1606
|
+
$type = 'RIFF';
|
1608
1607
|
} else {
|
1609
|
-
$
|
1608
|
+
$type = 'Unknown';
|
1610
1609
|
}
|
1610
|
+
# determine length of this trailer
|
1611
|
+
if ($trailer) {
|
1612
|
+
$len = $$trailer[1] - $lastPos; # runs to start of next trailer
|
1613
|
+
} else {
|
1614
|
+
$raf->Seek(0, 2) or $et->Error('Seek error'), return $dataPt ? undef : 1;
|
1615
|
+
$len = $raf->Tell() - $lastPos; # runs to end of file
|
1616
|
+
}
|
1617
|
+
# add to start of linked list of trailers
|
1618
|
+
$trailer = [ $type, $lastPos, $len, $trailer ];
|
1611
1619
|
} else {
|
1612
1620
|
$et->Error($errStr);
|
1613
1621
|
return $dataPt ? undef : 1;
|
@@ -2069,21 +2077,35 @@ sub WriteQuickTime($$$)
|
|
2069
2077
|
# write the stuff that must come last
|
2070
2078
|
Write($outfile, $writeLast) or $rtnVal = 0 if $writeLast;
|
2071
2079
|
|
2072
|
-
# copy
|
2073
|
-
|
2074
|
-
# are we deleting the
|
2080
|
+
# copy trailers if necessary
|
2081
|
+
while ($rtnVal and $trailer) {
|
2082
|
+
# are we deleting the trailers?
|
2075
2083
|
my $nvTrail = $et->GetNewValueHash($Image::ExifTool::Extra{Trailer});
|
2076
|
-
if ($$et{DEL_GROUP}{Trailer} or
|
2084
|
+
if ($$et{DEL_GROUP}{Trailer} or $$et{DEL_GROUP}{$$trailer[0]} or
|
2085
|
+
($nvTrail and not ($$nvTrail{Value} and $$nvTrail{Value}[0])))
|
2086
|
+
{
|
2077
2087
|
$et->Warn("Deleted $$trailer[0] trailer", 1);
|
2078
|
-
|
2079
|
-
$
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2088
|
+
++$$et{CHANGED};
|
2089
|
+
$trailer = $$trailer[3];
|
2090
|
+
next;
|
2091
|
+
}
|
2092
|
+
$raf->Seek($$trailer[1], 0) or $rtnVal = 0, last;
|
2093
|
+
if ($$trailer[0] eq 'MIE') {
|
2094
|
+
require Image::ExifTool::MIE;
|
2095
|
+
my %dirInfo = ( RAF => $raf, OutFile => $outfile );
|
2096
|
+
my $result = Image::ExifTool::MIE::ProcessMIE($et, \%dirInfo);
|
2097
|
+
$result > 0 or $et->Error('Error writing MIE trailer'), $rtnVal = 0, last;
|
2083
2098
|
} else {
|
2084
|
-
$
|
2099
|
+
$et->Warn(sprintf('Copying %s trailer from offset 0x%x (%d bytes)', @$trailer[0..2]), 1);
|
2100
|
+
my $len = $$trailer[2];
|
2101
|
+
while ($len) {
|
2102
|
+
my $n = $len > 65536 ? 65536 : $len;
|
2103
|
+
$raf->Read($buf2, $n) == $n and Write($outfile, $buf2) or $rtnVal = 0, last;
|
2104
|
+
$len -= $n;
|
2105
|
+
}
|
2106
|
+
$rtnVal or $et->Error("Error copying $$trailer[0] trailer"), last;
|
2085
2107
|
}
|
2086
|
-
$
|
2108
|
+
$trailer = $$trailer[3]; # step to next trailer in linked list
|
2087
2109
|
}
|
2088
2110
|
return $rtnVal;
|
2089
2111
|
}
|
@@ -324,8 +324,10 @@ sub WriteRIFF($$)
|
|
324
324
|
$raf->Read($buff, 6) == 6 or $et->Error('Truncated VP8L chunk'), return 1;
|
325
325
|
$outsize += 6;
|
326
326
|
if ($buff =~ /^\x2f/s) {
|
327
|
+
my $word = Get32u(\$buff, 2);
|
327
328
|
$imageWidth = (Get16u(\$buff, 1) & 0x3fff) + 1;
|
328
|
-
$imageHeight = ((
|
329
|
+
$imageHeight = (($word >> 6) & 0x3fff) + 1;
|
330
|
+
$has{ALPH} = 1 if $word & 0x100000; # set alpha flag if necessary
|
329
331
|
}
|
330
332
|
$len2 -= 6;
|
331
333
|
}
|
@@ -140,10 +140,10 @@ my @delGroups = qw(
|
|
140
140
|
Adobe AFCP APP0 APP1 APP2 APP3 APP4 APP5 APP6 APP7 APP8 APP9 APP10 APP11 APP12
|
141
141
|
APP13 APP14 APP15 AudioKeys CanonVRD CIFF Ducky EXIF ExifIFD File FlashPix
|
142
142
|
FotoStation GlobParamIFD GPS ICC_Profile IFD0 IFD1 Insta360 InteropIFD IPTC
|
143
|
-
ItemList JFIF Jpeg2000 JUMBF Keys MakerNotes Meta MetaIFD Microsoft
|
144
|
-
Nextbase NikonApp NikonCapture PDF PDF-update PhotoMechanic
|
145
|
-
PNG-pHYs PrintIM QuickTime RMETA RSRC SEAL SubIFD Trailer
|
146
|
-
Vivo XML XML-* XMP XMP-*
|
143
|
+
ItemList iTunes JFIF Jpeg2000 JUMBF Keys MakerNotes Meta MetaIFD Microsoft
|
144
|
+
MIE MPF Nextbase NikonApp NikonCapture PDF PDF-update PhotoMechanic
|
145
|
+
Photoshop PNG PNG-pHYs PrintIM QuickTime RMETA RSRC SEAL SubIFD Trailer
|
146
|
+
UserData VideoKeys Vivo XML XML-* XMP XMP-*
|
147
147
|
);
|
148
148
|
# family 2 group names that we can delete
|
149
149
|
my @delGroup2 = qw(
|
@@ -2856,7 +2856,7 @@ sub GetAllGroups($;$)
|
|
2856
2856
|
}
|
2857
2857
|
}
|
2858
2858
|
delete $allGroups{'*'}; # (not a real group)
|
2859
|
-
return sort keys %allGroups;
|
2859
|
+
return sort { lc $a cmp lc $b } keys %allGroups;
|
2860
2860
|
}
|
2861
2861
|
|
2862
2862
|
#------------------------------------------------------------------------------
|
@@ -2874,7 +2874,7 @@ sub GetNewGroups($)
|
|
2874
2874
|
# Returns: List of group names (sorted alphabetically)
|
2875
2875
|
sub GetDeleteGroups()
|
2876
2876
|
{
|
2877
|
-
return sort @delGroups, @delGroup2;
|
2877
|
+
return sort { lc $a cmp lc $b } @delGroups, @delGroup2;
|
2878
2878
|
}
|
2879
2879
|
|
2880
2880
|
#------------------------------------------------------------------------------
|
@@ -3340,7 +3340,8 @@ sub InsertTagValues($$;$$$$)
|
|
3340
3340
|
} elsif ($tag eq 'self') {
|
3341
3341
|
$val = $et; # ("$self{var}" or "$file1:self{var}" in string)
|
3342
3342
|
} else {
|
3343
|
-
# get the tag value
|
3343
|
+
# get the tag value (note: this direct access allows excluded tags
|
3344
|
+
# to be accessed if the case is correct and a group name is not used)
|
3344
3345
|
$val = $et->GetValue($tag, $type);
|
3345
3346
|
unless (defined $val) {
|
3346
3347
|
# check for tag name with different case
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -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.16';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -4166,7 +4166,7 @@ sub GetFileType(;$$)
|
|
4166
4166
|
$desc = $$fileType[1];
|
4167
4167
|
}
|
4168
4168
|
} else {
|
4169
|
-
$desc = $fileDescription{$file};
|
4169
|
+
$desc = $fileDescription{$file} || $file;
|
4170
4170
|
}
|
4171
4171
|
$desc .= ", $subType" if $subType;
|
4172
4172
|
return $desc;
|
@@ -4494,7 +4494,7 @@ sub DoneExtract($)
|
|
4494
4494
|
# set family 8 group name for all tags
|
4495
4495
|
$$altExifTool{TAG_EXTRA}{$_}{G8} = $g8 foreach keys %{$$altExifTool{VALUE}};
|
4496
4496
|
# prepare our sorted list of found tags
|
4497
|
-
$$altExifTool{FoundTags} =
|
4497
|
+
$$altExifTool{FoundTags} = $altExifTool->SetFoundTags();
|
4498
4498
|
$$altExifTool{DID_EXTRACT} = 1;
|
4499
4499
|
}
|
4500
4500
|
# if necessary, build composite tags that rely on tags from alternate files
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -2551,61 +2551,62 @@ Here is a complete list of groups for each of these families:
|
|
2551
2551
|
|
2552
2552
|
AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
|
2553
2553
|
APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD,
|
2554
|
-
Composite, DICOM,
|
2555
|
-
|
2556
|
-
GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,
|
2557
|
-
JUMBF,
|
2558
|
-
|
2559
|
-
|
2560
|
-
|
2561
|
-
|
2562
|
-
|
2554
|
+
Composite, DICOM, DjVu, DNG, Ducky, DV, EXE, EXIF, ExifTool, File, FITS,
|
2555
|
+
FLAC, Flash, FlashPix, FLIR, Font, FotoStation, GeoTiff, GIF, GIMP, GM,
|
2556
|
+
GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, Jpeg2000,
|
2557
|
+
JSON, JUMBF, Leaf, LNK, Lytro, M2TS, MakerNotes, Matroska, Meta, MIE, MIFF,
|
2558
|
+
MISB, MNG, MOI, MPC, MPEG, MPF, MXF, Ogg, OpenEXR, Opus, Palm, PanasonicRaw,
|
2559
|
+
Parrot, PDF, PhotoCD, PhotoMechanic, Photoshop, PICT, PLIST, PNG,
|
2560
|
+
PostScript, PrintIM, Protobuf, PSP, QuickTime, Radiance, RAF, Rawzor, Real,
|
2561
|
+
Red, RIFF, RSRC, RTF, SigmaRaw, Sony, Stim, SVG, Theora, Torrent, Trailer,
|
2562
|
+
VCard, Vorbis, WTV, XML, XMP, ZIP
|
2563
2563
|
|
2564
2564
|
=item Family 1 (Specific Location):
|
2565
2565
|
|
2566
|
-
AAC, AC3,
|
2567
|
-
|
2568
|
-
|
2569
|
-
|
2570
|
-
|
2571
|
-
FotoStation, FujiFilm, FujiIFD,
|
2572
|
-
|
2573
|
-
HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm,
|
2574
|
-
ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
|
2566
|
+
AAC, AC3, Adobe, AdobeCM, AdobeDNG, AFCP, AIFF, APE, APP10, APP2, Apple,
|
2567
|
+
ASF, Audible, AudioItemList, AudioKeys, AudioUserData, AVI1, CameraIFD,
|
2568
|
+
Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD, Casio, CBOR, Chapter#,
|
2569
|
+
CIFF, Composite, DICOM, DJI, DjVu, DjVu-Meta, DNG, Ducky, DV, EPPIM, EXE,
|
2570
|
+
EXIF, ExifIFD, ExifTool, File, FITS, FLAC, Flash, FlashPix, FLIR, Font,
|
2571
|
+
FotoStation, FujiFilm, FujiIFD, Garmin, GE, GeoTiff, GIF, GIMP,
|
2572
|
+
GlobParamIFD, GM, GoPro, GPS, GraphConv, GSpherical, H264, HP, HTC, HTML,
|
2573
|
+
HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm,
|
2574
|
+
ICC-cicp, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
|
2575
2575
|
ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
|
2576
|
-
IPTC, IPTC#, ISO, ITC,
|
2577
|
-
JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC,
|
2578
|
-
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw,
|
2579
|
-
LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC,
|
2580
|
-
|
2581
|
-
MIE-
|
2582
|
-
MIE-
|
2583
|
-
|
2584
|
-
|
2585
|
-
|
2586
|
-
NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus,
|
2587
|
-
|
2588
|
-
|
2589
|
-
PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime,
|
2590
|
-
|
2591
|
-
Real-
|
2592
|
-
|
2593
|
-
|
2594
|
-
Track#, Track#ItemList, Track#Keys, Track#UserData, UserData,
|
2595
|
-
|
2596
|
-
Vorbis, WTV, XML, XMP, XMP-
|
2597
|
-
XMP-
|
2598
|
-
XMP-
|
2599
|
-
XMP-
|
2600
|
-
XMP-
|
2601
|
-
XMP-
|
2602
|
-
XMP-
|
2603
|
-
XMP-
|
2604
|
-
XMP-
|
2605
|
-
XMP-panorama, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop,
|
2606
|
-
XMP-
|
2607
|
-
XMP-
|
2608
|
-
XMP-
|
2576
|
+
InfiRay, Insta360, InteropIFD, IPTC, IPTC#, ISO, ITC, ItemList, iTunes,
|
2577
|
+
JFIF, JFXX, JPEG, JPEG-HDR, Jpeg2000, JPS, JSON, JUMBF, JVC, KDC_IFD, Keys,
|
2578
|
+
Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, Leaf,
|
2579
|
+
LeafSubIFD, Leica, LNK, Lyrics3, Lytro, M-RAW, M2TS, MAC, MacOS, MakerNotes,
|
2580
|
+
MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, MIE-Audio,
|
2581
|
+
MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-Geo, MIE-GPS,
|
2582
|
+
MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient,
|
2583
|
+
MIE-Preview, MIE-Thumbnail, MIE-Unknown, MIE-UTM, MIE-Video, MIFF, Minolta,
|
2584
|
+
MinoltaRaw, MISB, MNG, MOBI, MOI, Motorola, MPC, MPEG, MPF0, MPImage,
|
2585
|
+
MS-DOC, MXF, Nextbase, Nikon, NikonCapture, NikonCustom, NikonScan,
|
2586
|
+
NikonSettings, NineEdits, Nintendo, NITF, Ocad, Ogg, Olympus, OpenEXR, Opus,
|
2587
|
+
Palm, Panasonic, PanasonicRaw, Parrot, PDF, Pentax, PhaseOne, PhotoCD,
|
2588
|
+
PhotoMechanic, Photoshop, PICT, PictureInfo, PNG, PNG-cICP, PNG-pHYs,
|
2589
|
+
PostScript, PreviewIFD, PrintIM, ProfileIFD, PSP, Qualcomm, QuickTime,
|
2590
|
+
Radiance, RAF, RAF2, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP,
|
2591
|
+
Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, RIFF, RMETA,
|
2592
|
+
RSRC, RTF, Samsung, Sanyo, Scalado, SEAL, Sigma, SigmaRaw, Sony, SonyIDC,
|
2593
|
+
SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, Stim, SubIFD, SVG, System, Theora,
|
2594
|
+
Torrent, Track#, Track#ItemList, Track#Keys, Track#UserData, UserData,
|
2595
|
+
VCalendar, VCard, Version0, VideoItemList, VideoKeys, VideoUserData, Vivo,
|
2596
|
+
VNote, Vorbis, WTV, XML, XMP, XMP-aas, XMP-acdsee, XMP-acdsee-rs, XMP-album,
|
2597
|
+
XMP-apdi, XMP-apple-fi, XMP-ast, XMP-aux, XMP-cc, XMP-cell, XMP-crd,
|
2598
|
+
XMP-creatorAtom, XMP-crs, XMP-dc, XMP-Device, XMP-dex, XMP-DICOM,
|
2599
|
+
XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-et, XMP-exif, XMP-exifEX,
|
2600
|
+
XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-GAudio, XMP-GCamera,
|
2601
|
+
XMP-GContainer, XMP-GCreations, XMP-GDepth, XMP-getty, XMP-GFocus,
|
2602
|
+
XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-hdr, XMP-HDRGainMap, XMP-hdrgm,
|
2603
|
+
XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-LImage, XMP-lr, XMP-mediapro,
|
2604
|
+
XMP-microsoft, XMP-MP, XMP-MP1, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs,
|
2605
|
+
XMP-nine, XMP-panorama, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop,
|
2606
|
+
XMP-PixelLive, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur,
|
2607
|
+
XMP-rdf, XMP-sdc, XMP-seal, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ,
|
2608
|
+
XMP-xmpDM, XMP-xmpDSA, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights,
|
2609
|
+
XMP-xmpTPg, ZIP
|
2609
2610
|
|
2610
2611
|
=item Family 2 (Category):
|
2611
2612
|
|
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.16.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: 2025-01-
|
12
|
+
date: 2025-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|