exiftool-vendored.pl 13.34.0 → 13.35.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/README.md +2 -2
- package/bin/Changes +24 -1
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +2 -2
- package/bin/exiftool +43 -33
- package/bin/lib/Image/ExifTool/Canon.pm +28 -5
- package/bin/lib/Image/ExifTool/DJI.pm +54 -3
- package/bin/lib/Image/ExifTool/FujiFilm.pm +87 -30
- package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/lib/Image/ExifTool/M2TS.pm +2 -4
- package/bin/lib/Image/ExifTool/Olympus.pm +5 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +33 -33
- package/bin/lib/Image/ExifTool/Protobuf.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- package/bin/lib/Image/ExifTool/TagLookup.pm +7 -3
- package/bin/lib/Image/ExifTool/TagNames.pod +29 -11
- package/bin/lib/Image/ExifTool/Writer.pl +2 -1
- package/bin/lib/Image/ExifTool/XMP.pm +8 -2
- package/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- package/bin/lib/Image/ExifTool.pm +3 -1
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/index.js +2 -2
- package/package.json +9 -7
- package/bin/windows_exiftool.txt +0 -2941
|
@@ -32,7 +32,7 @@ use strict;
|
|
|
32
32
|
use vars qw($VERSION);
|
|
33
33
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
34
34
|
|
|
35
|
-
$VERSION = '1.
|
|
35
|
+
$VERSION = '1.30';
|
|
36
36
|
|
|
37
37
|
# program map table "stream_type" lookup (ref 6/1/9)
|
|
38
38
|
my %streamType = (
|
|
@@ -557,7 +557,7 @@ sub ProcessM2TS($$)
|
|
|
557
557
|
{
|
|
558
558
|
my ($et, $dirInfo) = @_;
|
|
559
559
|
my $raf = $$dirInfo{RAF};
|
|
560
|
-
my ($buff, $pLen, $
|
|
560
|
+
my ($buff, $pLen, $j, $fileType, $eof);
|
|
561
561
|
my (%pmt, %pidType, %data, %sectLen, %packLen, %fromStart);
|
|
562
562
|
my ($startTime, $endTime, $fwdTime, $backScan, $maxBack);
|
|
563
563
|
my $verbose = $et->Options('Verbose');
|
|
@@ -570,10 +570,8 @@ sub ProcessM2TS($$)
|
|
|
570
570
|
unless ($1) {
|
|
571
571
|
$pLen = 188; # no timecode
|
|
572
572
|
$fileType = 'M2T'; # (just as a way to tell there is no timecode)
|
|
573
|
-
$upkPrefix = 'N';
|
|
574
573
|
} else {
|
|
575
574
|
$pLen = 192; # 188-byte transport packet + leading 4-byte timecode (ref 4)
|
|
576
|
-
$upkPrefix = 'x4N';
|
|
577
575
|
}
|
|
578
576
|
my $prePos = $pLen - 188; # byte position of packet prefix
|
|
579
577
|
my $readSize = 64 * $pLen; # size of our read buffer
|
|
@@ -41,7 +41,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
41
41
|
use Image::ExifTool::Exif;
|
|
42
42
|
use Image::ExifTool::APP12;
|
|
43
43
|
|
|
44
|
-
$VERSION = '2.
|
|
44
|
+
$VERSION = '2.90';
|
|
45
45
|
|
|
46
46
|
sub PrintLensInfo($$$);
|
|
47
47
|
|
|
@@ -117,6 +117,7 @@ my %olympusLensTypes = (
|
|
|
117
117
|
'0 35 10' => 'Olympus M.Zuiko 100-400mm F5.0-6.3', #IB (also OM System M.Zuiko Digital ED 100-400mm F5.0-6.3 IS II", forum2833)
|
|
118
118
|
'0 36 10' => 'Olympus M.Zuiko Digital ED 8-25mm F4 Pro', #IB
|
|
119
119
|
'0 37 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro', #forum3833
|
|
120
|
+
'0 38 10' => 'Olympus M.Zuiko Digital ED 20mm F1.4 Pro',
|
|
120
121
|
'0 39 10' => 'Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro', #forum3833
|
|
121
122
|
'0 40 10' => 'Olympus M.Zuiko Digital ED 150-600mm F5.0-6.3', #forum15652
|
|
122
123
|
# Sigma lenses
|
|
@@ -2252,12 +2253,15 @@ my %indexInfo = (
|
|
|
2252
2253
|
5 => 'i-Enhance', #11
|
|
2253
2254
|
6 => 'e-Portrait', #23
|
|
2254
2255
|
7 => 'Color Creator', #23
|
|
2256
|
+
8 => 'Underwater', #7
|
|
2255
2257
|
9 => 'Color Profile 1', #23
|
|
2256
2258
|
10 => 'Color Profile 2', #23
|
|
2257
2259
|
11 => 'Color Profile 3', #23
|
|
2258
2260
|
12 => 'Monochrome Profile 1', #23
|
|
2259
2261
|
13 => 'Monochrome Profile 2', #23
|
|
2260
2262
|
14 => 'Monochrome Profile 3', #23
|
|
2263
|
+
17 => 'Art Mode', #7
|
|
2264
|
+
18 => 'Monochrome Profile 4', #7
|
|
2261
2265
|
256 => 'Monotone',
|
|
2262
2266
|
512 => 'Sepia',
|
|
2263
2267
|
}],
|
|
@@ -59,7 +59,7 @@ use Image::ExifTool::Exif;
|
|
|
59
59
|
use Image::ExifTool::GPS;
|
|
60
60
|
use Image::ExifTool::HP;
|
|
61
61
|
|
|
62
|
-
$VERSION = '3.
|
|
62
|
+
$VERSION = '3.56';
|
|
63
63
|
|
|
64
64
|
sub CryptShutterCount($$);
|
|
65
65
|
sub PrintFilter($$$);
|
|
@@ -5120,52 +5120,52 @@ my %binaryDataAttrs = (
|
|
|
5120
5120
|
PrintConv => { 0 => 'Off', 1 => 'Short', 2 => 'Medium', 3 => 'Long' },
|
|
5121
5121
|
},
|
|
5122
5122
|
0x021f => { #KG
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
|
|
5131
|
-
|
|
5132
|
-
|
|
5123
|
+
Name => 'FirstFrameActionInAFC',
|
|
5124
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5125
|
+
PrintConv => {
|
|
5126
|
+
'0' => 'Auto',
|
|
5127
|
+
'1' => 'Release Priority',
|
|
5128
|
+
'2' => 'Focus Priority',
|
|
5129
|
+
# there is at least another value '3' but I couldn't figure out the
|
|
5130
|
+
# meaning. However, this occurs for a few AF-S captures, so it has
|
|
5131
|
+
# no real practical meaning.
|
|
5132
|
+
},
|
|
5133
5133
|
},
|
|
5134
5134
|
0x0220 => { #KG
|
|
5135
|
-
|
|
5136
|
-
|
|
5137
|
-
|
|
5138
|
-
|
|
5139
|
-
|
|
5140
|
-
|
|
5141
|
-
|
|
5135
|
+
Name => 'ActionInAFCCont',
|
|
5136
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5137
|
+
PrintConv => {
|
|
5138
|
+
'0' => 'Auto',
|
|
5139
|
+
'1' => 'Focus Priority',
|
|
5140
|
+
'2' => 'FPS Priority',
|
|
5141
|
+
},
|
|
5142
5142
|
},
|
|
5143
5143
|
545 => { #KG
|
|
5144
|
-
|
|
5145
|
-
|
|
5146
|
-
|
|
5147
|
-
|
|
5144
|
+
Name => 'AFCHold',
|
|
5145
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5146
|
+
Mask => 0x03,
|
|
5147
|
+
PrintConv => { 0 => 'Low', 1 => 'Medium', 2 => 'High', 3 => 'Off' },
|
|
5148
5148
|
},
|
|
5149
5149
|
545.1 => { #KG
|
|
5150
|
-
Name => '
|
|
5150
|
+
Name => 'AFCPointTracking',
|
|
5151
5151
|
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5152
5152
|
Mask => 0x0c,
|
|
5153
|
-
PrintConv => '
|
|
5154
|
-
PrintConvInv => '5 - $val',
|
|
5153
|
+
PrintConv => { 0 => 'Type 1', 1 => 'Type 2', 2 => 'Type 3' },
|
|
5155
5154
|
},
|
|
5156
5155
|
545.2 => { #KG
|
|
5157
|
-
Name => '
|
|
5156
|
+
Name => 'AFCSensitivity',
|
|
5158
5157
|
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5159
5158
|
Mask => 0x70,
|
|
5160
|
-
PrintConv =>
|
|
5159
|
+
PrintConv => '5 - $val',
|
|
5160
|
+
PrintConvInv => '5 - $val',
|
|
5161
5161
|
},
|
|
5162
5162
|
0x0960 => { #KG
|
|
5163
|
-
|
|
5164
|
-
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5163
|
+
Name => 'SubjectRecognition',
|
|
5164
|
+
Condition => '$$self{Model} =~ /K-3 Mark III/',
|
|
5165
|
+
PrintConv => {
|
|
5166
|
+
0 => 'Off',
|
|
5167
|
+
1 => 'On',
|
|
5168
|
+
},
|
|
5169
5169
|
},
|
|
5170
5170
|
);
|
|
5171
5171
|
|
|
@@ -111,7 +111,7 @@ my %insvLimit = (
|
|
|
111
111
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
112
112
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
113
113
|
most of these tags are combined into the single table below, ExifTool
|
|
114
|
-
currently reads
|
|
114
|
+
currently reads 111 different types of timed GPS metadata from video files.
|
|
115
115
|
},
|
|
116
116
|
GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
|
|
117
117
|
GPSLongitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")' },
|
|
@@ -751,8 +751,8 @@ my %tagLookup = (
|
|
|
751
751
|
'afconfidence' => { 1 => 0x3d },
|
|
752
752
|
'afconfigtool' => { 2 => 0x1 },
|
|
753
753
|
'afcoordinatesavailable' => { 203 => 0x7, 204 => 0x7 },
|
|
754
|
-
'afcpointtracking' => { 371 => '545.
|
|
755
|
-
'afcsensitivity' => { 371 => '545.
|
|
754
|
+
'afcpointtracking' => { 371 => '545.1' },
|
|
755
|
+
'afcsensitivity' => { 371 => '545.2' },
|
|
756
756
|
'afdefocus' => { 371 => 0x6 },
|
|
757
757
|
'afdetectionmethod' => { 200 => 0x4, 201 => 0x4, 203 => 0x4, 204 => 0x4 },
|
|
758
758
|
'afduringliveview' => { 90 => 0x511 },
|
|
@@ -1968,7 +1968,10 @@ my %tagLookup = (
|
|
|
1968
1968
|
'composerkeywords' => { 425 => "\xa9cok" },
|
|
1969
1969
|
'compositeimage' => { 125 => 0xa460, 539 => 'CompositeImage' },
|
|
1970
1970
|
'compositeimagecount' => { 125 => 0xa461, 539 => 'CompositeImageCount' },
|
|
1971
|
+
'compositeimagecount1' => { 133 => 0x1151 },
|
|
1972
|
+
'compositeimagecount2' => { 133 => 0x1152 },
|
|
1971
1973
|
'compositeimageexposuretimes' => { 125 => 0xa462, 539 => 'CompositeImageExposureTimes' },
|
|
1974
|
+
'compositeimagemode' => { 133 => 0x1150 },
|
|
1972
1975
|
'composition' => { 520 => 'Composition' },
|
|
1973
1976
|
'compositionadjust' => { 397 => '0.1' },
|
|
1974
1977
|
'compositionadjustrotation' => { 397 => 0x7 },
|
|
@@ -5098,6 +5101,7 @@ my %tagLookup = (
|
|
|
5098
5101
|
'multiframenoisereduction' => { 455 => 0x35, 467 => 0x200b, 472 => 0x15 },
|
|
5099
5102
|
'multiframenreffect' => { 467 => 0x2023 },
|
|
5100
5103
|
'multifunctionlock' => { 90 => 0x70f },
|
|
5104
|
+
'multipleexposure' => { 133 => 0x1037 },
|
|
5101
5105
|
'multipleexposuremode' => { 250 => 0x1bc, 252 => 0x98, 255 => 0x8c, 256 => 0x9a, 257 => 0x9a, 339 => 0x101c },
|
|
5102
5106
|
'multipleexposureset' => { 378 => '10.1' },
|
|
5103
5107
|
'multisample' => { 272 => 0x40 },
|
|
@@ -7675,7 +7679,7 @@ my %tagLookup = (
|
|
|
7675
7679
|
'whitebalancebias' => { 119 => 0x2011, 340 => 0x304, 360 => 0x23 },
|
|
7676
7680
|
'whitebalanceblue' => { 79 => 0x7 },
|
|
7677
7681
|
'whitebalancebracket' => { 335 => 0x502, 340 => 0x303 },
|
|
7678
|
-
'whitebalancebracketing' => { 191 => 0x22, 194 => 0x2c, 464 => 0x2c },
|
|
7682
|
+
'whitebalancebracketing' => { 133 => 0x1102, 191 => 0x22, 194 => 0x2c, 464 => 0x2c },
|
|
7679
7683
|
'whitebalancebuttonplaybackmode' => { 331 => 0x1c5, 332 => 0x1dd },
|
|
7680
7684
|
'whitebalancecomp' => { 343 => 0x1001 },
|
|
7681
7685
|
'whitebalancedetected' => { 145 => 0x3fb },
|
|
@@ -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 28650 tags, with 17839 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
|
|
@@ -11539,8 +11539,8 @@ file name combined with the hierarchical protobuf field numbers.
|
|
|
11539
11539
|
ExifTool currently extracts timed GPS plus a few other tags from DJI devices
|
|
11540
11540
|
which use the following protocols: dvtm_AVATA2.proto (Avata 2),
|
|
11541
11541
|
dvtm_ac203.proto (Osmo Action 4), dvtm_ac204.proto (Osmo Action 5),
|
|
11542
|
-
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30)
|
|
11543
|
-
|
|
11542
|
+
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30),
|
|
11543
|
+
dvtm_Mini4_Pro.proto (Mini 4 Pro) and dvtm_dji_neo.proto (DJI Neo).
|
|
11544
11544
|
|
|
11545
11545
|
Note that with the protobuf format, numerical tags missing from the output
|
|
11546
11546
|
for a given protocol should be considered to have the default value of 0.
|
|
@@ -11596,6 +11596,18 @@ for a given protocol should be considered to have the default value of 0.
|
|
|
11596
11596
|
'dvtm_ac204_3-4-2-1' GPSInfo DJI GPSInfo
|
|
11597
11597
|
'dvtm_ac204_3-4-2-2' GPSAltitude no
|
|
11598
11598
|
'dvtm_ac204_3-4-2-6-1' GPSDateTime no
|
|
11599
|
+
'dvtm_dji_neo_1-1-5' SerialNumber no
|
|
11600
|
+
'dvtm_dji_neo_1-1-10' Model no
|
|
11601
|
+
'dvtm_dji_neo_2-2-3-1' SerialNumber2 no
|
|
11602
|
+
'dvtm_dji_neo_2-3' FrameInfo DJI FrameInfo
|
|
11603
|
+
'dvtm_dji_neo_3-1-2' TimeStamp no
|
|
11604
|
+
'dvtm_dji_neo_3-2-2-1' ISO no
|
|
11605
|
+
'dvtm_dji_neo_3-2-4-1' ShutterSpeed no
|
|
11606
|
+
'dvtm_dji_neo_3-2-6-1' ColorTemperature no
|
|
11607
|
+
'dvtm_dji_neo_3-2-10-1' FNumber no
|
|
11608
|
+
'dvtm_dji_neo_3-4-3' DroneInfo DJI DroneInfo
|
|
11609
|
+
'dvtm_dji_neo_3-4-4-1' GPSInfo DJI GPSInfo
|
|
11610
|
+
'dvtm_dji_neo_3-4-4-2' AbsoluteAltitude no
|
|
11599
11611
|
'dvtm_pm320_1-1-5' SerialNumber no
|
|
11600
11612
|
'dvtm_pm320_1-1-10' Model no
|
|
11601
11613
|
'dvtm_pm320_2-2' FrameInfo DJI FrameInfo
|
|
@@ -12142,6 +12154,7 @@ Tags extracted from FLIR Public image Format (FPF) files.
|
|
|
12142
12154
|
0x1032 ExposureCount int16u
|
|
12143
12155
|
0x1033 EXRAuto int16u
|
|
12144
12156
|
0x1034 EXRMode int16u
|
|
12157
|
+
0x1037 MultipleExposure int16u
|
|
12145
12158
|
0x1040 ShadowTone int32s
|
|
12146
12159
|
0x1041 HighlightTone int32s
|
|
12147
12160
|
0x1044 DigitalZoom int32u
|
|
@@ -12159,9 +12172,13 @@ Tags extracted from FLIR Public image Format (FPF) files.
|
|
|
12159
12172
|
0x1053 CropSize int32u
|
|
12160
12173
|
0x1100 AutoBracketing int16u
|
|
12161
12174
|
0x1101 SequenceNumber int16u
|
|
12175
|
+
0x1102 WhiteBalanceBracketing int16u
|
|
12162
12176
|
0x1103 DriveSettings FujiFilm DriveSettings
|
|
12163
12177
|
0x1105 PixelShiftShots int16u
|
|
12164
12178
|
0x1106 PixelShiftOffset rational64s[2]
|
|
12179
|
+
0x1150 CompositeImageMode int32u
|
|
12180
|
+
0x1151 CompositeImageCount1 int16u
|
|
12181
|
+
0x1152 CompositeImageCount2 int16u
|
|
12165
12182
|
0x1153 PanoramaAngle int16u
|
|
12166
12183
|
0x1154 PanoramaDirection int16u
|
|
12167
12184
|
0x1201 AdvancedFilter int32u
|
|
@@ -12353,14 +12370,15 @@ Tags found in the FujiIFD information of RAF images from some models.
|
|
|
12353
12370
|
=head3 FujiFilm MRAW Tags
|
|
12354
12371
|
|
|
12355
12372
|
Tags extracted from the M-RAW header of multi-image RAF files. The family 1
|
|
12356
|
-
group name for these tags is "M-RAW".
|
|
12373
|
+
group name for these tags is "M-RAW". Additional metadata may be extracted
|
|
12374
|
+
from the embedded RAW images with the ExtractEmbedded option.
|
|
12357
12375
|
|
|
12358
12376
|
Tag ID Tag Name Writable
|
|
12359
12377
|
------ -------- --------
|
|
12360
|
-
|
|
12361
|
-
|
|
12362
|
-
|
|
12363
|
-
|
|
12378
|
+
0x2001 RawImageNumber no
|
|
12379
|
+
0x2005 ExposureTime no
|
|
12380
|
+
0x2006 FNumber no
|
|
12381
|
+
0x2007 ISO no
|
|
12364
12382
|
|
|
12365
12383
|
=head3 FujiFilm FFMV Tags
|
|
12366
12384
|
|
|
@@ -20734,8 +20752,8 @@ Flash information tags for the K10D, K20D and K200D.
|
|
|
20734
20752
|
543 FirstFrameActionInAFC int8u
|
|
20735
20753
|
544 ActionInAFCCont int8u
|
|
20736
20754
|
545 AFCHold int8u & 0x03
|
|
20737
|
-
545.1
|
|
20738
|
-
545.2
|
|
20755
|
+
545.1 AFCPointTracking int8u & 0x0c
|
|
20756
|
+
545.2 AFCSensitivity int8u & 0x70
|
|
20739
20757
|
2400 SubjectRecognition int8u
|
|
20740
20758
|
|
|
20741
20759
|
=head3 Pentax KelvinWB Tags
|
|
@@ -30526,7 +30544,7 @@ for the official QuickTime specification.
|
|
|
30526
30544
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
30527
30545
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
30528
30546
|
most of these tags are combined into the single table below, ExifTool
|
|
30529
|
-
currently reads
|
|
30547
|
+
currently reads 111 different types of timed GPS metadata from video files.
|
|
30530
30548
|
|
|
30531
30549
|
Tag ID Tag Name Writable
|
|
30532
30550
|
------ -------- --------
|
|
@@ -1352,7 +1352,8 @@ sub SetNewValuesFromFile($$;@)
|
|
|
1352
1352
|
# get all tags from source file (including MakerNotes block)
|
|
1353
1353
|
$info = $srcExifTool->ImageInfo($srcFile);
|
|
1354
1354
|
}
|
|
1355
|
-
|
|
1355
|
+
# (allow processing to continue if we have alternate files that may have been read OK)
|
|
1356
|
+
return $info if $$info{Error} and $$info{Error} eq 'Error opening file' and not $$self{ALT_EXIFTOOL};
|
|
1356
1357
|
delete $$srcExifTool{VALUE}{Error}; # delete so we can check this later
|
|
1357
1358
|
|
|
1358
1359
|
# sort tags in file order with priority tags last
|
|
@@ -3350,13 +3350,14 @@ sub PrintLensID(@)
|
|
|
3350
3350
|
#------------------------------------------------------------------------------
|
|
3351
3351
|
# Convert XMP date/time to EXIF format
|
|
3352
3352
|
# Inputs: 0) XMP date/time string, 1) set if we aren't sure this is a date
|
|
3353
|
-
# Returns: EXIF date/time
|
|
3353
|
+
# Returns: EXIF date/time, and flag in list context if this was a standard date/time value
|
|
3354
3354
|
sub ConvertXMPDate($;$)
|
|
3355
3355
|
{
|
|
3356
3356
|
my ($val, $unsure) = @_;
|
|
3357
3357
|
if ($val =~ /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}:\d{2})(:\d{2})?\s*(\S*)$/) {
|
|
3358
3358
|
my $s = $5 || ''; # seconds may be missing
|
|
3359
3359
|
$val = "$1:$2:$3 $4$s$6"; # convert back to EXIF time format
|
|
3360
|
+
return($val, 1) if wantarray;
|
|
3360
3361
|
} elsif (not $unsure and $val =~ /^(\d{4})(-\d{2}){0,2}/) {
|
|
3361
3362
|
$val =~ tr/-/:/;
|
|
3362
3363
|
}
|
|
@@ -3647,7 +3648,12 @@ NoLoop:
|
|
|
3647
3648
|
if (($new or $fmt eq 'rational') and ConvertRational($val)) {
|
|
3648
3649
|
$rational = $rawVal;
|
|
3649
3650
|
} else {
|
|
3650
|
-
|
|
3651
|
+
my $stdDate;
|
|
3652
|
+
($val, $stdDate) = ConvertXMPDate($val, $new) if $new or $fmt eq 'date';
|
|
3653
|
+
if ($stdDate and $added) {
|
|
3654
|
+
$$tagInfo{Groups}{2} = 'Time';
|
|
3655
|
+
$$tagInfo{PrintConv} = '$self->ConvertDateTime($val)';
|
|
3656
|
+
}
|
|
3651
3657
|
}
|
|
3652
3658
|
if ($$et{XmpValidate} and $fmt and $fmt eq 'boolean' and $val!~/^True|False$/) {
|
|
3653
3659
|
if ($val =~ /^true|false$/) {
|
|
@@ -1934,7 +1934,7 @@ my %sACDSeeRegionStruct = (
|
|
|
1934
1934
|
BurstPrimary => { },
|
|
1935
1935
|
PortraitNote => { },
|
|
1936
1936
|
PortraitRequest => {
|
|
1937
|
-
Notes => '
|
|
1937
|
+
Notes => 'HDRPlus (HDRP) data', #NealKrawetz
|
|
1938
1938
|
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
|
1939
1939
|
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
|
1940
1940
|
},
|
|
@@ -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 $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.35';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -2825,6 +2825,8 @@ sub ExtractInfo($;@)
|
|
|
2825
2825
|
$isDir = 1;
|
|
2826
2826
|
} else {
|
|
2827
2827
|
$self->Error('Error opening file');
|
|
2828
|
+
# continue to process alt files if necessary
|
|
2829
|
+
$self->DoneExtract() if $$self{ALT_EXIFTOOL};
|
|
2828
2830
|
}
|
|
2829
2831
|
} else {
|
|
2830
2832
|
$self->Error('No file specified');
|
package/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const path = require(
|
|
1
|
+
const path = require("path");
|
|
2
2
|
|
|
3
|
-
module.exports = path.join(__dirname,
|
|
3
|
+
module.exports = path.join(__dirname, "bin", "exiftool");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exiftool-vendored.pl",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.35.0",
|
|
4
4
|
"description": "Vendored perl ExifTool for Node.js",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"homepage": "https://github.com/photostructure/exiftool-vendored.pl#readme",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git
|
|
12
|
+
"url": "git+https://github.com/photostructure/exiftool-vendored.pl.git"
|
|
13
13
|
},
|
|
14
14
|
"bin": {
|
|
15
15
|
"exiftool": "./bin/exiftool"
|
|
@@ -25,19 +25,20 @@
|
|
|
25
25
|
"ExifTool",
|
|
26
26
|
"EXIF"
|
|
27
27
|
],
|
|
28
|
-
"author": "Matthew McEachen <
|
|
28
|
+
"author": "Matthew McEachen <exiftool-vendored-pl@photostructure.com>",
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"scripts": {
|
|
31
|
-
"prettier": "prettier --write test/*.js",
|
|
32
31
|
"test": "mocha",
|
|
32
|
+
"fmt": "prettier --write .",
|
|
33
33
|
"update": "run-p update:*",
|
|
34
|
-
"update:deps": "
|
|
34
|
+
"update:deps": "npm-check-updates --upgrade --install always",
|
|
35
35
|
"update:exiftool": "bash -c ./update-exiftool.sh",
|
|
36
36
|
"check-version": "node check-version.js",
|
|
37
37
|
"install:pinact": "go install github.com/suzuki-shunsuke/pinact/cmd/pinact@latest",
|
|
38
38
|
"update:actions": "pinact run -u",
|
|
39
39
|
"release": "release-it"
|
|
40
40
|
},
|
|
41
|
+
"# release-it.npm.skipChecks": "Required for OIDC Trusted Publishing - bypasses npm auth checks since OIDC handles authentication automatically. See: https://github.com/release-it/release-it/issues/1244 and https://docs.npmjs.com/trusted-publishers#supported-cicd-providers",
|
|
41
42
|
"release-it": {
|
|
42
43
|
"git": {
|
|
43
44
|
"requireBranch": "main",
|
|
@@ -48,14 +49,15 @@
|
|
|
48
49
|
"release": true
|
|
49
50
|
},
|
|
50
51
|
"npm": {
|
|
51
|
-
"publish": true
|
|
52
|
+
"publish": true,
|
|
53
|
+
"skipChecks": true
|
|
52
54
|
}
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
57
|
"mocha": "^11.7.1",
|
|
56
58
|
"npm-run-all": "4.1.5",
|
|
57
59
|
"prettier": "^3.6.2",
|
|
58
|
-
"release-it": "^19.0.
|
|
60
|
+
"release-it": "^19.0.4",
|
|
59
61
|
"xml2js": "^0.6.2"
|
|
60
62
|
}
|
|
61
63
|
}
|