exiftool_vendored 11.84.0 → 11.86.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 556670fc59fae5decb5a51e04b3b06905dea6319
4
- data.tar.gz: 9e3bc85760ac1695026987a774be6a9522a37355
3
+ metadata.gz: b8b2a35941a1be46ec6f6ec706a1f786697c565b
4
+ data.tar.gz: 610e367b1525b9f47bdd8081cbb74e78b5202c15
5
5
  SHA512:
6
- metadata.gz: f8937961ba4a82b6a3d198531f75146042bfba3c03a20d97e23559e47817857255eb12a3ecaa41bfc9d3e7911c51cf452a97db3840b09bdc13f1228683efc9f7
7
- data.tar.gz: 4ccab1ca6a93a5cb6a83ac2f0e34dc15655ef76c9724d5dba798b179b43e02dc140b325cc2c192c7b7444e9aea92cd1dea0ba9963abac10b56a5c3a42fd49757
6
+ metadata.gz: 412cc259f036526b23e5c6de1e9f960420c726fb52bcb230e310aea4d3cdcaa5d515ba4b5defc0dec28bc9eec52a031aacadf6de29b487b8d68b7c2aae5b97cd
7
+ data.tar.gz: 3a3d6888e8e2eb99bcc744a50f29dbe4fd210fe2127af4201a07a6452306ae20f962bea8584afc84ee585db127f1a53c20635f5338446af07019f1cca49d42e4
@@ -4,12 +4,32 @@ ExifTool Version History
4
4
 
5
5
  RSS feed: https://exiftool.org/rss.xml
6
6
 
