exiftool_vendored 13.04.0 → 13.08.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +48 -0
  3. data/bin/MANIFEST +1 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +2 -2
  7. data/bin/exiftool +30 -23
  8. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  9. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  10. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  11. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -3
  12. data/bin/lib/Image/ExifTool/Canon.pm +19 -1
  13. data/bin/lib/Image/ExifTool/DJI.pm +91 -29
  14. data/bin/lib/Image/ExifTool/Exif.pm +2 -2
  15. data/bin/lib/Image/ExifTool/FITS.pm +2 -2
  16. data/bin/lib/Image/ExifTool/FLIF.pm +2 -2
  17. data/bin/lib/Image/ExifTool/FlashPix.pm +11 -11
  18. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  19. data/bin/lib/Image/ExifTool/Geolocation.pm +2 -1
  20. data/bin/lib/Image/ExifTool/GoPro.pm +3 -3
  21. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  22. data/bin/lib/Image/ExifTool/ID3.pm +3 -3
  23. data/bin/lib/Image/ExifTool/IPTC.pm +2 -2
  24. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  25. data/bin/lib/Image/ExifTool/JPEG.pm +19 -4
  26. data/bin/lib/Image/ExifTool/Jpeg2000.pm +6 -6
  27. data/bin/lib/Image/ExifTool/M2TS.pm +39 -9
  28. data/bin/lib/Image/ExifTool/MXF.pm +2 -2
  29. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  31. data/bin/lib/Image/ExifTool/PDF.pm +15 -15
  32. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  33. data/bin/lib/Image/ExifTool/PNG.pm +4 -4
  34. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  35. data/bin/lib/Image/ExifTool/PhaseOne.pm +3 -3
  36. data/bin/lib/Image/ExifTool/Photoshop.pm +63 -3
  37. data/bin/lib/Image/ExifTool/Protobuf.pm +242 -0
  38. data/bin/lib/Image/ExifTool/QuickTime.pm +23 -14
  39. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +395 -109
  40. data/bin/lib/Image/ExifTool/README +4 -1
  41. data/bin/lib/Image/ExifTool/RIFF.pm +3 -3
  42. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  43. data/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
  44. data/bin/lib/Image/ExifTool/Sony.pm +4 -3
  45. data/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -3
  46. data/bin/lib/Image/ExifTool/TagLookup.pm +6988 -6967
  47. data/bin/lib/Image/ExifTool/TagNames.pod +85 -5
  48. data/bin/lib/Image/ExifTool/VCard.pm +2 -2
  49. data/bin/lib/Image/ExifTool/Validate.pm +3 -3
  50. data/bin/lib/Image/ExifTool/WriteExif.pl +2 -2
  51. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +4 -4
  52. data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
  53. data/bin/lib/Image/ExifTool/Writer.pl +17 -17
  54. data/bin/lib/Image/ExifTool/XMP.pm +20 -10
  55. data/bin/lib/Image/ExifTool/XMP2.pl +38 -0
  56. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  57. data/bin/lib/Image/ExifTool.pm +109 -82
  58. data/bin/lib/Image/ExifTool.pod +8 -7
  59. data/bin/perl-Image-ExifTool.spec +1 -1
  60. data/lib/exiftool_vendored/version.rb +1 -1
  61. metadata +3 -2
@@ -209,7 +209,7 @@ key:
209
209
  name documentation. When this is set, numerical TagID's are
210
210
  not converted to hexadecimal notation. Unless otherwise set,
211
211
  an ID_LABEL of "Index" is assumed for tables which use
212
- ProcessBinaryData.
212
+ ProcessBinaryData or set the IS_BINARY flag.
213
213
 
214
214
  NO_ID Avoid printing "Tag ID" column in tag name documentation.
215
215
 
@@ -257,6 +257,9 @@ key:
257
257
  ALLOW_REPROCESS Flag to allow reprocessing of another directory at this
258
258
  same location in the file, bypassing recursion avoidance test.
259
259
 
260
+ IS_BINARY Set if this is a binary table and should show an Index in the
261
+ first column instead of a Tag ID.
262
+
260
263
  DATAMEMBER : BinaryData tables only. A reference to a list of sorted tag ID's
261
264
  which must be extracted as data members when writing. Must also list "var_"
262
265
  format tags and tags with Hook so offsets are properly calculated if the table
@@ -1126,7 +1126,7 @@ my %code2charset = (
1126
1126
  Name => 'TextFormat',
1127
1127
  Condition => '$$self{RIFFStreamType} eq "txts"',
1128
1128
  Hidden => 1,
1129
- RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text",3); undef',
1129
+ RawConv => '$self->Options("ExtractEmbedded") or $self->Warn("Use ExtractEmbedded option to extract timed text",3); undef',
1130
1130
  },
1131
1131
  ],
1132
1132
  );
@@ -2053,7 +2053,7 @@ sub ProcessRIFF($$)
2053
2053
  last;
2054
2054
  }
2055
2055
  if ($et->Options('LargeFileSupport') eq '2') {
2056
- $et->WarnOnce('Processing large chunk (LargeFileSupport is 2)');
2056
+ $et->Warn('Processing large chunk (LargeFileSupport is 2)');
2057
2057
  }
2058
2058
  }
2059
2059
  if ($validate) {
@@ -2176,7 +2176,7 @@ sub ProcessRIFF($$)
2176
2176
  last;
2177
2177
  }
