exiftool_vendored 12.86.0 → 12.89.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +59 -1
  3. data/bin/MANIFEST +1 -0
  4. data/bin/META.json +2 -2
  5. data/bin/META.yml +17 -17
  6. data/bin/README +3 -2
  7. data/bin/build_geolocation +6 -3
  8. data/bin/config_files/onone.config +28 -0
  9. data/bin/exiftool +20 -12
  10. data/bin/lib/Image/ExifTool/AIFF.pm +8 -4
  11. data/bin/lib/Image/ExifTool/ASF.pm +4 -1
  12. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +12 -7
  13. data/bin/lib/Image/ExifTool/Canon.pm +63 -4
  14. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  15. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  16. data/bin/lib/Image/ExifTool/FujiFilm.pm +46 -4
  17. data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  18. data/bin/lib/Image/ExifTool/Geolocation.pm +6 -0
  19. data/bin/lib/Image/ExifTool/InDesign.pm +8 -4
  20. data/bin/lib/Image/ExifTool/Jpeg2000.pm +0 -1
  21. data/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
  22. data/bin/lib/Image/ExifTool/Matroska.pm +66 -10
  23. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  24. data/bin/lib/Image/ExifTool/Nikon.pm +3 -2
  25. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -0
  26. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -0
  27. data/bin/lib/Image/ExifTool/Pentax.pm +80 -14
  28. data/bin/lib/Image/ExifTool/QuickTime.pm +45 -8
  29. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +24 -2
  30. data/bin/lib/Image/ExifTool/RIFF.pm +20 -10
  31. data/bin/lib/Image/ExifTool/Sony.pm +21 -11
  32. data/bin/lib/Image/ExifTool/TagLookup.pm +6800 -6784
  33. data/bin/lib/Image/ExifTool/TagNames.pod +83 -16
  34. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +84 -15
  35. data/bin/lib/Image/ExifTool/Writer.pl +7 -4
  36. data/bin/lib/Image/ExifTool/XMP.pm +8 -8
  37. data/bin/lib/Image/ExifTool/XMP2.pl +51 -30
  38. data/bin/lib/Image/ExifTool/ZIP.pm +8 -4
  39. data/bin/lib/Image/ExifTool.pm +22 -16
  40. data/bin/lib/Image/ExifTool.pod +15 -6
  41. data/bin/perl-Image-ExifTool.spec +1 -1
  42. data/lib/exiftool_vendored/version.rb +1 -1
  43. metadata +3 -2
@@ -143,6 +143,7 @@ my %insvLimit = (
143
143
  ExposureCompensation => { PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)', Groups => { 2 => 'Camera' } },
144
144
  ISO => { Groups => { 2 => 'Camera' } },
145
145
  CameraDateTime=>{ PrintConv => '$self->ConvertDateTime($val)', Groups => { 2 => 'Time' } },
146
+ DateTimeStamp =>{ PrintConv => '$self->ConvertDateTime($val)', Groups => { 2 => 'Time' } },
146
147
  VideoTimeStamp => { Groups => { 2 => 'Video' } },
147
148
  Accelerometer=> { Notes => '3-axis acceleration in units of g' },
148
149
  AccelerometerData => { },
@@ -992,8 +993,29 @@ sub Process_text($$$;$)
992
993
  $tags{Text} = defined $tags{Text} ? $tags{Text} . "\$$tag$dat" : "\$$tag$dat";
993
994
  }
994
995
  }