7
- (I'll be on vacation Jan 14-23/2020, so don't expect any email or
8
- forum responses from me during this period - PH)
9
-
10
- Note: The most recent production release is Version 11.70. (Other versions are
7
+ Note: The most recent production release is Version 11.85. (Other versions are
11
8
  considered development releases, and are not uploaded to CPAN.)
12
9
 
10
+ Feb. 4, 2020 - Version 11.86
11
+
12
+ - Added support for DNG version 1.5
13
+ - Added config_files/acdsee.config to the full distribution (thanks StarGeek)
14
+ - Added a new Sony LensType (thanks Jos Roost and LibRaw)
15
+ - Decode two more bits in Nikon LensType (thanks LibRaw)
16
+ - Decode QuickTime MovieFragmentSequence
17
+ - Patched HEIC writer to add missing iref box if necessary
18
+ - Fixed typo in a Canon LensType value
19
+ - API Changes:
20
+ - Patched ImageInfo() to recognize a stringified object as a file name
21
+
22
+ Jan. 28, 2020 - Version 11.85 (production release)
23
+
24
+ - Added a new Sony LensType (thanks Jos Roost)
25
+ - Added a new Olympus CameraType (thanks LibRaw)
26
+ - Added a two new Pentax LensType values
27
+ - Added a new FujiFilm FocusMode
28
+ - Decode timed GPS from Akaso dashcam MOV videos
29
+ - Decode Insta360 trailer from INSP images and made Insta360 a deletable group
30
+ - Patched kml.fmt file to limit maximum image size (thanks Fedor Kotov)
31
+ - Fixed problem decoding values from Leica M10 and S maker notes
32
+
13
33
  Jan. 10, 2020 - Version 11.84
14
34
 
15
35
  - Decode accelerometer data from timed metadata of more dashcam videos
@@ -15,6 +15,7 @@ arg_files/xmp2exif.args
15
15
  arg_files/xmp2gps.args
16
16
  arg_files/xmp2iptc.args
17
17
  arg_files/xmp2pdf.args
18
+ config_files/acdsee.config
18
19
  config_files/age.config
19
20
  config_files/bibble.config
20
21
  config_files/convert_regions.config
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.84",
50
+ "version" : "11.86",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: '0'
29
29
  requires:
30
30
  perl: '5.004'
31
- version: '11.84'
31
+ version: '11.86'
32
32
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
data/bin/README CHANGED
@@ -105,8 +105,8 @@ your home directory, then you would type the following commands in a
105
105
  terminal window to extract and run ExifTool:
106
106
 
107
107
  cd ~/Desktop
108
- gzip -dc Image-ExifTool-11.84.tar.gz | tar -xf -
109
- cd Image-ExifTool-11.84
108
+ gzip -dc Image-ExifTool-11.86.tar.gz | tar -xf -
109
+ cd Image-ExifTool-11.86
110
110
  ./exiftool t/images/ExifTool.jpg
111
111
 
112
112
  Note: These commands extract meta information from one of the test images.
@@ -189,6 +189,7 @@ distribution package:
189
189
  xmp2iptc.args - Arguments for converting XMP to IPTC
190
190
  xmp2pdf.args - Arguments for converting XMP to PDF
191
191
  config_files/ - Sample ExifTool configuration files:
192
+ acdsee.config - Definitions for writing ACDSEE XMP regions
192
193
  age.config - Calculate Age of person in photo
193
194
  bibble.config - Definitions for writing Bibble XMP tags
194
195
  convert_regions.config - Convert between MWG, MP and IPTC regions
@@ -0,0 +1,73 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: acdsee.config
3
+ #
4
+ # Description: This config file defines acdsee XMP region tags for writing.
5
+ #
6
+ # Usage: exiftool -config acdsee.config -ACDSEETAG=VALUE FILE ...
7
+ #
8
+ # Requires: ExifTool version 10.28 or later
9
+ #
10
+ # Revisions: 2020/01/28 - Bryan K. Williams (aka StarGeek) Created
11
+ #------------------------------------------------------------------------------
12
+
13
+ my %sACDSeeDimensions = (
14
+ STRUCT_NAME => 'ACDSee Dimensions',
15
+ NAMESPACE => {'acdsee-stDim' => 'http://ns.acdsee.com/sType/Dimensions#'},
16
+ 'w' => { Writable => 'real' },
17
+ 'h' => { Writable => 'real' },
18
+ 'unit' => { },
19
+ );
20
+
21
+ my %sACDSeeArea = (
22
+ STRUCT_NAME => 'ACDSee Area',
23
+ NAMESPACE => { 'acdsee-stArea' => 'http://ns.acdsee.com/sType/Area#' },
24
+ 'x' => { Writable => 'real' },
25
+ 'y' => { Writable => 'real' },
26
+ w => { Writable => 'real' },
27
+ h => { Writable => 'real' },
28
+ );
29
+
30
+ my %sACDSeeRegionStruct = (
31
+ STRUCT_NAME => 'ACDSee Regions',
32
+ NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
33
+ ALGArea => { Struct => \%sACDSeeArea },
34
+ DLYArea => { Struct => \%sACDSeeArea },
35
+ Name => { },
36
+ NameAssignType => { },
37
+ Type => { },
38
+ );
39
+
40
+ %Image::ExifTool::UserDefined = (
41
+ # new XMP namespaces (eg. xxx) must be added to the Main XMP table:
42
+ 'Image::ExifTool::XMP::Main' => {
43
+ 'acdsee-rs' => { # <-- must be the same as the NAMESPACE prefix
44
+ SubDirectory => {
45
+ TagTable => 'Image::ExifTool::UserDefined::ACDSeeRegions'
46
+ },
47
+ },
48
+ },
49
+ );
50
+
51
+ %Image::ExifTool::UserDefined::ACDSeeRegions = (
52
+ GROUPS => { 0 => 'XMP', 1 => 'XMP-acdsee', 2 => 'Image' },
53
+ NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
54
+ WRITABLE => 'string', # (default to string-type tags)
55
+ Regions => {
56
+ Name => 'RegionInfoACDSee',
57
+ # the "Struct" entry defines the structure fields
58
+ Struct => {
59
+ # NAMESPACE => { 'acdsee-rs' => 'http://ns.acdsee.com/regions/' },
60
+ # optional structure name (used for warning messages only)
61
+ STRUCT_NAME => 'ACDSee RegionInfo',
62
+ RegionList => {
63
+ #FlatName => 'Region',
64
+ Struct => \%sACDSeeRegionStruct,
65
+ List => 'Bag',
66
+ },
67
+ AppliedToDimensions => { Struct => \%sACDSeeDimensions },
68
+ },
69
+ },
70
+ );
71
+
72
+ #------------------------------------------------------------------------------
73
+ 1; #end
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '11.84';
13
+ my $version = '11.86';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -5193,7 +5193,7 @@ with this command:
5193
5193
 
5194
5194
  produces output like this:
5195
5195
 
5196
- -- Generated by ExifTool 11.84 --
5196
+ -- Generated by ExifTool 11.86 --
5197
5197
  File: a.jpg - 2003:10:31 15:44:19
5198
5198
  (f/5.6, 1/60s, ISO 100)
5199
5199
  File: b.jpg - 2006:05:23 11:57:38
@@ -6357,6 +6357,14 @@ there are three cases where file write permission is also required:
6357
6357
  B<-overwrite_original> option is used, or b) the C<_original> backup already
