exiftool_vendored 12.81.0 → 12.82.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1452,7 +1452,9 @@ sub WriteQuickTime($$$)
1452
1452
  }
1453
1453
  # ($errStr is set if there was an error that could possibly be due to an unknown trailer)
1454
1454
  if ($errStr) {
1455
- if ($lastTag eq 'mdat' and not $dataPt and not $$tagTablePtr{$tag}) {
1455
+ if (($lastTag eq 'mdat' or $lastTag eq 'moov') and not $dataPt and (not $$tagTablePtr{$tag} or
1456
+ ref $$tagTablePtr{$tag} eq 'HASH' and $$tagTablePtr{$tag}{Unknown}))
1457
+ {
1456
1458
  my $nvTrail = $et->GetNewValueHash($Image::ExifTool::Extra{Trailer});
1457
1459
  if ($$et{DEL_GROUP}{Trailer} or ($nvTrail and not ($$nvTrail{Value} and $$nvTrail{Value}[0]))) {
1458
1460
  $errStr =~ s/ is too large.*//;
@@ -3167,8 +3167,8 @@ sub PushValue($$$;$)
3167
3167
  # Inputs: 0) ExifTool object ref, 1) string with embedded tag names,
3168
3168
  # 2) reference to list of found tags or undef to use FOUND_TAGS, 3) Options:
3169
3169
  # undef - set missing tags to ''
3170
- # 'Error' - issue minor error on missing tag (and return undef)
3171
- # 'Warn' - issue minor warning on missing tag (and return undef)
3170
+ # 'Error' - issue minor error on missing tag (and return undef if error sent)
3171
+ # 'Warn' - issue minor warning on missing tag (and return undef if warning sent)
3172
3172
  # 'Silent' - just return undef on missing tag (no errors/warnings)
3173
3173
  # Hash ref - defined to interpolate as variables in string instead of values
3174
3174
  # --> receives tag/value pairs for interpolation of the variables
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
50
50
  use Image::ExifTool::GPS;
51
51
  require Exporter;
52
52
 
53
- $VERSION = '3.64';
53
+ $VERSION = '3.65';
54
54
  @ISA = qw(Exporter);
55
55
  @EXPORT_OK = qw(EscapeXML UnescapeXML);
56
56
 
@@ -283,11 +283,12 @@ my %recognizedAttrs = (
283
283
  # NOTE: this lookup is duplicated in TagLookup.pm!!
284
284
  %specialStruct = (
285
285
  STRUCT_NAME => 1, # [optional] name of structure
286
- NAMESPACE => 1, # [mandatory] namespace prefix used for fields of this structure
286
+ NAMESPACE => 1, # [mandatory for XMP] namespace prefix used for fields of this structure
287
287
  NOTES => 1, # [optional] notes for documentation about this structure
288
288
  TYPE => 1, # [optional] rdf:type resource for struct (if used, the StructType flag
289
289
  # will be set automatically for all derived flattened tags when writing)
290
290
  GROUPS => 1, # [optional] specifies family group 2 name for the structure
291
+ SORT_ORDER => 1, # [optional] order for sorting fields in documentation
291
292
  );
292
293
  # XMP structures (each structure is similar to a tag table so we can
293
294
  # recurse through them in SetPropertyPath() as if they were tag tables)
@@ -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);
31
31
 
32
- $VERSION = '12.81';
32
+ $VERSION = '12.82';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -1137,6 +1137,7 @@ my @availableOptions = (
1137
1137
  [ 'NoPDFList', undef, 'flag to avoid splitting PDF List-type tag values' ],
1138
1138
  [ 'NoWarning', undef, 'regular expression for warnings to suppress' ],
1139
1139
  [ 'Password', undef, 'password for password-protected PDF documents' ],
1140
+ [ 'PrintCSV', undef, 'flag to print CSV directly (selected metadata types only)' ],
1140
1141
  [ 'PrintConv', 1, 'flag to enable print conversion' ],
1141
1142
  [ 'QuickTimeHandler', 1, 'flag to add mdir Handler to newly created Meta box' ],
1142
1143
  [ 'QuickTimePad', undef, 'flag to preserve padding of QuickTime CR3 tags' ],
@@ -2035,8 +2036,8 @@ my %systemTagsNotes = (
2035
2036
  }
2036
2037
  return join(',', @args);
2037
2038
  },
2038
- },
2039
- GeolocationBearing => { %geoInfo,
2039
+ },
2040
+ GeolocationBearing => { %geoInfo,
2040
2041
  Notes => q{
2041
2042
  compass bearing to GeolocationCity center. Geolocation tags are
2042
2043
  generated only if API L<Geolocation|../ExifTool.html#Geolocation> option is set
@@ -2650,7 +2651,6 @@ sub ExtractInfo($;@)
2650
2651
  $self->Options(Duplicates => 1) if $$options{HtmlDump};
2651
2652
  # enable Validate option if Validate tag is requested
2652
2653
  $self->Options(Validate => 1) if $$req{validate};
2653
-
2654
2654
  if (defined $_[0]) {
2655
2655
  # only initialize filename if called with arguments
2656
2656
  $$self{FILENAME} = undef; # name of file (or '' if we didn't open it)
@@ -2659,6 +2659,11 @@ sub ExtractInfo($;@)
2659
2659
  $self->ParseArguments(@_); # initialize from our arguments
2660
2660
  }
2661
2661
  }
2662
+ # ignore all tags and set ExtractEmbedded if outputting CSV directly
2663
+ if ($self->Options('PrintCSV')) {
2664
+ $$self{OPTIONS}{IgnoreTags} = { all => 1 };
2665
+ $self->Options(ExtractEmbedded => 1);
2666
+ }
2662
2667
  # initialize ExifTool object members
2663
2668
  $self->Init();
2664
2669
  $$self{InExtract} = 1; # set flag indicating we are inside ExtractInfo
@@ -2839,6 +2844,7 @@ sub ExtractInfo($;@)
2839
2844
  $self->FoundTag('FileTypeExtension', '');
2840
2845
  $self->DoneExtract();
2841
2846
  $raf->Close() if $raf;
2847
+ %saveOptions and $$self{OPTIONS} = \%saveOptions;
2842
2848
  delete $$self{InExtract} unless $reEntry;
2843
2849
  return 1;
2844
2850
  }
@@ -3070,8 +3076,14 @@ sub ExtractInfo($;@)
3070
3076
  # restore necessary members when exiting re-entrant code
3071
3077
  $$self{$_} = $$reEntry{$_} foreach keys %$reEntry;
3072
3078
  SetByteOrder($saveOrder);
3079
+ } else {
3080
+ # call cleanup routines if necessary
3081
+ if ($$self{Cleanup}) {
3082
+ &$_($self) foreach @{$$self{Cleanup}};
3083
+ delete $$self{Cleanup};
3084
+ }
3085
+ delete $$self{InExtract};
3073
3086
  }
3074
- delete $$self{InExtract} unless $reEntry;
3075
3087
 
3076
3088
  # ($type may be undef without an Error when processing sub-documents)
3077
3089
  return 0 if not defined $type or exists $$self{VALUE}{Error};
@@ -5273,6 +5285,16 @@ sub AUTOLOAD
5273
5285
  return DoAutoLoad($AUTOLOAD, @_);
5274
5286
  }
5275
5287
 
5288
+ #------------------------------------------------------------------------------
5289
+ # Add cleanup routine to call before returning from Extract
5290
+ # Inputs: 0) ExifTool ref, 1) code ref to routine with ExifTool ref as an argument
5291
+ sub AddCleanup($)
5292
+ {
5293
+ my ($self, $sub) = @_;
5294
+ $$self{Cleanup} or $$self{Cleanup} = [ ];
5295
+ push @{$$self{Cleanup}}, $sub;
5296
+ }
5297
+
5276
5298
  #------------------------------------------------------------------------------
5277
5299
  # Add warning tag
5278
5300
  # Inputs: 0) ExifTool object reference, 1) warning message
@@ -954,6 +954,14 @@ by the value of the Charset option at processing time. Default is undef.
954
954
  Flag to enable automatic print conversion. Also enables inverse
955
955
  print conversion for writing. Default is 1.
956
956
 
957
+ =item PrintCSV
958
+
959
+ Flag to directly print CSV-format output rather than extracting tags
960
+ normally. Currently this feature applies only to GM PDR data (see
961
+ L<Image::ExifTool::TagNames/GM Tags>). Setting this option automatically
962
+ sets L</IgnoreTags> to "all", and L</ExtractEmbedded> to 1. Default is
963
+ undef.
964
+
957
965
  =item QuickTimeHandler
958
966
 
959
967
  Flag set to add an 'mdir' Handler to a newly created Meta box when adding
@@ -1004,8 +1012,7 @@ the list. Default is undef.
1004
1012
 
1005
1013
  Flag to save EXIF/TIFF format type as the family 6 group name when
1006
1014
  extracting information. Without this option set, the family 6 group names
1007
- are not generated. Default is undef. See the L</GetGroup> option for more
1008
- details.
1015
+ are not generated. Default is undef. See L</GetGroup> for more details.
1009
1016
 
1010
1017
  =item SavePath
1011
1018
 
@@ -2479,14 +2486,14 @@ Here is a complete list of groups for each of these families:
2479
2486
  AAC, AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP2,
2480
2487
  APP3, APP4, APP5, APP6, APP7, APP8, APP9, ASF, Audible, Canon, CanonVRD,
2481
2488
  Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC,
2482
- FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,
2483
- H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON, JUMBF,
2484
- Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC, MPEG, MPF,
2485
- MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT, PLIST, PNG,
2486
- PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic, Photoshop,
2487
- PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance, Rawzor,
2488
- Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer, VCard,
2489
- Vorbis, WTV, XML, XMP, ZIP
2489
+ FLIR, File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GM, GeoTiff,
2490
+ GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON,
2491
+ JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MISB, MNG, MOI, MPC,
2492
+ MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus, PDF, PICT,
2493
+ PLIST, PNG, PSP, Palm, PanasonicRaw, Parrot, PhotoCD, PhotoMechanic,
2494
+ Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC, RTF, Radiance,
2495
+ Rawzor, Real, Red, SVG, SigmaRaw, Sony, Stim, Theora, Torrent, Trailer,
2496
+ VCard, Vorbis, WTV, XML, XMP, ZIP
2490
2497
 
2491
2498
  =item Family 1 (Specific Location):
2492
2499
 
@@ -2494,7 +2501,7 @@ AAC, AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple,
2494
2501
  Audible, CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, CanonRaw,
2495
2502
  CanonVRD, Casio, Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta,
2496
2503
  Ducky, EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
2497
- FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS,
2504
+ FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GM, GPS,
2498
2505
  GSpherical, Garmin, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,
2499
2506
  HTML, HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv,
2500
2507
  ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.81
3
+ Version: 12.82
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('12.81.0')
4
+ VERSION = Gem::Version.new('12.82.0')
5
5
  end
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.81.0
4
+ version: 12.82.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: 2024-03-29 00:00:00.000000000 Z
12
+ date: 2024-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool
@@ -155,6 +155,7 @@ files:
155
155
  - bin/lib/Image/ExifTool/GE.pm
156
156
  - bin/lib/Image/ExifTool/GIF.pm
157
157
  - bin/lib/Image/ExifTool/GIMP.pm
158
+ - bin/lib/Image/ExifTool/GM.pm
158
159
  - bin/lib/Image/ExifTool/GPS.pm
159
160
  - bin/lib/Image/ExifTool/GeoLang/cs.pm
160
161
  - bin/lib/Image/ExifTool/GeoLang/de.pm