995
- %tags and HandleTextTags($et, $tagTbl, \%tags), return;
996
-
996
+ if (%tags) {
997
+ unless ($tags{Accelerometer}) { # (probably unnecessary test)
998
+ # check for NextBase 622GW accelerometer data
999
+ # Example data (leading 2-byte length word has been stripped by ProcessSamples):
1000
+ # 0000: 00 00 00 00 32 30 32 32 30 39 30 35 31 36 34 30 [....202209051640]
1001
+ # 0010: 33 33 00 00 29 00 ba ff 48 ff 18 00 f2 07 5a ff [33..)...H.....Z.]
1002
+ # 0020: 64 ff e8 ff 58 ff e8 ff c1 07 43 ff 41 ff d2 ff [d...X.....C.A...]
1003
+ # 0030: 58 ff ea ff dc 07 50 ff 30 ff e0 ff 72 ff d8 ff [X.....P.0...r...]
1004
+ # 0040: f5 07 51 ff 16 ff dc ff 6a ff ca ff 33 08 45 ff [..Q.....j...3.E.]
1005
+ if ($$dataPt =~ /^\0{4}(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\0\0.{2}/s) {
1006
+ $tags{DateTimeStamp} = "$1:$2:$2 $4:$5:$6";
1007
+ my $num = unpack('x20v', $$dataPt); # number of accelerometer readings
1008
+ if ($num and $num * 12 + 22 < length $$dataPt) {
1009
+ $num *= 6;
1010
+ my @acc = unpack("x22v$num", $$dataPt);
1011
+ map { $_ = $_ - 0x10000 if $_ >= 0x8000 } @acc;
1012
+ $tags{AccelerometerData} = "@acc";
1013
+ }
1014
+ }
1015
+ }
1016
+ HandleTextTags($et, $tagTbl, \%tags);
1017
+ return;
1018
+ }
997
1019
  # check for enciphered binary GPS data
998
1020
  # BlueSkySea:
999
1021
  # 0000: 00 00 aa aa aa aa 54 54 98 9a 9b 93 9a 92 98 9a [......TT........]
@@ -30,7 +30,7 @@ use strict;
30
30
  use vars qw($VERSION $AUTOLOAD);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
 
33
- $VERSION = '1.67';
33
+ $VERSION = '1.68';
34
34
 
35
35
  sub ConvertTimecode($);
36
36
  sub ProcessSGLT($$$);
@@ -2041,11 +2041,16 @@ sub ProcessRIFF($$)
2041
2041
  last unless $moviEnd;
2042
2042
  # we arrived here because there was a problem parsing the movie data
2043
2043
  # so seek to the end to continue processing
2044
- if ($moviEnd > 0x7fffffff and not $et->Options('LargeFileSupport')) {
2045
- $et->Warn('Possibly corrupt LIST_movi data');
2046
- $et->Warn('Stopped parsing at large LIST_movi chunk (LargeFileSupport not set)');
2047
- undef $err;
2048
- last;
2044
+ if ($moviEnd > 0x7fffffff) {
2045
+ unless ($et->Options('LargeFileSupport')) {
2046
+ $et->Warn('Possibly corrupt LIST_movi data');
2047
+ $et->Warn('Stopped parsing at large LIST_movi chunk (LargeFileSupport not set)');
2048
+ undef $err;
2049
+ last;
2050
+ }
2051
+ if ($et->Options('LargeFileSupport') eq '2') {
2052
+ $et->WarnOnce('Processing large chunk (LargeFileSupport is 2)');
2053
+ }
2049
2054
  }
2050
2055
  if ($validate) {
2051
2056
  # (must actually try to read something after seeking to detect error)
@@ -2159,10 +2164,15 @@ sub ProcessRIFF($$)
2159
2164
  $moviEnd = $raf->Tell() + $len2;
2160
2165
  next; # parse into movi chunk
2161
2166
  } elsif (not $rewind) {
2162
- if ($len > 0x7fffffff and not $et->Options('LargeFileSupport')) {
2163
- $tag =~ s/([\0-\x1f\x7f-\xff])/sprintf('\\x%.2x',ord $1)/eg;
2164
- $et->Warn("Stopped parsing at large $tag chunk (LargeFileSupport not set)");
2165
- last;
2167
+ if ($len > 0x7fffffff) {
2168
+ unless ($et->Options('LargeFileSupport')) {
2169
+ $tag =~ s/([\0-\x1f\x7f-\xff])/sprintf('\\x%.2x',ord $1)/eg;
2170
+ $et->Warn("Stopped parsing at large $tag chunk (LargeFileSupport not set)");
2171
+ last;
2172
+ }
2173
+ if ($et->Options('LargeFileSupport') eq '2') {
2174
+ $et->WarnOnce('Processing large chunk (LargeFileSupport is 2)');
2175
+ }
2166
2176
  }
2167
2177
  if ($validate and $len2) {
2168
2178
  # (must actually try to read something after seeking to detect error)
@@ -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.68';
37
+ $VERSION = '3.69';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -169,6 +169,7 @@ sub PrintInvLensSpec($;$$);
169
169
  32884 => 'Sony FE 70-200mm F4 Macro G OSS II', #JR
170
170
  32885 => 'Sony FE 16-35mm F2.8 GM II', #JR
171
171
  32886 => 'Sony FE 300mm F2.8 GM OSS', #JR
172
+ 32887 => 'Sony E PZ 16-50mm F3.5-5.6 OSS II', #JR
172
173
 
173
174
  # (comment this out so LensID will report the LensModel, which is more useful)
174
175
  # 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
@@ -239,6 +240,7 @@ sub PrintInvLensSpec($;$$);
239
240
  49474.8 => 'Viltrox 50mm F1.8 FE', #JR
240
241
  49474.9 => 'Viltrox 75mm F1.2 E', #JR
241
242
  '49474.10' => 'Viltrox 20mm F2.8 FE', #JR
243
+ 49475 => 'Tamron 50-300mm F4.5-6.3 Di III VC VXD', #JR (Model A069)
242
244
 
243
245
  49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
244
246
  49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
@@ -292,15 +294,18 @@ sub PrintInvLensSpec($;$$);
292
294
  50540 => 'Sigma 14mm F1.4 DG DN | A', #JR (023)
293
295
  50543 => 'Sigma 70-200mm F2.8 DG DN OS | S', #JR (023)
294
296
  50544 => 'Sigma 23mm F1.4 DC DN | C', #JR (023)
297
+ 50545 => 'Sigma 24-70mm F2.8 DG DN II | A', #JR (024)
295
298
  50546 => 'Sigma 500mm F5.6 DG DN OS | S', #JR (024)
296
299
  50547 => 'Sigma 10-18mm F2.8 DC DN | C', #JR (023)
297
300
  50548 => 'Sigma 15mm F1.4 DG DN DIAGONAL FISHEYE | A', #JR (024)
301
+ 50549 => 'Sigma 50mm F1.2 DG DN | A', #JR (024)
302
+ 50551 => 'Sigma 28-45mm F1.8 DG DN | A', #JR (024)
298
303
 
299
304
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
300
305
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
301
306
  50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
302
307
  50995 => 'Voigtlander MACRO APO-LANTHAR 65mm F2 Aspherical', #JR
303
- 50996 => 'Voigtlander NOKTON 40mm F1.2 Aspherical', #JR
308
+ 50996 => 'Voigtlander NOKTON 40mm F1.2 Aspherical', #JR (also SE version)
304
309
  50997 => 'Voigtlander NOKTON classic 35mm F1.4', #JR
305
310
  50998 => 'Voigtlander MACRO APO-LANTHAR 110mm F2.5', #JR
306
311
  50999 => 'Voigtlander COLOR-SKOPAR 21mm F3.5 Aspherical', #IB
@@ -309,6 +314,7 @@ sub PrintInvLensSpec($;$$);
309
314
  51002 => 'Voigtlander APO-LANTHAR 50mm F2 Aspherical', #JR
310
315
  51003 => 'Voigtlander NOKTON 35mm F1.2 Aspherical SE', #JR
311
316
  51006 => 'Voigtlander APO-LANTHAR 35mm F2 Aspherical', #JR
317
+ 51007 => 'Voigtlander NOKTON 50mm F1 Aspherical', #JR
312
318
 
313
319
  # lenses listed in the Sigma MC-11 list, but not yet seen:
314
320
  # 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
@@ -330,6 +336,8 @@ sub PrintInvLensSpec($;$$);
330
336
  51516 => 'Samyang AF 24-70mm F2.8', #JR
331
337
  51517 => 'Samyang AF 50mm F1.4 II', #JR
332
338
  51518 => 'Samyang AF 135mm F1.8', #JR
339
+
340
+ 61569 => 'LAOWA FFII 10mm F2.8 C&D Dreamer', #JR
333
341
  );
334
342
 
335
343
  # ExposureProgram values (ref PH, mainly decoded from A200)
@@ -1713,7 +1721,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1713
1721
  },
1714
1722
  },{
1715
1723
  Name => 'Tag9050d',
1716
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ZV-E1)\b/',
1724
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ZV-(E1|E10M2))\b/',
1717
1725
  SubDirectory => {
1718
1726
  TagTable => 'Image::ExifTool::Sony::Tag9050d',
1719
1727
  ByteOrder => 'LittleEndian',
@@ -1975,7 +1983,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1975
1983
  },
1976
1984
  0x940c => [{
1977
1985
  Name => 'Tag940c',
1978
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10|ZV-E1)\b/',
1986
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10|ZV-E10M2|ZV-E1)\b/',
1979
1987
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag940c' },
1980
1988
  },{
1981
1989
  Name => 'Sony_0x940c',
@@ -2151,6 +2159,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2151
2159
  395 => 'ZV-1M2', #JR
2152
2160
  396 => 'ILCE-7CR', #JR
2153
2161
  397 => 'ILCE-7CM2', #JR
2162
+ 398 => 'ILX-LR1', #JR
2163
+ 399 => 'ZV-E10M2', #JR
2154
2164
  },