6358
6358
  exists.
6359
6359
 
6360
+ Hidden files in Windows behave as read-only files when attemping to write
6361
+ any real tags to the file -- an error is generated when using the
6362
+ B<-overwrite_original_in_place>, otherwise writing should be successful and
6363
+ the hidden attribute will be removed. But the B<-if> option may be used to
6364
+ avoid processing hidden files (provided Win32API::File is available):
6365
+
6366
+ exiftool -if "$fileattributes !~ /Hidden/" ...
6367
+
6360
6368
  =head1 READING EXAMPLES
6361
6369
 
6362
6370
  B<Note>: Beware when cutting and pasting these examples into your terminal!
@@ -12,6 +12,7 @@
12
12
  # 2013/02/05 - PH Fixed camera icon to work with new Google Earth
13
13
  # 2017/02/02 - PH Organize into folders based on file directory
14
14
  # 2018/01/04 - PH Added IF to be sure position exists
15
+ # 2020/01/11 - F. Kotov Limited image preview size to 500px
15
16
  #
16
17
  # Notes: 1) Input files must contain GPSLatitude and GPSLongitude.
17
18
  # 2) Add the -ee option to extract the full track from video files.
@@ -42,10 +43,9 @@
42
43
  #[SECT] <open>0</open>
43
44
  #[IF] $gpslatitude $gpslongitude
44
45
  #[BODY] <Placemark>
45
- #[BODY] <description><![CDATA[<br/><table><tr><td>
46
- #[BODY] <img src='$main:directory/$main:filename'
47
- #[BODY] width='$imagewidth' height='$imageheight'>
48
- #[BODY] </td></tr></table>]]></description>
46
+ #[BODY] <description><![CDATA[<img src='$main:directory/$main:filename'
47
+ #[BODY] style='max-width:500px;max-height:500px;'> ]]>
48
+ #[BODY] </description>
49
49
  #[BODY] <Snippet/>
50
50
  #[BODY] <name>$filename</name>
51
51
  #[BODY] <styleUrl>#Photo</styleUrl>
@@ -19,6 +19,7 @@ use strict;
19
19
  require 5.004; # require 5.004 for UNIVERSAL::isa (otherwise 5.002 would do)
20
20
  require Exporter;
21
21
  use File::RandomAccess;
22
+ use overload;
22
23
 
23
24
  use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
24
25
  %allTables @tableOrder $exifAPP1hdr $xmpAPP1hdr $xmpExtAPP1hdr
@@ -27,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
27
28
  %mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
28
29
  %jpegMarker %specialTags %fileTypeLookup $testLen);
29
30
 
30
- $VERSION = '11.84';
31
+ $VERSION = '11.86';
31
32
  $RELEASE = '';
32
33
  @ISA = qw(Exporter);
