exiftool_vendored 12.12.0 → 12.13.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.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +14 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +26 -16
- data/bin/lib/Image/ExifTool.pm +1 -1
- data/bin/lib/Image/ExifTool.pod +3 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +4 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +9 -9
- data/bin/lib/Image/ExifTool/Sony.pm +3 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +11 -1
- data/bin/lib/Image/ExifTool/Writer.pl +15 -11
- data/bin/lib/Image/ExifTool/XMP2.pl +4 -0
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db3a7aa5240badd765f9044226898f1fdd5d89286ae3229cc33e303a07a66650
|
4
|
+
data.tar.gz: ed260754d2395c78de549a723c77f3231859f235d61cdd9d0c9defb5d26a537f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d582b2f2893382ee400e160a908c685fd7b8b3e88a8dc06548bb9092b49695ca8ae109e8eae68805d710933705f1cad8ead1e159e2d0b5051d93b95677ba4a2c
|
7
|
+
data.tar.gz: e5225a46e4d1805467cec7bb4e23ff9e2215dffcf6f1964067455de022739b406d21ff7df9faf32ed37ebd257d2a46842519e6f096c5d0f8d86dd39b236c56f2
|
data/bin/Changes
CHANGED
@@ -5,7 +5,20 @@ ExifTool Version History
|
|
5
5
|
RSS feed: https://exiftool.org/rss.xml
|
6
6
|
|
7
7
|
Note: The most recent production release is Version 12.00. (Other versions are
|
8
|
-
considered development releases, and are not uploaded to
|
8
|
+
considered development releases, and are not uploaded to MetaCPAN.)
|
9
|
+
|
10
|
+
Dec. 24, 2020 - Version 12.13
|
11
|
+
|
12
|
+
- Add time zone automatically to most string-based QuickTime date/time tags
|
13
|
+
when writing unless the PrintConv option is disabled
|
14
|
+
- Added -i HIDDEN option to ignore files with names that start with "."
|
15
|
+
- Added a few new Nikon ShutterMode values (thanks Jan Skoda)
|
16
|
+
- Added ability to write Google GCamera MicroVideo XMP tags
|
17
|
+
- Decode a new Sony tag (thanks LibRaw)
|
18
|
+
- Changed behaviour when writing only pseudo tags to return an error and avoid
|
19
|
+
writing any other tags if writing FileName fails
|
20
|
+
- Print "X image files read" message even if only 1 file is read when at least
|
21
|
+
one other file has failed the -if condition
|
9
22
|
|
10
23
|
Dec. 4, 2020 - Version 12.12
|
11
24
|
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
106
106
|
terminal window to extract and run ExifTool:
|
107
107
|
|
108
108
|
cd ~/Desktop
|
109
|
-
gzip -dc Image-ExifTool-12.
|
110
|
-
cd Image-ExifTool-12.
|
109
|
+
gzip -dc Image-ExifTool-12.13.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.13
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
112
112
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
use strict;
|
11
11
|
require 5.004;
|
12
12
|
|
13
|
-
my $version = '12.
|
13
|
+
my $version = '12.13';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -106,6 +106,7 @@ my %csvTags; # lookup for all found tags with CSV option (lower case keys
|
|
106
106
|
my %database; # lookup for database information based on file name (in ExifTool Charset)
|
107
107
|
my %filterExt; # lookup for filtered extensions
|
108
108
|
my %ignore; # directory names to ignore
|
109
|
+
my $ignoreHidden; # flag to ignore hidden files
|
109
110
|
my %preserveTime; # preserved timestamps for files
|
110
111
|
my %printFmt; # the contents of the print format file
|
111
112
|
my %setTags; # hash of list references for tags to set from files
|
@@ -468,6 +469,7 @@ undef $fileHeader;
|
|
468
469
|
undef $filtered;
|
469
470
|
undef $fixLen;
|
470
471
|
undef $forcePrint;
|
472
|
+
undef $ignoreHidden;
|
471
473
|
undef $joinLists;
|
472
474
|
undef $langOpt;
|
473
475
|
undef $listItem;
|
@@ -986,6 +988,7 @@ for (;;) {
|
|
986
988
|
my $dir = shift;
|
987
989
|
defined $dir or Error("Expecting directory name for -i option\n"), $badCmd=1, next;
|
988
990
|
$ignore{$dir} = 1;
|
991
|
+
$dir eq 'HIDDEN' and $ignoreHidden = 1;
|
989
992
|
next;
|
990
993
|
}
|
991
994
|
if (/^if(\d*)$/i) {
|
@@ -1863,7 +1866,7 @@ if (defined $deleteOrig) {
|
|
1863
1866
|
printf($o "%5d image files %s\n", $countCopyWr, $overwriteOrig ? 'moved' : 'copied') if $countCopyWr;
|
1864
1867
|
printf($o "%5d files weren't updated due to errors\n", $countBadWr) if $countBadWr;
|
1865
1868
|
printf($o "%5d files weren't created due to errors\n", $countBadCr) if $countBadCr;
|
1866
|
-
printf($o "%5d image files read\n", $count) if $tot>1 or ($countDir and not $totWr);
|
1869
|
+
printf($o "%5d image files read\n", $count) if ($tot+$countFailed)>1 or ($countDir and not $totWr);
|
1867
1870
|
printf($o "%5d files could not be read\n", $countBad) if $countBad;
|
1868
1871
|
printf($o "%5d output files created\n", scalar(keys %created)) if $textOut;
|
1869
1872
|
printf($o "%5d output files appended\n", scalar(keys %appended)) if %appended;
|
@@ -2933,14 +2936,19 @@ sub SetImageInfo($$$)
|
|
2933
2936
|
}
|
2934
2937
|
# quickly rename file and/or set file date if this is all we are doing
|
2935
2938
|
if ($numSet == $numPseudo) {
|
2936
|
-
my $r1 =
|
2937
|
-
|
2938
|
-
|
2939
|
-
|
2940
|
-
|
2941
|
-
|
2939
|
+
my ($r0, $r1, $r2, $r3) = (0, 0, 0, 0);
|
2940
|
+
if (defined $outfile) {
|
2941
|
+
$r0 = $et->SetFileName($file, $outfile);
|
2942
|
+
$file = $$et{NewName} if $r0 > 0; # continue with new name if changed
|
2943
|
+
}
|
2944
|
+
unless ($r0 < 0) {
|
2945
|
+
$r1 = $et->SetFileModifyDate($file,undef,'FileCreateDate');
|
2946
|
+
$r2 = $et->SetFileModifyDate($file);
|
2947
|
+
$r3 = $et->SetSystemTags($file);
|
2948
|
+
}
|
2949
|
+
if ($r0 > 0 or $r1 > 0 or $r2 > 0 or $r3 > 0) {
|
2942
2950
|
++$countGoodWr;
|
2943
|
-
} elsif ($
|
2951
|
+
} elsif ($r0 < 0 or $r1 < 0 or $r2 < 0 or $r3 < 0) {
|
2944
2952
|
EFile($infile);
|
2945
2953
|
++$countBadWr;
|
2946
2954
|
return 0;
|
@@ -2949,8 +2957,7 @@ sub SetImageInfo($$$)
|
|
2949
2957
|
++$countSameWr;
|
2950
2958
|
}
|
2951
2959
|
if (defined $hardLink or defined $symLink or defined $testName) {
|
2952
|
-
|
2953
|
-
DoHardLink($et, $src, $hardLink, $symLink, $testName);
|
2960
|
+
DoHardLink($et, $file, $hardLink, $symLink, $testName);
|
2954
2961
|
}
|
2955
2962
|
return 1;
|
2956
2963
|
}
|
@@ -3686,6 +3693,7 @@ sub ScanDir($$;$)
|
|
3686
3693
|
next;
|
3687
3694
|
}
|
3688
3695
|
next if $endThisDir;
|
3696
|
+
next if $ignoreHidden and $file =~ /^\./; # ignore hidden files if specified
|
3689
3697
|
# apply rules from -ext options
|
3690
3698
|
my $accepted;
|
3691
3699
|
if ($filterFlag) {
|
@@ -5355,7 +5363,7 @@ with this command:
|
|
5355
5363
|
|
5356
5364
|
produces output like this:
|
5357
5365
|
|
5358
|
-
-- Generated by ExifTool 12.
|
5366
|
+
-- Generated by ExifTool 12.13 --
|
5359
5367
|
File: a.jpg - 2003:10:31 15:44:19
|
5360
5368
|
(f/5.6, 1/60s, ISO 100)
|
5361
5369
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5800,7 +5808,9 @@ name, or a full path. If a full path is specified, it must match the
|
|
5800
5808
|
Directory tag exactly to be ignored. Use multiple B<-i> options to ignore
|
5801
5809
|
more than one directory name. A special I<DIR> value of C<SYMLINKS> (case
|
5802
5810
|
sensitive) may be specified to ignore symbolic links when the B<-r> option
|
5803
|
-
is used.
|
5811
|
+
is used. As well, a value of C<HIDDEN> (case sensitive) may be used to
|
5812
|
+
ignore files with names that start with a "." (ie. hidden files on Unix
|
5813
|
+
systems) when scanning a directory.
|
5804
5814
|
|
5805
5815
|
=item B<-if>[I<NUM>] I<EXPR>
|
5806
5816
|
|
@@ -6487,9 +6497,9 @@ For example, the following command may be used to remove duplicate Keywords:
|
|
6487
6497
|
The B<-sep> option is necessary to split the string back into individual
|
6488
6498
|
list items when writing to a list-type tag.
|
6489
6499
|
|
6490
|
-
An optional flag argument may be set to 1 to cause C<NoDups> to
|
6491
|
-
if no duplicates existed, thus preventing the file from being
|
6492
|
-
unnecessarily:
|
6500
|
+
An optional flag argument may be set to 1 to cause C<NoDups> to set C<$_> to
|
6501
|
+
undef if no duplicates existed, thus preventing the file from being
|
6502
|
+
rewritten unnecessarily:
|
6493
6503
|
|
6494
6504
|
exiftool -sep '##' '-keywords<${keywords;NoDups(1)}' a.jpg
|
6495
6505
|
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
30
30
|
|
31
|
-
$VERSION = '12.
|
31
|
+
$VERSION = '12.13';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -1902,7 +1902,9 @@ file or creating the link.
|
|
1902
1902
|
|
1903
1903
|
=item Notes:
|
1904
1904
|
|
1905
|
-
Will not overwrite existing files. New directories are created as necessary.
|
1905
|
+
Will not overwrite existing files. New directories are created as necessary.
|
1906
|
+
If the file is successfully renamed, the new file name may be accessed via
|
1907
|
+
C<$$exifTool{NewName}>.
|
1906
1908
|
|
1907
1909
|
=back
|
1908
1910
|
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
35
35
|
use Image::ExifTool::Validate;
|
36
36
|
use Image::ExifTool::MacOS;
|
37
37
|
|
38
|
-
$VERSION = '3.
|
38
|
+
$VERSION = '3.40';
|
39
39
|
@ISA = qw(Exporter);
|
40
40
|
|
41
41
|
sub NumbersFirst($$);
|
@@ -457,6 +457,11 @@ values. However, if the L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> API optio
|
|
457
457
|
assume these values are properly stored as UTC, and will convert them to
|
458
458
|
local time when extracting.
|
459
459
|
|
460
|
+
When writing string-based date/time tags, the system time zone is added if
|
461
|
+
the PrintConv option is enabled and no time zone is specified. This is
|
462
|
+
because Apple software may display a crazy values if the time zone is
|
463
|
+
missing for some tags.
|
464
|
+
|
460
465
|
See
|
461
466
|
L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
|
462
467
|
for the official specification.
|
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
62
62
|
use Image::ExifTool::Exif;
|
63
63
|
use Image::ExifTool::GPS;
|
64
64
|
|
65
|
-
$VERSION = '3.
|
65
|
+
$VERSION = '3.90';
|
66
66
|
|
67
67
|
sub LensIDConv($$$);
|
68
68
|
sub ProcessNikonAVI($$$);
|
@@ -1401,8 +1401,9 @@ my %binaryDataAttrs = (
|
|
1401
1401
|
16 => 'Electronic',
|
1402
1402
|
# 33 => ? seen for 1J2
|
1403
1403
|
48 => 'Electronic Front Curtain',
|
1404
|
-
|
1405
|
-
|
1404
|
+
64 => 'Electronic (Movie)', #JanSkoda (Z6II)
|
1405
|
+
80 => 'Auto (Mechanical)', #JanSkoda (Z6II)
|
1406
|
+
81 => 'Auto (Electronic Front Curtain)', #JanSkoda (Z6II)
|
1406
1407
|
},
|
1407
1408
|
},
|
1408
1409
|
0x0035 => { #32
|
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
47
47
|
use Image::ExifTool::Exif;
|
48
48
|
use Image::ExifTool::GPS;
|
49
49
|
|
50
|
-
$VERSION = '2.
|
50
|
+
$VERSION = '2.56';
|
51
51
|
|
52
52
|
sub ProcessMOV($$;$);
|
53
53
|
sub ProcessKeys($$$);
|
@@ -214,7 +214,7 @@ my %ftypLookup = (
|
|
214
214
|
'crx ' => 'Canon Raw (.CRX)', #PH (CR3 or CRM; use Canon CompressorVersion to decide)
|
215
215
|
);
|
216
216
|
|
217
|
-
# information for time
|
217
|
+
# information for int32u date/time tags (time zero is Jan 1, 1904)
|
218
218
|
my %timeInfo = (
|
219
219
|
Notes => 'converted from UTC to local time if the QuickTimeUTC option is set',
|
220
220
|
Shift => 'Time',
|
@@ -682,7 +682,7 @@ my %eeBox = (
|
|
682
682
|
ValueConv => '$val=~tr/-/:/; $val',
|
683
683
|
ValueConvInv => '$val=~s/(\d+):(\d+):/$1-$2-/; $val',
|
684
684
|
PrintConv => '$self->ConvertDateTime($val)',
|
685
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
685
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
686
686
|
},
|
687
687
|
gps0 => { #PH (DuDuBell M1, VSYS M6L)
|
688
688
|
Name => 'GPSTrack',
|
@@ -1415,7 +1415,7 @@ my %eeBox = (
|
|
1415
1415
|
return $val;
|
1416
1416
|
},
|
1417
1417
|
PrintConv => '$self->ConvertDateTime($val)',
|
1418
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
1418
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
1419
1419
|
},
|
1420
1420
|
"\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
|
1421
1421
|
"\xa9alb" => 'Album', #PH (iTunes 8.0.2)
|
@@ -1689,7 +1689,7 @@ my %eeBox = (
|
|
1689
1689
|
return $val;
|
1690
1690
|
},
|
1691
1691
|
PrintConv => '$self->ConvertDateTime($val)',
|
1692
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
1692
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
1693
1693
|
},
|
1694
1694
|
manu => { # (SX280)
|
1695
1695
|
Name => 'Make',
|
@@ -2124,7 +2124,7 @@ my %eeBox = (
|
|
2124
2124
|
return $val;
|
2125
2125
|
},
|
2126
2126
|
PrintConv => '$self->ConvertDateTime($val)',
|
2127
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
2127
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
2128
2128
|
},
|
2129
2129
|
'@xyz' => { #PH (iPhone 3GS)
|
2130
2130
|
Name => 'GPSCoordinates',
|
@@ -3022,7 +3022,7 @@ my %eeBox = (
|
|
3022
3022
|
return $val;
|
3023
3023
|
},
|
3024
3024
|
PrintConv => '$self->ConvertDateTime($val)',
|
3025
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
3025
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
3026
3026
|
},
|
3027
3027
|
"\xa9des" => 'Description', #4
|
3028
3028
|
"\xa9enc" => 'EncodedBy', #10
|
@@ -6200,7 +6200,7 @@ my %eeBox = (
|
|
6200
6200
|
return $val;
|
6201
6201
|
},
|
6202
6202
|
PrintConv => '$self->ConvertDateTime($val)',
|
6203
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
6203
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
6204
6204
|
},
|
6205
6205
|
description => { },
|
6206
6206
|
director => { },
|
@@ -6260,7 +6260,7 @@ my %eeBox = (
|
|
6260
6260
|
return $val;
|
6261
6261
|
},
|
6262
6262
|
PrintConv => '$self->ConvertDateTime($val)',
|
6263
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
6263
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
6264
6264
|
},
|
6265
6265
|
'direction.facing' => { Name => 'CameraDirection', Groups => { 2 => 'Location' } },
|
6266
6266
|
'direction.motion' => { Name => 'CameraMotion', Groups => { 2 => 'Location' } },
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
34
34
|
use Image::ExifTool::Exif;
|
35
35
|
use Image::ExifTool::Minolta;
|
36
36
|
|
37
|
-
$VERSION = '3.
|
37
|
+
$VERSION = '3.34';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -6064,6 +6064,7 @@ my %pictureProfile2010 = (
|
|
6064
6064
|
29 => 'Gamma ITU709 (800%)',
|
6065
6065
|
31 => 'Gamma S-Log3 (PP8 or PP9)', #14
|
6066
6066
|
33 => 'Gamma HLG2 (PP10)', #14
|
6067
|
+
34 => 'Gamma HLG3', #IB
|
6067
6068
|
},
|
6068
6069
|
);
|
6069
6070
|
my %isoSetting2010 = (
|
@@ -9507,6 +9508,7 @@ my %isoSetting2010 = (
|
|
9507
9508
|
Name => 'DistortionCorrParams',
|
9508
9509
|
Format => 'int16s[16]',
|
9509
9510
|
},
|
9511
|
+
0x0070 => { %pictureProfile2010 }, #IB
|
9510
9512
|
0x0071 => {
|
9511
9513
|
Name => 'FocalLength',
|
9512
9514
|
Format => 'int16u',
|
@@ -3976,6 +3976,10 @@ my %tagLookup = (
|
|
3976
3976
|
'meteringtime' => { 267 => '22.2', 269 => '3.2', 272 => '17.1', 273 => '18.1', 276 => '7.3', 277 => '18.1', 278 => '3.2', 282 => '19.1' },
|
3977
3977
|
'micro1version' => { 369 => 0x1f },
|
3978
3978
|
'micro2version' => { 369 => 0x2d },
|
3979
|
+
'microvideo' => { 447 => 'MicroVideo' },
|
3980
|
+
'microvideooffset' => { 447 => 'MicroVideoOffset' },
|
3981
|
+
'microvideopresentationtimestampus' => { 447 => 'MicroVideoPresentationTimestampUs' },
|
3982
|
+
'microvideoversion' => { 447 => 'MicroVideoVersion' },
|
3979
3983
|
'midrangesharpness' => { 224 => 0x3b },
|
3980
3984
|
'mieversion' => { 161 => '0Vers' },
|
3981
3985
|
'mime' => { 449 => 'Mime' },
|
@@ -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 23721 tags, with 15423 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
|
@@ -3129,6 +3129,10 @@ These tags belong to the ExifTool XMP-GCamera family 1 group.
|
|
3129
3129
|
BurstPrimary string
|
3130
3130
|
DisableAutoCreation string+
|
3131
3131
|
HDRPMakerNote string
|
3132
|
+
MicroVideo integer
|
3133
|
+
MicroVideoOffset integer
|
3134
|
+
MicroVideoPresentationTimestampUs integer
|
3135
|
+
MicroVideoVersion integer
|
3132
3136
|
PortraitNote string
|
3133
3137
|
PortraitRequest string
|
3134
3138
|
PortraitVersion string
|
@@ -18642,6 +18646,7 @@ Valid for the ILCE-7SM3.
|
|
18642
18646
|
75 LensType2 no
|
18643
18647
|
77 LensType no
|
18644
18648
|
79 DistortionCorrParams no
|
18649
|
+
112 PictureProfile no
|
18645
18650
|
113 FocalLength no
|
18646
18651
|
115 MinFocalLength no
|
18647
18652
|
117 MaxFocalLength no
|
@@ -25340,6 +25345,11 @@ values. However, if the QuickTimeUTC API option is set, then ExifTool will
|
|
25340
25345
|
assume these values are properly stored as UTC, and will convert them to
|
25341
25346
|
local time when extracting.
|
25342
25347
|
|
25348
|
+
When writing string-based date/time tags, the system time zone is added if
|
25349
|
+
the PrintConv option is enabled and no time zone is specified. This is
|
25350
|
+
because Apple software may display a crazy values if the time zone is
|
25351
|
+
missing for some tags.
|
25352
|
+
|
25343
25353
|
See
|
25344
25354
|
L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
|
25345
25355
|
for the official specification.
|
@@ -1987,12 +1987,12 @@ sub SetFileName($$;$$$)
|
|
1987
1987
|
local (*EXIFTOOL_SFN_IN, *EXIFTOOL_SFN_OUT);
|
1988
1988
|
# renaming didn't work, so copy the file instead
|
1989
1989
|
unless ($self->Open(\*EXIFTOOL_SFN_IN, $file)) {
|
1990
|
-
$self->
|
1990
|
+
$self->Error("Error opening '${file}'");
|
1991
1991
|
return -1;
|
1992
1992
|
}
|
1993
1993
|
unless ($self->Open(\*EXIFTOOL_SFN_OUT, $newName, '>')) {
|
1994
1994
|
close EXIFTOOL_SFN_IN;
|
1995
|
-
$self->
|
1995
|
+
$self->Error("Error creating '${newName}'");
|
1996
1996
|
return -1;
|
1997
1997
|
}
|
1998
1998
|
binmode EXIFTOOL_SFN_IN;
|
@@ -2005,7 +2005,7 @@ sub SetFileName($$;$$$)
|
|
2005
2005
|
close EXIFTOOL_SFN_IN;
|
2006
2006
|
if ($err) {
|
2007
2007
|
$self->Unlink($newName); # erase bad output file
|
2008
|
-
$self->
|
2008
|
+
$self->Error("Error writing '${newName}'");
|
2009
2009
|
return -1;
|
2010
2010
|
}
|
2011
2011
|
# preserve modification time
|
@@ -2133,20 +2133,24 @@ sub WriteInfo($$;$$)
|
|
2133
2133
|
}
|
2134
2134
|
if ($numNew == $numPseudo) {
|
2135
2135
|
$rtnVal = 2;
|
2136
|
+
if ((defined $newFileName or defined $newDir) and not ref $infile) {
|
2137
|
+
my $result = $self->SetFileName($infile);
|
2138
|
+
if ($result > 0) {
|
2139
|
+
$infile = $$self{NewName}; # file name changed
|
2140
|
+
$rtnVal = 1;
|
2141
|
+
} elsif ($result < 0) {
|
2142
|
+
return 0; # don't try to do anything else
|
2143
|
+
}
|
2144
|
+
}
|
2136
2145
|
if (not ref $infile or UNIVERSAL::isa($infile,'GLOB')) {
|
2137
2146
|
$self->SetFileModifyDate($infile) > 0 and $rtnVal = 1 if $setModDate;
|
2138
2147
|
$self->SetFileModifyDate($infile, undef, 'FileCreateDate') > 0 and $rtnVal = 1 if $setCreateDate;
|
2139
2148
|
$self->SetSystemTags($infile) > 0 and $rtnVal = 1;
|
2140
2149
|
}
|
2141
|
-
if ((defined $newFileName or defined $newDir) and not ref $infile) {
|
2142
|
-
$self->SetFileName($infile) > 0 and $rtnVal = 1;
|
2143
|
-
}
|
2144
2150
|
if (defined $hardLink or defined $symLink or defined $testName) {
|
2145
|
-
|
2146
|
-
$
|
2147
|
-
$
|
2148
|
-
$symLink and $self->SetFileName($src, $symLink, 'SymLink') and $rtnVal = 1;
|
2149
|
-
$testName and $self->SetFileName($src, $testName, 'Test') and $rtnVal = 1;
|
2151
|
+
$hardLink and $self->SetFileName($infile, $hardLink, 'HardLink') and $rtnVal = 1;
|
2152
|
+
$symLink and $self->SetFileName($infile, $symLink, 'SymLink') and $rtnVal = 1;
|
2153
|
+
$testName and $self->SetFileName($infile, $testName, 'Test') and $rtnVal = 1;
|
2150
2154
|
}
|
2151
2155
|
return $rtnVal;
|
2152
2156
|
} elsif (defined $newFileName and length $newFileName) {
|
@@ -1839,6 +1839,10 @@ my %sSubVersion = (
|
|
1839
1839
|
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1840
1840
|
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1841
1841
|
},
|
1842
|
+
MicroVideo => { Writable => 'integer' },
|
1843
|
+
MicroVideoVersion => { Writable => 'integer' },
|
1844
|
+
MicroVideoOffset => { Writable => 'integer' },
|
1845
|
+
MicroVideoPresentationTimestampUs => { Writable => 'integer' },
|
1842
1846
|
);
|
1843
1847
|
|
1844
1848
|
# Google creations namespace (ref PH)
|
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: 12.
|
4
|
+
version: 12.13.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: 2020-12-
|
12
|
+
date: 2020-12-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -451,7 +451,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
451
451
|
- !ruby/object:Gem::Version
|
452
452
|
version: '0'
|
453
453
|
requirements: []
|
454
|
-
rubygems_version: 3.1.
|
454
|
+
rubygems_version: 3.1.4
|
455
455
|
signing_key:
|
456
456
|
specification_version: 4
|
457
457
|
summary: Vendored version of exiftool
|