exiftool_vendored 12.12.0 → 12.13.0
Sign up to get free protection for your applications and to get access to all the features.
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
|