2178
2178
  if ($et->Options('LargeFileSupport') eq '2') {
2179
- $et->WarnOnce('Processing large chunk (LargeFileSupport is 2)');
2179
+ $et->Warn('Processing large chunk (LargeFileSupport is 2)');
2180
2180
  }
2181
2181
  }
2182
2182
  if ($validate and $len2) {
@@ -182,7 +182,7 @@ sub UnescapeRTF($$$)
182
182
  $skip = $2;
183
183
  } elsif ($1 eq 'u') { # \uN
184
184
  if ($2 < 0) {
185
- $et->WarnOnce('Invalid Unicode character(s) in text');
185
+ $et->Warn('Invalid Unicode character(s) in text');
186
186
  $rtnVal .= '?';
187
187
  } else {
188
188
  require Image::ExifTool::Charset;
@@ -1008,7 +1008,7 @@ sub ProcessRicohRDT($$$)
1008
1008
  return 0 if $dirLen < 16;
1009
1009
  my $ee = $et->Options('ExtractEmbedded');
1010
1010
  unless ($ee) {
1011
- $et->WarnOnce('Use ExtractEmbedded option to read Ricoh real-time metadata',3);
1011
+ $et->Warn('Use ExtractEmbedded option to read Ricoh real-time metadata',3);
1012
1012
  return 1;
1013
1013
  }
1014
1014
  my $endian = substr($$dataPt, 8, 2);
@@ -1017,11 +1017,11 @@ sub ProcessRicohRDT($$$)
1017
1017
  my $len = Get16u($dataPt, 6);
1018
1018
  if ($dirName eq 'RicohRDTG') {
1019
1019
  if ($ee < 2) {
1020
- $et->WarnOnce('Set ExtractEmbedded option to 2 or higher to extract frame timestamps',3);
1020
+ $et->Warn('Set ExtractEmbedded option to 2 or higher to extract frame timestamps',3);
1021
1021
  return 1;
1022
1022
  }
1023
1023
  $rdtg = 0;
1024
- $et->WarnOnce('Unexpected RDTG record length') if $len > 8;
1024
+ $et->Warn('Unexpected RDTG record length') if $len > 8;
1025
1025
  }
1026
1026
  if ($count * $len + 16 > $dirLen) {
1027
1027
  $et->Warn("Truncated $dirName data");
@@ -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.70';
37
+ $VERSION = '3.71';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -2166,6 +2166,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2166
2166
  397 => 'ILCE-7CM2', #JR
2167
2167
  398 => 'ILX-LR1', #JR
2168
2168
  399 => 'ZV-E10M2', #JR
2169
+ 400 => 'ILCE-1M2', #PH
2169
2170
  },
2170
2171
  },
2171
2172
  0xb020 => { #2
@@ -11376,7 +11377,7 @@ sub ProcessEnciphered($$$)
11376
11377
  Decipher(\$data);
11377
11378
  if ($$et{DoubleCipher}) {
11378
11379
  Decipher(\$data);
11379
- $et->WarnOnce('Some Sony metadata is double-enciphered. Write any tag to fix',1);
11380
+ $et->Warn('Some Sony metadata is double-enciphered. Write any tag to fix',1);
11380
11381
  }
11381
11382
  if ($et->Options('Verbose') > 2) {
11382
11383
  my $tagInfo = $$dirInfo{TagInfo} || { Name => 'data' };
@@ -11408,7 +11409,7 @@ sub WriteEnciphered($$$)
11408
11409
  if ($$et{DoubleCipher}) {
11409
11410
  Decipher(\$data);
11410
11411
  ++$$et{CHANGED};
11411
- $et->WarnOnce('Fixed double-enciphered Sony metadata',1);
11412
+ $et->Warn('Fixed double-enciphered Sony metadata',1);
11412
11413
  }
11413
11414
  my %dirInfo = (
11414
11415
  %$dirInfo,
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
15
15
  use Image::ExifTool qw(:Utils :Vars);
16
16
  use Image::ExifTool::XMP;
17
17
 
18
- $VERSION = '1.36';
18
+ $VERSION = '1.37';
19
19
  @ISA = qw(Exporter);
20
20
 
21
21
  # set this to a language code to generate Lang module with 'MISSING' entries
@@ -158,6 +158,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
158
158
  my $writable = $format ? 'true' : 'false';
159
159
  # check our conversions to make sure we can really write this tag
160
160
  if ($writable eq 'true') {
161
+ $writable = 'false' if defined $$tagInfo{Writable} and not $$tagInfo{Writable};
161
162
  foreach ('PrintConv','ValueConv') {
162
163
  next unless $$tagInfo{$_};
163
164
  next if $$tagInfo{$_ . 'Inv'};
@@ -167,7 +168,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
167
168
  last;
168
169
  }
169
170
  }
170
- $format = $$tagInfo{Format} || $$table{FORMAT} if not defined $format or $format eq '1';
171
+ $format = $$tagInfo{Format} || $$table{FORMAT} if not $format or $format eq '1';
171
172
  $format = 'struct' if $$tagInfo{Struct};
172
173
  if (defined $format) {
173
174
  $format =~ s/\[.*\$.*\]//; # remove expressions from format
@@ -258,7 +259,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
258
259
  # add bitmask values to main lookup
259
260
  if ($$conv{BITMASK}) {
260
261
  foreach $key (keys %{$$conv{BITMASK}}) {
261
- my $mask = 0x01 << $key;
262
+ my $mask = "Bit$key";
262
263
  next if not $mask or $$conv{$mask};
263
264
  $$conv{$mask} = $$conv{BITMASK}{$key};
264
265
  }