2155
2165
  },
2156
2166
  0xb020 => { #2
@@ -8201,7 +8211,7 @@ my %isoSetting2010 = (
8201
8211
  # number of mechanical shutter actuations, does not increase during electronic shutter / Silent Shooting
8202
8212
  Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR))/',
8203
8213
  Format => 'int32u',
8204
- Notes => 'total number of image exposures made by the camera',
8214
+ Notes => 'total number of mechanical shutter actuations',
8205
8215
  RawConv => '$val & 0x00ffffff',
8206
8216
  PrintConv => 'sprintf("%6d",$val)',
8207
8217
  PrintConvInv => '$val',
@@ -8228,6 +8238,7 @@ my %isoSetting2010 = (
8228
8238
  },
8229
8239
  0x0038 => {
8230
8240
  Name => 'InternalSerialNumber', #(NC)
8241
+ Condition => '$$self{Model} !~ /^(ZV-E10M2)/',
8231
8242
  Format => 'int8u[6]',
8232
8243
  PrintConv => 'unpack "H*", pack "C*", split " ", $val',
8233
8244
  },
@@ -8459,7 +8470,7 @@ my %isoSetting2010 = (
8459
8470
  },
8460
8471
  0x002a => [{
8461
8472
  Name => 'Quality2',
8462
- Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8473
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-(E1|E10M2))\b/',
8463
8474
  PrintConv => {
8464
8475
  0 => 'JPEG',
8465
8476
  1 => 'RAW',
@@ -8484,7 +8495,7 @@ my %isoSetting2010 = (
8484
8495
  # },
8485
8496
  0x0053 => {
8486
8497
  Name => 'ModelReleaseYear',
8487
- Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8498
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-(E1|E10M2))\b/',
8488
8499
  Format => 'int8u',
8489
8500
  PrintConv => 'sprintf("20%.2d", $val)',
8490
8501
  },
@@ -9530,7 +9541,6 @@ my %isoSetting2010 = (
9530
9541
  Name => 'FocusMode',
9531
9542
  Condition => '$$self{Model} =~ /^ILCA-/',
9532
9543
  Notes => 'ILCA models only',
9533
- Writable => 'int8u',
9534
9544
  Priority => 0,
9535
9545
  PrintConv => {
9536
9546
  0 => 'Manual',
@@ -9855,7 +9865,7 @@ my %isoSetting2010 = (
9855
9865
  WRITE_PROC => \&WriteEnciphered,
9856
9866
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9857
9867
  FORMAT => 'int8u',
9858
- NOTES => 'Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30, ZV-E1.',
9868
+ NOTES => 'Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30, ZV-E1/E10M2.',
9859
9869
  FIRST_ENTRY => 0,
9860
9870
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9861
9871
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -10018,7 +10028,7 @@ my %isoSetting2010 = (
10018
10028
  },
10019
10029
  0x089d => { # Note: 32 values for these newer models, and 32 non-zero values present for new lenses like SEL2470GM2 and SEL2070G
10020
10030
  Name => 'VignettingCorrParams',
10021
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-E1)\b/',
10031
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-(E1|E10M2))\b/',
10022
10032
  Format => 'int16s[32]',
10023
10033
  },
10024
10034
  0x08b5 => {
@@ -10057,7 +10067,7 @@ my %isoSetting2010 = (
10057
10067
  },
10058
10068
  0x0945 => {
10059
10069
  Name => 'ChromaticAberrationCorrParams',
10060
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-E1)\b/',
10070
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-(E1|E10M2))\b/',
10061
10071
  Format => 'int16s[32]',
10062
10072
  },
10063
10073
  );