33
34
  %EXPORT_TAGS = (
@@ -4046,7 +4047,7 @@ sub ParseArguments($;@)
4046
4047
  # handle our input arguments
4047
4048
  while (@_) {
4048
4049
  my $arg = shift;
4049
- if (ref $arg) {
4050
+ if (ref $arg and not overload::Method($arg, q[""])) {
4050
4051
  if (ref $arg eq 'ARRAY') {
4051
4052
  $$self{IO_TAG_LIST} = $arg;
4052
4053
  foreach (@$arg) {
@@ -5748,6 +5749,8 @@ sub IdentifyTrailer($;$)
5748
5749
  $type = 'MIE';
5749
5750
  } elsif ($buff =~ /\0\0(QDIOBS|SEFT)$/) {
5750
5751
  $type = 'Samsung';
5752
+ } elsif ($buff =~ /8db42d694ccc418790edff439fe026bf$/s) {
5753
+ $type = 'Insta360';
5751
5754
  }
5752
5755
  last;
5753
5756
  }
@@ -5779,9 +5782,14 @@ sub ProcessTrailers($$)
5779
5782
  my $path = $$self{PATH};
5780
5783
 
5781
5784
  for (;;) { # loop through all trailers
5782
- require "Image/ExifTool/$dirName.pm";
5783
- my $proc = "Image::ExifTool::${dirName}::Process$dirName";
5784
- my $outBuff;
5785
+ my ($proc, $outBuff);
5786
+ if ($dirName eq 'Insta360') {
5787
+ require "Image/ExifTool/QuickTimeStream.pl";
5788
+ $proc = 'Image::ExifTool::QuickTime::ProcessInsta360';
5789
+ } else {
5790
+ require "Image/ExifTool/$dirName.pm";
5791
+ $proc = "Image::ExifTool::${dirName}::Process$dirName";
5792
+ }
5785
5793
  if ($outfile) {
5786
5794
  # write to local buffer so we can add trailer in proper order later
5787
5795
  $$outfile and $$dirInfo{OutFile} = \$outBuff, $outBuff = '';
@@ -5796,8 +5804,9 @@ sub ProcessTrailers($$)
5796
5804
  push @$path, 'Trailer', $dirName;
5797
5805
 
5798
5806
  # read or write this trailer
5799
- # (proc takes Offset as offset from end of trailer to end of file,
5800
- # and returns DataPos and DirLen, and Fixup if applicable)
5807
+ # (proc takes Offset as positive offset from end of trailer to end of file,
5808
+ # and returns DataPos and DirLen, and Fixup if applicable, and updates
5809
+ # OutFile when writing)
5801
5810
  no strict 'refs';
5802
5811
  my $result = &$proc($self, $dirInfo);
5803
5812
  use strict 'refs';
@@ -7274,8 +7283,8 @@ sub DoProcessTIFF($$;$)
7274
7283
  # check DNG version
7275
7284
  if ($$self{DNGVersion}) {
7276
7285
  my $ver = $$self{DNGVersion};
7277
- # currently support up to DNG version 1.4
7278
- unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.4) {
7286
+ # currently support up to DNG version 1.5
7287
+ unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.5) {
7279
7288
  $ver =~ tr/ /./;
7280
7289
  $self->Error("DNG Version $ver not yet tested", 1);
7281
7290
  }
@@ -2240,7 +2240,7 @@ MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR,
2240
2240
  Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, PhotoCD,
2241
2241
  PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF, RIFF, RSRC,
2242
2242
  RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora, Torrent,
2243
- VCard, Vorbis, WTV, XML, XMP, ZIP
2243
+ Trailer, VCard, Vorbis, WTV, XML, XMP, ZIP
2244
2244
 
2245
2245
  =item Family 1 (Specific Location):
2246
2246
 
@@ -2252,35 +2252,35 @@ FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD,
2252
2252
  GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
2253
2253
  HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
2254
2254
  ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
2255
- ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, InteropIFD,
2256
- ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JVC, Jpeg2000, KDC_IFD, Keys,
2257
- Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
2258
- LeafSubIFD, Leica, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera, MIE-Canon,
2259
- MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens,
2260
- MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail,
2261
- MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0,
2262
- MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown, Matroska,
2263
- MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw, Motorola, NITF,
2264
- Nikon, NikonCapture, NikonCustom, NikonScan, Nintendo, Ocad, Ogg, Olympus,
2265
- OpenEXR, Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw,
2266
- Pentax, PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo,
2267
- PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2,
2268
- RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR,
2269
- Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh,
2270
- SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado,
2271
- Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent,
2272
- Track#, UserData, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP,
2273
- XMP-DICOM, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
2274
- XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
2275
- XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
2276
- XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji,
2277
- XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2278
- XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
2279
- XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx,
2280
- XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl,
2281
- XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ,
2282
- XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg,
2283
- ZIP
2255
+ ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
2256
+ InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JVC, Jpeg2000,
2257
+ KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
2258
+ KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lytro, M2TS, MAC, MIE-Audio,
2259
+ MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo,
2260
+ MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient,
2261
+ MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG,
2262
+ MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes,
2263
+ MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta,
2264
+ MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan,
2265
+ Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG, PNG-pHYs, PSP,
2266
+ Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD, PhotoMechanic,
2267
+ Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM, ProfileIFD,
2268
+ Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor,
2269
+ Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5,
2270
+ Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#,
2271
+ SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim, SubIFD,
2272
+ System, Theora, Torrent, Track#, UserData, VCalendar, VCard, Version0,
2273
+ Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-GAudio, XMP-GDepth, XMP-GFocus,
2274
+ XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1,
2275
+ XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux,
2276
+ XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam,
2277
+ XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia,
2278
+ XMP-extensis, XMP-fpv, XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt,
2279
+ XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs,
2280
+ XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi,
2281
+ XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x,
2282
+ XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS,
2283
+ XMP-xmpRights, XMP-xmpTPg, ZIP
2284
2284
 
2285
2285
  =item Family 2 (Category):
2286
2286
 
@@ -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.31';
38
+ $VERSION = '3.32';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -449,13 +449,13 @@ language code to write the default language without deleting alternate
449
449
  languages. Note that "eng" is treated as a default language when reading,
450
450
  but not when writing.
451
451
 
452
- According to the specification, many QuickTime date/time tags should be
453
- stored as UTC. Unfortunately, digital cameras often store local time values
454
- instead (presumably because they don't know the time zone). For this
455
- reason, by default ExifTool does not assume a time zone for these values.
456
- However, if the L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> API option is set, then ExifTool will assume
457
- these values are properly stored as UTC, and will convert them to local time
458
- when extracting.
452
+ According to the specification, integer-format QuickTime date/time tags
453
+ should be stored as UTC. Unfortunately, digital cameras often store local
454
+ time values instead (presumably because they don't know the time zone). For
455
+ this reason, by default ExifTool does not assume a time zone for these
456
+ values. However, if the L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> API option is set, then ExifTool will
457
+ assume these values are properly stored as UTC, and will convert them to
458
+ local time when extracting.
459
459
 
460
460
  See
461
461
  L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.33';
91
+ $VERSION = '4.34';
92
92
 
93
93
  # Note: Removed 'USM' from 'L' lenses since it is redundant - PH
94
94
  # (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -401,7 +401,7 @@ $VERSION = '4.33';
401
401
  195 => 'Canon EF 35-105mm f/4.5-5.6 USM', #32
402
402
  196 => 'Canon EF 75-300mm f/4-5.6 USM', #15/32
403
403
  197 => 'Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens',
404
- 197.1 => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HS', #50
404
+ 197.1 => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM', #50
405
405
  198 => 'Canon EF 50mm f/1.4 USM or Other Lens',
406
406
  198.1 => 'Zeiss Otus 55mm f/1.4 ZE', #JR (seen only on Sony camera)
407
407
  198.2 => 'Zeiss Otus 85mm f/1.4 ZE', #JR (NC)
@@ -1604,6 +1604,8 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
1604
1604
  TagTable => 'Image::ExifTool::Canon::FaceDetect3',
1605
1605
  },
1606
1606
  },
1607
+ # 0x32 - if length is 768, starting at offset 4 there are 6 RGGB 1/val int16 records:
1608
+ # daylight,cloudy,tungsten,fluorescent,flash,kelvin (D30 2001, ref IB)
1607
1609
  0x35 => { #PH
1608
1610
  Name => 'TimeInfo',
1609
1611
  SubDirectory => {
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
56
56
  use Image::ExifTool qw(:DataAccess :Utils);
57
57
  use Image::ExifTool::MakerNotes;
58
58
 
59
- $VERSION = '4.27';
59
+ $VERSION = '4.28';
60
60
 
61
61
  sub ProcessExif($$$);
62
62
  sub WriteExif($$$);
@@ -264,6 +264,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
264
264
  32845 => 'Pixar LogLuv', #3
265
265
  32892 => 'Sequential Color Filter', #JR (Sony ARQ)
266
266
  34892 => 'Linear Raw', #2
267
+ 51177 => 'Depth Map', # (DNG 1.5)
267
268
  );
268
269
 
269
270
  %orientation = (
@@ -278,7 +279,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
278
279
  );
279
280
 
280
281
  %subfileType = (
281
- 0 => 'Full-resolution Image',
282
+ 0 => 'Full-resolution image',
282
283
  1 => 'Reduced-resolution image',
283
284
  2 => 'Single page of multi-page image',
284
285
  3 => 'Single page of multi-page reduced-resolution image',
@@ -286,14 +287,17 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
286
287
  5 => 'Transparency mask of reduced-resolution image',
287
288
  6 => 'Transparency mask of multi-page image',
288
289
  7 => 'Transparency mask of reduced-resolution multi-page image',
290
+ 8 => 'Depth map', # (DNG 1.5)
291
+ 9 => 'Depth map of reduced-resolution image', # (DNG 1.5)
292
+ 16 => 'Enhanced image data', # (DNG 1.5)
289
293
  0x10001 => 'Alternate reduced-resolution image', # (DNG 1.2)
290
294
  0xffffffff => 'invalid', #(found in E5700 NEF's)
291
295
  BITMASK => {
292
296
  0 => 'Reduced resolution',
293
297
  1 => 'Single page',
294
298
  2 => 'Transparency mask',
295
- 3 => 'TIFF/IT final page', #20
296
- 4 => 'TIFF-FX mixed raster content', #20
299
+ 3 => 'TIFF/IT final page', #20 (repurposed as DepthMap repurposes by DNG 1.5)
300
+ 4 => 'TIFF-FX mixed raster content', #20 (repurposed as EnhancedImageData by DNG 1.5)
297
301
  },
298
302
  );
299
303
 
@@ -850,6 +854,11 @@ my %opcodeInfo = (
850
854
  PrintConv => {
851
855
  1 => 'None',
852
856
  2 => 'Horizontal differencing',
857
+ 3 => 'Floating point', # (DNG 1.5)
858
+ 34892 => 'Horizontal difference X2', # (DNG 1.5)
859
+ 34893 => 'Horizontal difference X4', # (DNG 1.5)
860
+ 34894 => 'Floating point X2', # (DNG 1.5)
861
+ 34895 => 'Floating point X4', # (DNG 1.5)
853
862
  },
854
863
  },
855
864
  0x13e => {
@@ -3964,6 +3973,57 @@ my %opcodeInfo = (
3964
3973
  },
3965
3974
  },
3966
3975
  # 0xc7d6 - int8u: 1 (SubIFD1 of Nikon Z6/Z7 NEF)
3976
+ 0xc7e9 => { # DNG 1.5
3977
+ Name => 'DepthFormat',
3978
+ Writable => 'int16u',
3979
+ Notes => 'tags 0xc7e9-0xc7ee added by DNG 1.5.0.0',
3980
+ Protected => 1,
3981
+ WriteGroup => 'IFD0',
3982
+ PrintConv => {
3983
+ 0 => 'Unknown',
3984
+ 1 => 'Linear',
3985
+ 2 => 'Inverse',
3986
+ },
3987
+ },
3988
+ 0xc7ea => { # DNG 1.5
3989
+ Name => 'DepthNear',
3990
+ Writable => 'rational64u',
3991
+ Protected => 1,
3992
+ WriteGroup => 'IFD0',
3993
+ },
3994
+ 0xc7eb => { # DNG 1.5
3995
+ Name => 'DepthFar',
3996
+ Writable => 'rational64u',
3997
+ Protected => 1,
3998
+ WriteGroup => 'IFD0',
3999
+ },
4000
+ 0xc7ec => { # DNG 1.5
4001
+ Name => 'DepthUnits',
4002
+ Writable => 'int16u',
4003
+ Protected => 1,
4004
+ WriteGroup => 'IFD0',
4005
+ PrintConv => {
4006
+ 0 => 'Unknown',
4007
+ 1 => 'Meters',
4008
+ },
4009
+ },
4010
+ 0xc7ed => { # DNG 1.5
4011
+ Name => 'DepthMeasureType',
4012
+ Writable => 'int16u',
4013
+ Protected => 1,
4014
+ WriteGroup => 'IFD0',
4015
+ PrintConv => {
4016
+ 0 => 'Unknown',
4017
+ 1 => 'Optical Axis',
4018
+ 2 => 'Optical Ray',
4019
+ },
4020
+ },
4021
+ 0xc7ee => { # DNG 1.5
4022
+ Name => 'EnhanceParams',
4023
+ Writable => 'string',
4024
+ Protected => 1,
4025
+ WriteGroup => 'IFD0',
4026
+ },
3967
4027
  0xea1c => { #13
3968
4028
  Name => 'Padding',
3969
4029
  Binary => 1,