summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorexiftool <phil@u88.n24.queensu.ca>2015-02-24 07:56:40 -0500
committerexiftool <phil@u88.n24.queensu.ca>2015-02-24 07:56:40 -0500
commit784db65d244ea84bcd700f482098e8b3a88beac3 (patch)
treec966355ef89ecec4c6a9498db0fb2203eb4f5376
parentee0e0193e1e7834e3743678ea0e4ea1fd83b805b (diff)
Update to 9.87
-rw-r--r--Changes14
-rwxr-xr-xexiftool10
-rw-r--r--html/TagNames/Microsoft.html582
-rw-r--r--html/TagNames/Sigma.html106
-rw-r--r--html/exiftool_pod.html4
-rw-r--r--html/history.html15
-rw-r--r--html/index.html12
-rw-r--r--lib/Image/ExifTool.pm2
-rw-r--r--lib/Image/ExifTool/Microsoft.pm104
-rw-r--r--lib/Image/ExifTool/Sigma.pm172
-rw-r--r--lib/Image/ExifTool/TagNames.pod1
-rw-r--r--perl-Image-ExifTool.spec2
-rwxr-xr-xwindows_exiftool10
13 files changed, 576 insertions, 458 deletions
diff --git a/Changes b/Changes
index e5516f92..a220f05e 100644
--- a/Changes
+++ b/Changes
@@ -7,6 +7,13 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
Note: The most recent production release is Version 9.76. (Other versions are
considered development releases, and are not uploaded to CPAN.)
+Feb. 24, 2015 - Version 9.87
+
+ - Added a number of new Sigma LensType values (thanks LibRaw)
+ - Fixed problem introduced in version 9.85 where "*.*" on the command line
+ matches "." and "..", causing unexpected files to be processed
+ - Fixed problem extracting some Microsoft tags from MP4/MOV videos
+
Feb. 22, 2015 - Version 9.86
- Added check for valid filename encoding when using wildcards in Windows
@@ -23,13 +30,12 @@ Feb. 22, 2015 - Version 9.86
- Changed rounding method for rational values in an attempt to fix failed
tests on FreeBSD 10.1 and Perl 5.20.1 with uselongdouble enabled
- Resolved issue with duplicate SamsungModelID values
- - Fixed problem with rounding of rational values on some platforms
Feb. 14, 2015 - Version 9.85
- - Added a few new Pentax LensType's (thanks Louis Granboulan)
- Added support for Ricoh WG-M1 maker notes
- - Decoded a couple of new Pentax tags (thanks Louis Granboulan)
+ - Added a few new Pentax LensType's (thanks Louis Granboulan)
+ - Decode a couple of new Pentax tags (thanks Louis Granboulan)
- Enhanced JSON import so an object with a missing SourceFile has the same
effect as a SourceFile of "*".
- Changed MIMEType for executable script files
@@ -51,7 +57,7 @@ Feb. 7, 2015 - Version 9.83
- Added support for new IPTC Extension version 1.2 XMP tags
- Added support for Leica X (Typ 113) maker notes
- Added read support for ChartTIFF tags
- - Added a few new Canon LensType values (thanks Norbert Wasser for 2)
+ - Added a few new Canon LensType values (thanks Norbert Wasser for two)
- Added a few new Nikon LensID's (thanks David Puschel, Robert
Rottmerhusen and Niels)
- Added a number of new Olympus ArtFilterEffect values (thanks Phiber)
diff --git a/exiftool b/exiftool
index fbdfe7d5..85abcb54 100755
--- a/exiftool
+++ b/exiftool
@@ -12,7 +12,7 @@
use strict;
require 5.004;
-my $version = '9.86';
+my $version = '9.87';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exeDir;
@@ -3176,6 +3176,7 @@ sub ProcessFiles($;$)
# Inputs: 0) ExifTool ref, 1) directory name, 2) list ref to return file names
sub ScanDir($$;$)
{
+ local $_;
my ($et, $dir, $list) = @_;
my (@fileList, $done, $file, $utf8Name);
my $enc = $et->Options('CharsetFileName');
@@ -3194,6 +3195,7 @@ sub ScanDir($$;$)
if (CheckUTF8($dir, $enc) >= 0) {
if (eval { require Win32::FindFile }) {
@fileList = Win32::FindFile::ReadDir($dir);
+ $_ = $_->cFileName foreach @fileList;
$et->Options(CharsetFileName => 'UTF8'); # now using UTF8
$utf8Name = 1; # ReadDir returns UTF-8 file names
$done = 1;
@@ -3285,9 +3287,11 @@ sub FindFileWindows($$)
($rname = quotemeta $wildname) =~ s/\\\?/./g;
$rname =~ s/\\\*/.*/g;
foreach $nm (@names) {
+ $nm = $nm->cFileName;
# make sure that FindFile behaves
# (otherwise "*.jpg" matches things like "a.jpg_original"!)
next unless $nm =~ /^$rname$/;
+ next if $nm eq '.' or $nm eq '..'; # don't match "." and ".."
my $file = "$dir$nm"; # add back directory name
push @files, $file;
$utf8FileName{$file} = 1; # flag this file name as UTF-8 encoded
@@ -4639,7 +4643,7 @@ with this command:
produces output like this:
- -- Generated by ExifTool 9.86 --
+ -- Generated by ExifTool 9.87 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -5163,7 +5167,7 @@ creation date (C<FileCreateDate>) which is not affected by this option.
This creation date is preserved only on Windows systems where Win32API::File
and Win32::API are available. For other systems, the
B<-overwrite_original_in_place> option may be used if necessary to preserve
-the creation date if necessary.
+the creation date.
=item B<-password> I<PASSWD>
diff --git a/html/TagNames/Microsoft.html b/html/TagNames/Microsoft.html
index 25efd702..f07214d5 100644
--- a/html/TagNames/Microsoft.html
+++ b/html/TagNames/Microsoft.html
@@ -904,1158 +904,1162 @@ are not shown because some are unruly GUID&#39;s.</p>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>SubTitle</td>
+<td>SharedUserRating</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SubTitleDescription</td>
+<td>SubTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>SubscriptionContentID</td>
+<td>SubTitleDescription</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>TrackNumber</td>
+<td>SubscriptionContentID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>UniqueFileIdentifier</td>
+<td>TrackNumber</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>VideoFrameRate</td>
+<td>UniqueFileIdentifier</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>VideoHeight</td>
+<td>VideoFrameRate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>VideoWidth</td>
+<td>VideoHeight</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>WMCollectionGroupID</td>
+<td>VideoWidth</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>WMCollectionID</td>
+<td>WMCollectionGroupID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>WMContentID</td>
+<td>WMCollectionID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>WMShadowFileSourceDRMType</td>
+<td>WMContentID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>WMShadowFileSourceFileType</td>
+<td>WMShadowFileSourceDRMType</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Writer</td>
+<td>WMShadowFileSourceFileType</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Year</td>
+<td>Writer</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ChapterNum</td>
+<td>Year</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TitleNum</td>
+<td>ChapterNum</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Resources</td>
+<td>TitleNum</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Complete</td>
+<td>Resources</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomeCountry-Region</td>
+<td>Complete</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TaskOwner</td>
+<td>HomeCountry-Region</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>MaxAperture</td>
+<td>TaskOwner</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OptionalAttendees</td>
+<td>MaxAperture</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomeStreet</td>
+<td>OptionalAttendees</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>RequiredAttendeeAddresses</td>
+<td>HomeStreet</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SenderAddress</td>
+<td>RequiredAttendeeAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Description</td>
+<td>SenderAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FileVersion</td>
+<td>Description</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ProductName</td>
+<td>FileVersion</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ProductVersion</td>
+<td>ProductName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>LegalTrademarks</td>
+<td>ProductVersion</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SenderName</td>
+<td>LegalTrademarks</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ParentalRatingReason</td>
+<td>SenderName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FirstName</td>
+<td>ParentalRatingReason</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Event</td>
+<td>FirstName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateImported</td>
+<td>Event</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>CameraMaker</td>
+<td>DateImported</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>CameraModel</td>
+<td>CameraMaker</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Orientation</td>
+<td>CameraModel</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ExposureTime</td>
+<td>Orientation</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>F-stop</td>
+<td>ExposureTime</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ExposureProgram</td>
+<td>F-stop</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ISOSpeed</td>
+<td>ExposureProgram</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DatePictureTaken</td>
+<td>ISOSpeed</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ExposureBias</td>
+<td>DatePictureTaken</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SubjectDistance</td>
+<td>ExposureBias</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>MeteringMode</td>
+<td>SubjectDistance</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LightSource</td>
+<td>MeteringMode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FlashMode</td>
+<td>LightSource</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FocalLength</td>
+<td>FlashMode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>HomePhone</td>
+<td>FocalLength</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>PrimaryPhone</td>
+<td>HomePhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>CellPhone</td>
+<td>PrimaryPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Birthday</td>
+<td>CellPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>PrimaryE-mail</td>
+<td>Birthday</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>JobTitle</td>
+<td>PrimaryE-mail</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>HomeCity</td>
+<td>JobTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>PersonalTitle</td>
+<td>HomeCity</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OfficeLocation</td>
+<td>PersonalTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>GivenName</td>
+<td>OfficeLocation</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>MiddleName</td>
+<td>GivenName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Suffix</td>
+<td>MiddleName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Nickname</td>
+<td>Suffix</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>PostalCode</td>
+<td>Nickname</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>StationName</td>
+<td>PostalCode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Division</td>
+<td>StationName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Kinds</td>
+<td>Division</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ClientID</td>
+<td>Kinds</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Type</td>
+<td>ClientID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FileCount</td>
+<td>Type</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TotalFileSize</td>
+<td>FileCount</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Computer</td>
+<td>TotalFileSize</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>PerceivedType</td>
+<td>Computer</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Duration</td>
+<td>PerceivedType</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateAcquired</td>
+<td>Duration</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>MediaCreated</td>
+<td>DateAcquired</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>IsRecurring</td>
+<td>MediaCreated</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Incomplete</td>
+<td>IsRecurring</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>E-mail2</td>
+<td>Incomplete</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Project</td>
+<td>E-mail2</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Gender</td>
+<td>Project</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DueDate</td>
+<td>Gender</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessCity</td>
+<td>DueDate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>WindowsFileName</td>
+<td>BusinessCity</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateArchived</td>
+<td>WindowsFileName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BusinessStateOrProvince</td>
+<td>DateArchived</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BroadcastDate</td>
+<td>BusinessStateOrProvince</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Color</td>
+<td>BroadcastDate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>StartDate</td>
+<td>Color</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Saturation</td>
+<td>StartDate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>SearchRanking</td>
+<td>Saturation</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>OtherAddress</td>
+<td>SearchRanking</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AutoSummary</td>
+<td>OtherAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Summary</td>
+<td>AutoSummary</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessHomePage</td>
+<td>Summary</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Genre</td>
+<td>BusinessHomePage</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AlbumArtist</td>
+<td>Genre</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Artist</td>
+<td>AlbumArtist</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>InitialKey</td>
+<td>Artist</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Beats-per-minute</td>
+<td>InitialKey</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Conductors</td>
+<td>Beats-per-minute</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>PartOfSet</td>
+<td>Conductors</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>SubTitle</td>
+<td>PartOfSet</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Mood</td>
+<td>SubTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AlbumTitle</td>
+<td>Mood</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Year</td>
+<td>AlbumTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TrackNumber</td>
+<td>Year</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Free-busyStatus</td>
+<td>TrackNumber</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>URL</td>
+<td>Free-busyStatus</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Description</td>
+<td>URL</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateVisited</td>
+<td>Description</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>IsDeleted</td>
+<td>DateVisited</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>HasFlag</td>
+<td>IsDeleted</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Hobbies</td>
+<td>HasFlag</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FullName</td>
+<td>Hobbies</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Street</td>
+<td>FullName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Dimensions</td>
+<td>Street</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Untitled0</td>
+<td>Dimensions</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Untitled1</td>
+<td>Untitled0</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HorizontalResolution</td>
+<td>Untitled1</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>VerticalResolution</td>
+<td>HorizontalResolution</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BitDepth</td>
+<td>VerticalResolution</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Duration</td>
+<td>BitDepth</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Bitrate</td>
+<td>Duration</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AudioSampleRate</td>
+<td>Bitrate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>AudioSampleSize</td>
+<td>AudioSampleRate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Channels</td>
+<td>AudioSampleSize</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>VideoCompression</td>
+<td>Channels</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FrameWidth</td>
+<td>VideoCompression</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FrameHeight</td>
+<td>FrameWidth</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TotalBitrate</td>
+<td>FrameHeight</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FrameRate</td>
+<td>TotalBitrate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DataRate</td>
+<td>FrameRate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Copyright</td>
+<td>DataRate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Composers</td>
+<td>Copyright</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Directors</td>
+<td>Composers</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ParentalRating</td>
+<td>Directors</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Producers</td>
+<td>ParentalRating</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Writers</td>
+<td>Producers</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Publisher</td>
+<td>Writers</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Period</td>
+<td>Publisher</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>UserWebURL</td>
+<td>Period</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>EncodedBy</td>
+<td>UserWebURL</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Rating</td>
+<td>EncodedBy</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>E-mail3</td>
+<td>Rating</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomeFax</td>
+<td>E-mail3</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Source</td>
+<td>HomeFax</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FlagColor</td>
+<td>Source</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessPhone</td>
+<td>FlagColor</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ProgramMode</td>
+<td>BusinessPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OfflineStatus</td>
+<td>ProgramMode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ClosedCaptioning</td>
+<td>OfflineStatus</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Rerun</td>
+<td>ClosedCaptioning</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SAP</td>
+<td>Rerun</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>EpisodeName</td>
+<td>SAP</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ProgramDescription</td>
+<td>EpisodeName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>StationCallSign</td>
+<td>ProgramDescription</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ChannelNumber</td>
+<td>StationCallSign</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OtherCity</td>
+<td>ChannelNumber</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>OtherStateOrProvince</td>
+<td>OtherCity</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Profession</td>
+<td>OtherStateOrProvince</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateCompleted</td>
+<td>Profession</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ReminderTime</td>
+<td>DateCompleted</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BusinessAddress</td>
+<td>ReminderTime</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OrganizerAddress</td>
+<td>BusinessAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomePOBox</td>
+<td>OrganizerAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>E-mailList</td>
+<td>HomePOBox</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>CompanyMainPhone</td>
+<td>E-mailList</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>HomePostalCode</td>
+<td>CompanyMainPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>OtherPOBox</td>
+<td>HomePostalCode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OtherCountry-Region</td>
+<td>OtherPOBox</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LastName</td>
+<td>OtherCountry-Region</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>CarPhone</td>
+<td>LastName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BusinessFax</td>
+<td>CarPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>EntryType</td>
+<td>BusinessFax</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>OtherPostalCode</td>
+<td>EntryType</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Label</td>
+<td>OtherPostalCode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomeAddress</td>
+<td>Label</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AssistantsPhone</td>
+<td>HomeAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Anniversary</td>
+<td>AssistantsPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Owner</td>
+<td>Anniversary</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SpaceFree</td>
+<td>Owner</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TotalSize</td>
+<td>SpaceFree</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>SpaceUsed</td>
+<td>TotalSize</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Priority</td>
+<td>SpaceUsed</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HasAttachments</td>
+<td>Priority</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Spouse</td>
+<td>HasAttachments</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FocalLength35mm</td>
+<td>Spouse</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>RecordingTime</td>
+<td>FocalLength35mm</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>IsCompleted</td>
+<td>RecordingTime</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OfflineAvailability</td>
+<td>IsCompleted</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>OrganizerName</td>
+<td>OfflineAvailability</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TTY-TTDPhone</td>
+<td>OrganizerName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Protected</td>
+<td>TTY-TTDPhone</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessCountry-Region</td>
+<td>Protected</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>RequiredAttendees</td>
+<td>BusinessCountry-Region</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Name</td>
+<td>RequiredAttendees</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Size</td>
+<td>Name</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Attributes</td>
+<td>Size</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateModified</td>
+<td>Attributes</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateCreated</td>
+<td>DateModified</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateAccessed</td>
+<td>DateCreated</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FolderName</td>
+<td>DateAccessed</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Type</td>
+<td>FolderName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>LinkTarget</td>
+<td>Type</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LinkStatus</td>
+<td>LinkTarget</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessPOBox</td>
+<td>LinkStatus</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ToDoTitle</td>
+<td>BusinessPOBox</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>CallbackNumber</td>
+<td>ToDoTitle</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>IsOnline</td>
+<td>CallbackNumber</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>MailingAddress</td>
+<td>IsOnline</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Telex</td>
+<td>MailingAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>EndDate</td>
+<td>Telex</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>HomeStateOrProvince</td>
+<td>EndDate</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>City</td>
+<td>HomeStateOrProvince</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>E-mailDisplayName</td>
+<td>City</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>AssistantsName</td>
+<td>E-mailDisplayName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Creator</td>
+<td>AssistantsName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>EXIFVersion</td>
+<td>Creator</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BillingInformation</td>
+<td>EXIFVersion</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Children</td>
+<td>BillingInformation</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Participants</td>
+<td>Children</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>OptionalAttendeeAddresses</td>
+<td>Participants</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Company</td>
+<td>OptionalAttendeeAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Category</td>
+<td>Company</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ContentType</td>
+<td>Category</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Status</td>
+<td>ContentType</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Language</td>
+<td>Status</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Slides</td>
+<td>Language</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Pager</td>
+<td>Slides</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>IMAddresses</td>
+<td>Pager</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Status</td>
+<td>IMAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Folder</td>
+<td>Status</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ConversationID</td>
+<td>Folder</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessStreet</td>
+<td>ConversationID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateReleased</td>
+<td>BusinessStreet</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>POBox</td>
+<td>DateReleased</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ContactNames</td>
+<td>POBox</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DocumentID</td>
+<td>ContactNames</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LensModel</td>
+<td>DocumentID</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BusinessPostalCode</td>
+<td>LensModel</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ReadStatus</td>
+<td>BusinessPostalCode</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Importance</td>
+<td>ReadStatus</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FlagStatus</td>
+<td>Importance</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FromAddresses</td>
+<td>FlagStatus</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FromNames</td>
+<td>FromAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Store</td>
+<td>FromNames</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>ToAddresses</td>
+<td>Store</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ToNames</td>
+<td>ToAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Webpage</td>
+<td>ToNames</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateSent</td>
+<td>Webpage</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>BccAddresses</td>
+<td>DateSent</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>DateReceived</td>
+<td>BccAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Attachments</td>
+<td>DateReceived</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>BccNames</td>
+<td>Attachments</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>CcAddresses</td>
+<td>BccNames</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>CcNames</td>
+<td>CcAddresses</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>FolderPath</td>
+<td>CcNames</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Path</td>
+<td>FolderPath</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>AccountName</td>
+<td>Path</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Country-Region</td>
+<td>AccountName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LensMaker</td>
+<td>Country-Region</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>WhiteBalance</td>
+<td>LensMaker</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Shared</td>
+<td>WhiteBalance</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>SharedWith</td>
+<td>Shared</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>StateOrProvince</td>
+<td>SharedWith</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>FileAs</td>
+<td>StateOrProvince</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>IsAttachment</td>
+<td>FileAs</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>TotalEditingTime</td>
+<td>IsAttachment</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>LastPrinted</td>
+<td>TotalEditingTime</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Untitled2</td>
+<td>LastPrinted</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>DateLastSaved</td>
+<td>Untitled2</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Pages</td>
+<td>DateLastSaved</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>WordCount</td>
+<td>Pages</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>ProgramName</td>
+<td>WordCount</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Title</td>
+<td>ProgramName</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Subject</td>
+<td>Title</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Author</td>
+<td>Subject</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Keywords</td>
+<td>Author</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Comments</td>
+<td>Keywords</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Contributors</td>
+<td>Comments</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Initials</td>
+<td>Contributors</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Location</td>
+<td>Initials</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Date</td>
+<td>Location</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Sensitivity</td>
+<td>Date</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>E-mailAddress</td>
+<td>Sensitivity</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
-<td>Department</td>
+<td>E-mailAddress</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr>
-<td>Mileage</td>
+<td>Department</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
<tr class=b>
+<td>Mileage</td>
+<td class=c>N</td>
+<td>&nbsp;</td></tr>
+<tr>
<td>OtherStreet</td>
<td class=c>N</td>
<td>&nbsp;</td></tr>
@@ -2063,7 +2067,7 @@ are not shown because some are unruly GUID&#39;s.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jun 23, 2014</i>
+<br><i>Last revised Feb 23, 2015</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Sigma.html b/html/TagNames/Sigma.html
index f14a4956..596a08d6 100644
--- a/html/TagNames/Sigma.html
+++ b/html/TagNames/Sigma.html
@@ -350,76 +350,118 @@ attempting to identify the specific lens model.</p>
<table class='inner sep' cellspacing=1>
<tr class=h><th>Value</th><th>LensType</th><th>Value</th><th>LensType</th></tr>
<tr><td>16</td><td>= Sigma 18-50mm F3.5-5.6 DC</td>
+<td class=b>485</td><td class=b>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
+</tr><tr><td>103</td><td>= Sigma 180mm F3.5 EX IF HSM APO Macro</td>
<td class=b>486</td><td class=b>= Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye</td>
+</tr><tr><td>104</td><td>= Sigma 150mm F2.8 EX DG HSM APO Macro</td>
+<td class=b>506</td><td class=b>= Sigma 70-300mm F4-5.6 APO Macro Super II</td>
+</tr><tr><td>105</td><td>= Sigma 180mm F3.5 EX DG HSM APO Macro</td>
+<td class=b>507</td><td class=b>= Sigma 70-300mm F4-5.6 DL Macro Super II</td>
</tr><tr><td>106</td><td>= Sigma 150mm F2.8 EX DG OS HSM APO Macro</td>
-<td class=b>508</td><td class=b>= Sigma 70-300mm F4-5.6 APO DG Macro</td>
-</tr><tr><td>107</td><td>= Sigma APO Macro 180mm F2.8 EX DG OS HSM</td>
+<td class=b>508</td><td class=b>= Sigma 70-300mm F4-5.6 DG APO Macro</td>
+</tr><tr><td>107</td><td>= Sigma 180mm F2.8 EX DG OS HSM APO Macro</td>
<td class=b>509</td><td class=b>= Sigma 70-300mm F4-5.6 DG Macro</td>
</tr><tr><td>129</td><td>= Sigma 14mm F2.8 EX Aspherical</td>
-<td class=b>571</td><td class=b>= Sigma 24-70mm F2.8 IF EX DG HSM</td>
+<td class=b>510</td><td class=b>= Sigma 17-35 F2.8-4 EX DG ASP</td>
</tr><tr><td>131</td><td>= Sigma 17-70mm F2.8-4.5 DC Macro</td>
-<td class=b>572</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
+<td class=b>512</td><td class=b>= Sigma 15-30mm F3.5-4.5 EX DG ASP DF</td>
+</tr><tr><td>134</td><td>= Sigma 100-300mm F4 EX DG HSM APO</td>
+<td class=b>513</td><td class=b>= Sigma 20-40mm F2.8 EX DG</td>
+</tr><tr><td>135</td><td>= Sigma 120-300mm F2.8 EX DG HSM APO</td>
+<td class=b>519</td><td class=b>= Sigma 17-35 F2.8-4 EX ASP HSM</td>
+</tr><tr><td>136</td><td>= Sigma 120-300mm F2.8 EX DG OS HSM APO</td>
+<td class=b>520</td><td class=b>= Sigma 100-300mm F4.5-6.7 DL</td>
+</tr><tr><td>137</td><td>= Sigma 120-300mm F2.8 DG OS HSM | S</td>
+<td class=b>521</td><td class=b>= Sigma 18-50mm F3.5-5.6 DC Macro</td>
+</tr><tr><td>143</td><td>= Sigma 600mm F8 Mirror</td>
+<td class=b>527</td><td class=b>= Sigma 100-300mm F4 EX IF HSM</td>
</tr><tr><td>145</td><td>= Sigma Lens (145)</td>
-<td class=b>581</td><td class=b>= Sigma 18-50mm F2.8 EX DC Macro</td>
+<td class=b>529</td><td class=b>= Sigma 120-300mm F2.8 EX HSM IF APO</td>
</tr><tr><td>145.1</td><td>= Sigma 15-30mm F3.5-4.5 EX DG Aspherical</td>
-<td class=b>583</td><td class=b>= Sigma 17-50mm F2.8 EX DC OS HSM</td>
+<td class=b>547</td><td class=b>= Sigma 24-60mm F2.8 EX DG</td>
</tr><tr><td>145.2</td><td>= Sigma 18-50mm F2.8 EX DG</td>
-<td class=b>589</td><td class=b>= Sigma APO 70-200mm F2.8 EX DG OS HSM</td>
+<td class=b>548</td><td class=b>= Sigma 24-70mm F2.8 EX DG Macro</td>
</tr><tr><td>145.3</td><td>= Sigma 20-40mm F2.8 EX DG</td>
-<td class=b>595</td><td class=b>= Sigma 300-800mm F5.6 EX DG APO HSM</td>
+<td class=b>549</td><td class=b>= Sigma 28-70mm F2.8 EX DG</td>
</tr><tr><td>152</td><td>= Sigma APO 800mm F5.6 EX DG HSM</td>
-<td class=b>597</td><td class=b>= Sigma 200-500mm F2.8 APO EX DG</td>
+<td class=b>566</td><td class=b>= Sigma 70-200mm F2.8 EX IF APO</td>
</tr><tr><td>165</td><td>= Sigma 70-200mm F2.8 EX</td>
-<td class=b>668</td><td class=b>= Sigma 17-70mm F2.8-4 DC Macro OS HSM</td>
+<td class=b>567</td><td class=b>= Sigma 70-200mm F2.8 EX IF HSM APO</td>
</tr><tr><td>169</td><td>= Sigma 18-50mm F2.8 EX DC</td>
+<td class=b>568</td><td class=b>= Sigma 70-200mm F2.8 EX DG IF HSM APO</td>
+</tr><tr><td>183</td><td>= Sigma 500mm F4.5 EX HSM APO</td>
+<td class=b>569</td><td class=b>= Sigma 70-200 F2.8 EX DG HSM APO Macro</td>
+</tr><tr><td>184</td><td>= Sigma 500mm F4.5 EX DG HSM APO</td>
+<td class=b>571</td><td class=b>= Sigma 24-70mm F2.8 IF EX DG HSM</td>
+</tr><tr><td>194</td><td>= Sigma 300mm F2.8 EX HSM APO</td>
+<td class=b>572</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
+</tr><tr><td>195</td><td>= Sigma 300mm F2.8 EX DG HSM APO</td>
+<td class=b>579</td><td class=b>= Sigma 70-200mm F2.8 EX DG HSM APO Macro</td>
+</tr><tr><td>200</td><td>= Sigma 12-24mm F4.5-5.6 EX DG ASP HSM</td>
+<td class=b>580</td><td class=b>= Sigma 18-50mm F2.8 EX DC</td>
+</tr><tr><td>201</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
+<td class=b>581</td><td class=b>= Sigma 18-50mm F2.8 EX DC Macro</td>
+</tr><tr><td>202</td><td>= Sigma 10-20mm F3.5 EX DC HSM</td>
+<td class=b>582</td><td class=b>= Sigma 18-50mm F2.8 EX DC HSM Macro</td>
+</tr><tr><td>203</td><td>= Sigma 8-16mm F4.5-5.6 DC HSM</td>
+<td class=b>583</td><td class=b>= Sigma 17-50mm F2.8 EX DC OS HSM</td>
+</tr><tr><td>204</td><td>= Sigma 12-24mm F4.5-5.6 DG HSM II</td>
+<td class=b>589</td><td class=b>= Sigma APO 70-200mm F2.8 EX DG OS HSM</td>
+</tr><tr><td>210</td><td>= Sigma 18-35mm F1.8 DC HSM | A</td>
+<td class=b>595</td><td class=b>= Sigma 300-800mm F5.6 EX DG APO HSM</td>
+</tr><tr><td>256</td><td>= Sigma 105mm F2.8 EX Macro</td>
+<td class=b>597</td><td class=b>= Sigma 200-500mm F2.8 APO EX DG</td>
+</tr><tr><td>257</td><td>= Sigma 105mm F2.8 EX DG Macro</td>
+<td class=b>668</td><td class=b>= Sigma 17-70mm F2.8-4 DC Macro OS HSM</td>
+</tr><tr><td>258</td><td>= Sigma 105mm F2.8 EX DG OS HSM Macro</td>
<td class=b>686</td><td class=b>= Sigma 50-200mm F4-5.6 DC OS HSM</td>
-</tr><tr><td>184</td><td>= Sigma 500mm F4.5 EX DG APO HSM</td>
+</tr><tr><td>270</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
<td class=b>691</td><td class=b>= Sigma 50-150mm F2.8 EX DC APO HSM II</td>
-</tr><tr><td>195</td><td>= Sigma 300mm F2.8 EX APO DG HSM</td>
+</tr><tr><td>300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
<td class=b>692</td><td class=b>= Sigma APO 50-150mm F2.8 EX DC OS HSM</td>
-</tr><tr><td>201</td><td>= Sigma 10-20mm F4-5.6 EX DC HSM</td>
+</tr><tr><td>301</td><td>= Sigma 30mm F1.4 DC HSM | A</td>
<td class=b>728</td><td class=b>= Sigma 120-400mm F4.5-5.6 DG APO OS HSM</td>
-</tr><tr><td>202</td><td>= Sigma 10-20mm F3.5 EX DC HSM</td>
+</tr><tr><td>310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
<td class=b>737</td><td class=b>= Sigma 150-500mm F5-6.3 APO DG OS HSM</td>
-</tr><tr><td>203</td><td>= Sigma 8-16mm F4.5-5.6 DC HSM</td>
+</tr><tr><td>311</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
<td class=b>738</td><td class=b>= Sigma 50-500mm F4.5-6.3 APO DG OS HSM</td>
-</tr><tr><td>204</td><td>= Sigma 12-24mm F4.5-5.6 DG HSM II</td>
+</tr><tr><td>320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
<td class=b>824</td><td class=b>= Sigma 1.4X Teleconverter EX APO DG</td>
-</tr><tr><td>258</td><td>= Sigma 105mm F2.8 EX DG OS HSM Macro</td>
+</tr><tr><td>330</td><td>= Sigma 30mm F2.8 EX DN</td>
<td class=b>853</td><td class=b>= Sigma 18-125mm F3.8-5.6 DC OS HSM</td>
-</tr><tr><td>270</td><td>= Sigma 70mm F2.8 EX DG Macro</td>
+</tr><tr><td>340</td><td>= Sigma 35mm F1.4 DG HSM</td>
<td class=b>861</td><td class=b>= Sigma 18-50mm F2.8-4.5 DC OS HSM</td>
-</tr><tr><td>300</td><td>= Sigma 30mm F1.4 EX DC HSM</td>
+</tr><tr><td>345</td><td>= Sigma 50mm F2.8 EX Macro</td>
<td class=b>876</td><td class=b>= Sigma 2.0X Teleconverter EX APO DG</td>
-</tr><tr><td>310</td><td>= Sigma 50mm F1.4 EX DG HSM</td>
+</tr><tr><td>346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
<td class=b>880</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC OS HSM</td>
-</tr><tr><td>320</td><td>= Sigma 85mm F1.4 EX DG HSM</td>
+</tr><tr><td>400</td><td>= Sigma 9mm F2.8 EX DN</td>
<td class=b>882</td><td class=b>= Sigma 18-200mm F3.5-6.3 II DC OS HSM</td>
-</tr><tr><td>330</td><td>= Sigma 30mm F2.8 EX DN</td>
+</tr><tr><td>401</td><td>= Sigma 24mm F1.4 DG ÊHSM | A</td>
<td class=b>883</td><td class=b>= Sigma 18-250mm F3.5-6.3 DC Macro OS HSM</td>
-</tr><tr><td>340</td><td>= Sigma 35mm F1.4 DG HSM</td>
+</tr><tr><td>411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
<td class=b>1003</td><td class=b>= Sigma 19mm F2.8</td>
-</tr><tr><td>346</td><td>= Sigma 50mm F2.8 EX DG Macro</td>
+</tr><tr><td>432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
<td class=b>1004</td><td class=b>= Sigma 30mm F2.8</td>
-</tr><tr><td>400</td><td>= Sigma 9mm F2.8 EX DN</td>
+</tr><tr><td>440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
<td class=b>1005</td><td class=b>= Sigma 50mm F2.8 Macro</td>
-</tr><tr><td>411</td><td>= Sigma 20mm F1.8 EX DG ASP RF</td>
+</tr><tr><td>461</td><td>= Sigma 14mm F2.8 EX ASP HSM</td>
<td class=b>1006</td><td class=b>= Sigma 19mm F2.8</td>
-</tr><tr><td>432</td><td>= Sigma 24mm F1.8 EX DG ASP Macro</td>
+</tr><tr><td>475</td><td>= Sigma 15mm F2.8 EX Diagonal FishEye</td>
<td class=b>1007</td><td class=b>= Sigma 30mm F2.8</td>
-</tr><tr><td>440</td><td>= Sigma 28mm F1.8 EX DG ASP Macro</td>
-<td class=b>8900</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
</tr><tr><td>476</td><td>= Sigma 15mm F2.8 EX DG Diagonal Fisheye</td>
-<td class=b>'5A8'</td><td class=b>= Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)</td>
+<td class=b>8900</td><td class=b>= Sigma 70-300mm F4-5.6 DG OS</td>
</tr><tr><td>477</td><td>= Sigma 10mm F2.8 EX DC HSM Fisheye</td>
+<td class=b>'5A8'</td><td class=b>= Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)</td>
+</tr><tr><td>483</td><td>= Sigma 8mm F4 EX Circular Fisheye</td>
<td class=b>'5A9'</td><td class=b>= Sigma 70-300mm F4-5.6 DG Macro (Motorized)</td>
-</tr><tr><td>485</td><td>= Sigma 8mm F3.5 EX DG Circular Fisheye</td>
+</tr><tr><td>484</td><td>= Sigma 8mm F4 EX DG Circular Fisheye</td>
<td class=b>'A100'</td><td class=b>= Sigma 24-70mm F2.8 DG Macro</td>
</tr></table></td></tr></table></blockquote>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Feb 22, 2015</i>
+<br><i>Last revised Feb 23, 2015</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/exiftool_pod.html b/html/exiftool_pod.html
index e3e2de68..203b2a7b 100644
--- a/html/exiftool_pod.html
+++ b/html/exiftool_pod.html
@@ -868,7 +868,7 @@ are ignored. For example, this format file:</p>
exiftool -p test.fmt a.jpg b.jpg</pre>
<p>produces output like this:</p>
<pre>
- -- Generated by ExifTool 9.86 --
+ -- Generated by ExifTool 9.87 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -1380,7 +1380,7 @@ creation date (<code>FileCreateDate</code>) which is not affected by this optio
This creation date is preserved only on Windows systems where Win32API::File
and Win32::API are available. For other systems, the
<strong>-overwrite_original_in_place</strong> option may be used if necessary to preserve
-the creation date if necessary.</p>
+the creation date.</p>
</dd>
<dt><strong><a name="password_passwd" class="item"><strong>-password</strong> <em>PASSWD</em></a></strong></dt>
diff --git a/html/history.html b/html/history.html
index f4d7f301..6c8d8c07 100644
--- a/html/history.html
+++ b/html/history.html
@@ -17,6 +17,14 @@ considered development releases, and are not uploaded to <a href="http://search.
<!-- Use line width of 80 -->
<!-- *********************************************************************** -->
+<a name='v9.87'><b>Feb. 24, 2015 - Version 9.87</b></a>
+<ul>
+<li>Added a number of new Sigma LensType values (thanks LibRaw)
+<li>Fixed problem introduced in version 9.85 where "*.*" on the command line
+ matches "." and "..", causing unexpected files to be processed
+<li>Fixed problem extracting some Microsoft tags from MP4/MOV videos
+</ul>
+
<a name='v9.86'><b>Feb. 22, 2015 - Version 9.86</b></a>
<ul>
<li>Added check for valid filename encoding when using wildcards in Windows
@@ -33,14 +41,13 @@ considered development releases, and are not uploaded to <a href="http://search.
<li>Changed rounding method for rational values in an attempt to fix failed
tests on FreeBSD 10.1 and Perl 5.20.1 with uselongdouble enabled
<li>Resolved issue with duplicate SamsungModelID values
-<li>Fixed problem with rounding of rational values on some platforms
</ul>
<a name='v9.85'><b>Feb. 14, 2015 - Version 9.85</b></a>
<ul>
-<li>Added a few new Pentax LensType's (thanks Louis Granboulan)
<li>Added support for Ricoh WG-M1 maker notes
-<li>Decoded a couple of new Pentax tags (thanks Louis Granboulan)
+<li>Added a few new Pentax LensType's (thanks Louis Granboulan)
+<li>Decode a couple of new Pentax tags (thanks Louis Granboulan)
<li>Enhanced JSON import so an object with a missing SourceFile has the same
effect as a SourceFile of "*".
<li>Changed MIMEType for executable script files
@@ -64,7 +71,7 @@ considered development releases, and are not uploaded to <a href="http://search.
<li>Added support for new IPTC Extension version 1.2 XMP tags
<li>Added support for Leica X (Typ 113) maker notes
<li>Added read support for ChartTIFF tags
-<li>Added a few new Canon LensType values (thanks Norbert Wasser for 2)
+<li>Added a few new Canon LensType values (thanks Norbert Wasser for two)
<li>Added a few new Nikon LensID's (thanks David P&uuml;schel, Robert
Rottmerhusen and Niels)
<li>Added a number of new Olympus ArtFilterEffect values (thanks Phiber)
diff --git a/html/index.html b/html/index.html
index 68cb1887..14c711f6 100644
--- a/html/index.html
+++ b/html/index.html
@@ -74,9 +74,9 @@ span.sup { font-size: 0.8em; font-weight: normal; position: relative; top
</div>
<blockquote><table class='dl lg'><tr><td><b>
-<a href="http://sourceforge.net/projects/exiftool/files/Image-ExifTool-9.86.tar.gz/download">
-Download Version 9.86</a> (3.7 MB) -
-<a href="history.html">Feb. 22, 2015</a></b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/Image-ExifTool-9.87.tar.gz/download">
+Download Version 9.87</a> (3.7 MB) -
+<a href="history.html">Feb. 24, 2015</a></b></td></tr></table></blockquote>
<p><b>ExifTool is a platform-independent <a href="ExifTool.html">Perl
library</a> plus a <a href="exiftool_pod.html">command-line application</a> for
@@ -125,8 +125,8 @@ distribution above.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
<a name="alone">Windows Executable:</a>
-<a href="http://sourceforge.net/projects/exiftool/files/exiftool-9.86.zip/download">
- exiftool-9.86.zip</a> (3.8 MB)</b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/exiftool-9.87.zip/download">
+ exiftool-9.87.zip</a> (3.8 MB)</b></td></tr></table></blockquote>
<p><b>The stand-alone Windows executable</b> does not require Perl. Just
download and un-zip the archive then double-click on
@@ -138,7 +138,7 @@ of Windows (including Windows 7).</p>
<blockquote><table class='dl lg'><tr><td><b>
Mac OS X Package:
<a href="http://sourceforge.net/projects/exiftool/files/ExifTool-9.70.dmg/download">
- ExifTool-9.86.dmg</a> (2.4 MB)</b></td></tr></table></blockquote>
+ ExifTool-9.87.dmg</a> (2.4 MB)</b></td></tr></table></blockquote>
<p><b>The OS X package</b> installs the ExifTool command-line application and
libraries in /usr/bin. After installing, type "<code>exiftool</code>" in a
diff --git a/lib/Image/ExifTool.pm b/lib/Image/ExifTool.pm
index a44e6735..7a7f83ce 100644
--- a/lib/Image/ExifTool.pm
+++ b/lib/Image/ExifTool.pm
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
%jpegMarker %specialTags);
-$VERSION = '9.86';
+$VERSION = '9.87';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
diff --git a/lib/Image/ExifTool/Microsoft.pm b/lib/Image/ExifTool/Microsoft.pm
index 9230fde6..a47b93df 100644
--- a/lib/Image/ExifTool/Microsoft.pm
+++ b/lib/Image/ExifTool/Microsoft.pm
@@ -16,7 +16,7 @@ use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::XMP;
-$VERSION = '1.13';
+$VERSION = '1.14';
sub ProcessXtra($$$);
@@ -385,6 +385,7 @@ my %sRegions = (
'WM/ProviderRating' => 'ProviderRating',
'WM/ProviderStyle' => 'ProviderStyle',
'WM/Publisher' => 'Publisher',
+ 'WM/SharedUserRating' => 'SharedUserRating',
'WM/SubscriptionContentID' => 'SubscriptionContentID',
'WM/SubTitle' => 'SubTitle',
'WM/SubTitleDescription' => 'SubTitleDescription',
@@ -754,7 +755,7 @@ my %sRegions = (
# Extract information from Xtra MP4 atom
# Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
# Returns: 1 on success
-# Reference: http://code.google.com/p/mp4v2/
+# Reference: http://code.google.com/p/mp4v2/ [since removed from trunk]
sub ProcessXtra($$$)
{
my ($et, $dirInfo, $tagTablePtr) = @_;
@@ -770,52 +771,58 @@ sub ProcessXtra($$$)
my $tagLen = Get32u($dataPt, $pos + 4);
last if $tagLen + 18 > $size;
my $tag = substr($$dataPt, $pos + 8, $tagLen);
- my $version = Get32u($dataPt, $pos + $tagLen + 8);
- # (have seen a vers=2 type=8 tag that seems to work just like vers=1 - PH)
- if ($version > 2) {
- $et->WarnOnce("Unsupported Xtra version ($version)");
- $pos += $size;
- next;
+ # (version flags according to the reference, but looks more like a count - PH)
+ my $count = Get32u($dataPt, $pos + $tagLen + 8);
+ my ($i, $valPos, $valLen, $valType, $val, $format, @vals);
+ for ($i=0; ;) {
+ $valPos = $pos + $tagLen + 18; # point to start of value
+ # (stored value includes size of $valLen and $valType, so subtract 6)
+ $valLen = Get32u($dataPt, $valPos - 6) - 6;
+ my $more = $size - 18 - $tagLen - $valLen;
+ last if $more < 0;
+ $valType = Get16u($dataPt, $valPos - 2);
+ $val = substr($$dataPt, $valPos, $valLen);
+ # Note: all dumb Microsoft values are little-endian inside a big-endian-format file
+ SetByteOrder('II');
+ if ($valType == 8) {
+ $format = 'Unicode';
+ $val = $et->Decode($val, 'UCS2');
+ } elsif ($valType == 19 and $valLen == 8) {
+ $format = 'int64u';
+ $val = Get64u(\$val, 0);
+ } elsif ($valType == 21 and $valLen == 8) {
+ $format = 'date';
+ $val = Get64u(\$val, 0);
+ # convert time from 100 ns intervals since Jan 1, 1601
+ $val = $val * 1e-7 - 11644473600 if $val;
+ # (the Nikon S100 uses UTC timezone, same as ASF - PH)
+ $val = Image::ExifTool::ConvertUnixTime($val) . 'Z';
+ } elsif ($valType == 72 and $valLen == 16) {
+ $format = 'GUID';
+ $val = uc unpack('H*',pack('NnnNN',unpack('VvvNN',$val)));
+ $val =~ s/(.{8})(.{4})(.{4})(.{4})/$1-$2-$3-$4-/;
+ } elsif ($valType == 65 && $valLen > 4) { #PH (empirical)
+ $format = 'variant';
+ require Image::ExifTool::FlashPix;
+ my $vPos = $valPos; # (necessary because ReadFPXValue updates this)
+ # read entry as a VT_VARIANT (use FlashPix module for this)
+ $val = Image::ExifTool::FlashPix::ReadFPXValue($et, $dataPt, $vPos,
+ Image::ExifTool::FlashPix::VT_VARIANT(), $valPos+$valLen, 1);
+ } else {
+ $format = "Unknown($valType)";
+ }
+ SetByteOrder('MM'); # back to native QuickTime byte ordering
+ last if ++$i >= $count or $more < 6;
+ push @vals, $val;
+ undef $val;
+ $valPos += $valLen; # step to next value
}
- # (stored value includes size of $valLen and $valType, so subtract 6)
- my $valLen = Get32u($dataPt, $pos + $tagLen + 12) - 6;
- last if $tagLen + $valLen + 18 > $size;
- my $valType = Get16u($dataPt, $pos + $tagLen + 16);
- my $valPos = $pos + $tagLen + 18;
- my $val = substr($$dataPt, $valPos, $valLen);
- my $format;
-
- # Note: all dumb Microsoft values are little-endian inside a big-endian-format file
- SetByteOrder('II');
- if ($valType == 8) {
- $format = 'Unicode';
- $val = $et->Decode($val, 'UCS2');
- } elsif ($valType == 19 and $valLen == 8) {
- $format = 'int64u';
- $val = Get64u(\$val, 0);
- } elsif ($valType == 21 and $valLen == 8) {
- $format = 'date';
- $val = Get64u(\$val, 0);
- # convert time from 100 ns intervals since Jan 1, 1601
- $val = $val * 1e-7 - 11644473600 if $val;
- # (the Nikon S100 uses UTC timezone, same as ASF - PH)
- $val = Image::ExifTool::ConvertUnixTime($val) . 'Z';
- } elsif ($valType == 72 and $valLen == 16) {
- $format = 'GUID';
- $val = uc unpack('H*',pack('NnnNN',unpack('VvvNN',$val)));
- $val =~ s/(.{8})(.{4})(.{4})(.{4})/$1-$2-$3-$4-/;
- } elsif ($valType == 65 && $valLen > 4) { #PH (empirical)
- $format = 'variant';
- require Image::ExifTool::FlashPix;
- my $vPos = $valPos; # (necessary because ReadFPXValue updates this)
- # read entry as a VT_VARIANT (use FlashPix module for this)
- $val = Image::ExifTool::FlashPix::ReadFPXValue($et, $dataPt, $vPos,
- Image::ExifTool::FlashPix::VT_VARIANT(), $valPos+$valLen, 1);
- } else {
- $format = "Unknown($valType)";
+ if (@vals) {
+ push @vals, $val if defined $val;
+ $val = \@vals;
+ $valPos = $pos + $tagLen + 18;
+ $valLen = $size - 18 - $tagLen;
}
- SetByteOrder('MM'); # back to native QuickTime byte ordering
-
if ($tagLen > 0 and $valLen > 0) {
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
unless ($tagInfo) {
@@ -823,9 +830,10 @@ sub ProcessXtra($$$)
my $name = $tag;
$name =~ s{^WM/}{};
# $name =~ tr/-_A-Za-z0-9//dc;
- if ($name =~ /^[-\w+]$/) {
+ if ($name =~ /^[-\w]+$/) {
$tagInfo = { Name => ucfirst($name) };
AddTagToTable($tagTablePtr, $tag, $tagInfo);
+ $et->VPrint(0, $$et{INDENT}, "[adding Microsoft:$tag]\n");
}
}
$et->HandleTag($tagTablePtr, $tag, $val,
@@ -835,7 +843,7 @@ sub ProcessXtra($$$)
Start => $valPos,
Size => $valLen,
Format => $format,
- Extra => " vers=$version type=$valType",
+ Extra => " count=$count type=$valType",
);
}
$pos += $size; # step to next entry
diff --git a/lib/Image/ExifTool/Sigma.pm b/lib/Image/ExifTool/Sigma.pm
index 695c53f2..50d0d2ff 100644
--- a/lib/Image/ExifTool/Sigma.pm
+++ b/lib/Image/ExifTool/Sigma.pm
@@ -18,9 +18,9 @@ use strict;
use vars qw($VERSION %sigmaLensTypes);
use Image::ExifTool::Exif;
-$VERSION = '1.15';
+$VERSION = '1.16';
-# sigma LensType lookup (ref PH)
+# sigma LensType lookup (ref 3)
%sigmaLensTypes = (
Notes => q{
Decimal values have been added to differentiate lenses which would otherwise
@@ -29,77 +29,119 @@ $VERSION = '1.15';
},
# 0 => 'Sigma 50mm F2.8 EX Macro', (0 used for other lenses too)
# 8 - 18-125mm LENSARANGE@18mm=22-4
- 16 => 'Sigma 18-50mm F3.5-5.6 DC',
- 106 => 'Sigma 150mm F2.8 EX DG OS HSM APO Macro', #3
- 107 => 'Sigma APO Macro 180mm F2.8 EX DG OS HSM', #3
- 129 => 'Sigma 14mm F2.8 EX Aspherical',
- 131 => 'Sigma 17-70mm F2.8-4.5 DC Macro',
- 145 => 'Sigma Lens (145)',
- 145.1 => 'Sigma 15-30mm F3.5-4.5 EX DG Aspherical',
- 145.2 => 'Sigma 18-50mm F2.8 EX DG', #(NC)
- 145.3 => 'Sigma 20-40mm F2.8 EX DG',
- 152 => 'Sigma APO 800mm F5.6 EX DG HSM', #3
+ 16 => 'Sigma 18-50mm F3.5-5.6 DC', #PH
+ 103 => 'Sigma 180mm F3.5 EX IF HSM APO Macro',
+ 104 => 'Sigma 150mm F2.8 EX DG HSM APO Macro',
+ 105 => 'Sigma 180mm F3.5 EX DG HSM APO Macro',
+ 106 => 'Sigma 150mm F2.8 EX DG OS HSM APO Macro',
+ 107 => 'Sigma 180mm F2.8 EX DG OS HSM APO Macro',
+ 129 => 'Sigma 14mm F2.8 EX Aspherical', #PH
+ 131 => 'Sigma 17-70mm F2.8-4.5 DC Macro', #PH
+ 134 => 'Sigma 100-300mm F4 EX DG HSM APO',
+ 135 => 'Sigma 120-300mm F2.8 EX DG HSM APO',
+ 136 => 'Sigma 120-300mm F2.8 EX DG OS HSM APO',
+ 137 => 'Sigma 120-300mm F2.8 DG OS HSM | S',
+ 143 => 'Sigma 600mm F8 Mirror',
+ 145 => 'Sigma Lens (145)', #PH
+ 145.1 => 'Sigma 15-30mm F3.5-4.5 EX DG Aspherical', #PH
+ 145.2 => 'Sigma 18-50mm F2.8 EX DG', #PH (NC)
+ 145.3 => 'Sigma 20-40mm F2.8 EX DG', #PH
+ 152 => 'Sigma APO 800mm F5.6 EX DG HSM',
165 => 'Sigma 70-200mm F2.8 EX', # ...but what specific model?:
# 70-200mm F2.8 EX APO - Original version, minimum focus distance 1.8m (1999)
# 70-200mm F2.8 EX DG - Adds 'digitally optimized' lens coatings to reduce flare (2005)
# 70-200mm F2.8 EX DG Macro (HSM) - Minimum focus distance reduced to 1m (2006)
# 70-200mm F2.8 EX DG Macro HSM II - Improved optical performance (2007)
- 169 => 'Sigma 18-50mm F2.8 EX DC', #(NC)
- 184 => 'Sigma 500mm F4.5 EX DG APO HSM', #3
- 195 => 'Sigma 300mm F2.8 EX APO DG HSM', #3
- 201 => 'Sigma 10-20mm F4-5.6 EX DC HSM', #3
- 202 => 'Sigma 10-20mm F3.5 EX DC HSM', #3
- 203 => 'Sigma 8-16mm F4.5-5.6 DC HSM', #3
- 204 => 'Sigma 12-24mm F4.5-5.6 DG HSM II', #3
- 258 => 'Sigma 105mm F2.8 EX DG OS HSM Macro', #3
+ 169 => 'Sigma 18-50mm F2.8 EX DC', #PH (NC)
+ 183 => 'Sigma 500mm F4.5 EX HSM APO',
+ 184 => 'Sigma 500mm F4.5 EX DG HSM APO',
+ 194 => 'Sigma 300mm F2.8 EX HSM APO',
+ 195 => 'Sigma 300mm F2.8 EX DG HSM APO',
+ 200 => 'Sigma 12-24mm F4.5-5.6 EX DG ASP HSM',
+ 201 => 'Sigma 10-20mm F4-5.6 EX DC HSM',
+ 202 => 'Sigma 10-20mm F3.5 EX DC HSM',
+ 203 => 'Sigma 8-16mm F4.5-5.6 DC HSM',
+ 204 => 'Sigma 12-24mm F4.5-5.6 DG HSM II',
+ 210 => 'Sigma 18-35mm F1.8 DC HSM | A',
+ 256 => 'Sigma 105mm F2.8 EX Macro',
+ 257 => 'Sigma 105mm F2.8 EX DG Macro',
+ 258 => 'Sigma 105mm F2.8 EX DG OS HSM Macro',
270 => 'Sigma 70mm F2.8 EX DG Macro', #2 (SD1)
- 300 => 'Sigma 30mm F1.4 EX DC HSM', #3
- 310 => 'Sigma 50mm F1.4 EX DG HSM', #3
- 320 => 'Sigma 85mm F1.4 EX DG HSM', #3
- 330 => 'Sigma 30mm F2.8 EX DN', #3
- 340 => 'Sigma 35mm F1.4 DG HSM', #3
- 346 => 'Sigma 50mm F2.8 EX DG Macro', #3
- 400 => 'Sigma 9mm F2.8 EX DN', #3
- 411 => 'Sigma 20mm F1.8 EX DG ASP RF', #3
- 432 => 'Sigma 24mm F1.8 EX DG ASP Macro', #3
- 440 => 'Sigma 28mm F1.8 EX DG ASP Macro', #3
- 476 => 'Sigma 15mm F2.8 EX DG Diagonal Fisheye', #3
- 477 => 'Sigma 10mm F2.8 EX DC HSM Fisheye', #3
- 485 => 'Sigma 8mm F3.5 EX DG Circular Fisheye', #3
- 486 => 'Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye', #3
- 508 => 'Sigma 70-300mm F4-5.6 APO DG Macro', #3
- 509 => 'Sigma 70-300mm F4-5.6 DG Macro', #3
- 571 => 'Sigma 24-70mm F2.8 IF EX DG HSM', #3
- 572 => 'Sigma 70-300mm F4-5.6 DG OS', #3
- 581 => 'Sigma 18-50mm F2.8 EX DC Macro', # (SD1)
- 583 => 'Sigma 17-50mm F2.8 EX DC OS HSM', # (also SD1 Kit, is this HSM? - PH)
- 589 => 'Sigma APO 70-200mm F2.8 EX DG OS HSM', #3
- 595 => 'Sigma 300-800mm F5.6 EX DG APO HSM', #3
- 597 => 'Sigma 200-500mm F2.8 APO EX DG', #3
- '5A8'=> 'Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)', #3
- '5A9'=> 'Sigma 70-300mm F4-5.6 DG Macro (Motorized)', #3
- 668 => 'Sigma 17-70mm F2.8-4 DC Macro OS HSM', #3
- 686 => 'Sigma 50-200mm F4-5.6 DC OS HSM', #3
- 691 => 'Sigma 50-150mm F2.8 EX DC APO HSM II', #3
- 692 => 'Sigma APO 50-150mm F2.8 EX DC OS HSM', #3
- 728 => 'Sigma 120-400mm F4.5-5.6 DG APO OS HSM', #3
- 737 => 'Sigma 150-500mm F5-6.3 APO DG OS HSM', #3
- 738 => 'Sigma 50-500mm F4.5-6.3 APO DG OS HSM', #3
- 824 => 'Sigma 1.4X Teleconverter EX APO DG', #3
- 853 => 'Sigma 18-125mm F3.8-5.6 DC OS HSM', #3
+ 300 => 'Sigma 30mm F1.4 EX DC HSM',
+ 301 => 'Sigma 30mm F1.4 DC HSM | A',
+ 310 => 'Sigma 50mm F1.4 EX DG HSM',
+ 311 => 'Sigma 50mm F1.4 DG HSM | A',
+ 320 => 'Sigma 85mm F1.4 EX DG HSM',
+ 330 => 'Sigma 30mm F2.8 EX DN',
+ 340 => 'Sigma 35mm F1.4 DG HSM',
+ 345 => 'Sigma 50mm F2.8 EX Macro',
+ 346 => 'Sigma 50mm F2.8 EX DG Macro',
+ 400 => 'Sigma 9mm F2.8 EX DN',
+ 401 => 'Sigma 24mm F1.4 DG HSM | A',
+ 411 => 'Sigma 20mm F1.8 EX DG ASP RF',
+ 432 => 'Sigma 24mm F1.8 EX DG ASP Macro',
+ 440 => 'Sigma 28mm F1.8 EX DG ASP Macro',
+ 461 => 'Sigma 14mm F2.8 EX ASP HSM',
+ 475 => 'Sigma 15mm F2.8 EX Diagonal FishEye',
+ 476 => 'Sigma 15mm F2.8 EX DG Diagonal Fisheye',
+ 477 => 'Sigma 10mm F2.8 EX DC HSM Fisheye',
+ 483 => 'Sigma 8mm F4 EX Circular Fisheye',
+ 484 => 'Sigma 8mm F4 EX DG Circular Fisheye',
+ 485 => 'Sigma 8mm F3.5 EX DG Circular Fisheye',
+ 486 => 'Sigma 4.5mm F2.8 EX DC HSM Circular Fisheye',
+ 506 => 'Sigma 70-300mm F4-5.6 APO Macro Super II',
+ 507 => 'Sigma 70-300mm F4-5.6 DL Macro Super II',
+ 508 => 'Sigma 70-300mm F4-5.6 DG APO Macro',
+ 509 => 'Sigma 70-300mm F4-5.6 DG Macro',
+ 510 => 'Sigma 17-35 F2.8-4 EX DG ASP',
+ 512 => 'Sigma 15-30mm F3.5-4.5 EX DG ASP DF',
+ 513 => 'Sigma 20-40mm F2.8 EX DG',
+ 519 => 'Sigma 17-35 F2.8-4 EX ASP HSM',
+ 520 => 'Sigma 100-300mm F4.5-6.7 DL',
+ 521 => 'Sigma 18-50mm F3.5-5.6 DC Macro',
+ 527 => 'Sigma 100-300mm F4 EX IF HSM',
+ 529 => 'Sigma 120-300mm F2.8 EX HSM IF APO',
+ 547 => 'Sigma 24-60mm F2.8 EX DG',
+ 548 => 'Sigma 24-70mm F2.8 EX DG Macro',
+ 549 => 'Sigma 28-70mm F2.8 EX DG',
+ 566 => 'Sigma 70-200mm F2.8 EX IF APO',
+ 567 => 'Sigma 70-200mm F2.8 EX IF HSM APO',
+ 568 => 'Sigma 70-200mm F2.8 EX DG IF HSM APO',
+ 569 => 'Sigma 70-200 F2.8 EX DG HSM APO Macro',
+ 571 => 'Sigma 24-70mm F2.8 IF EX DG HSM',
+ 572 => 'Sigma 70-300mm F4-5.6 DG OS',
+ 579 => 'Sigma 70-200mm F2.8 EX DG HSM APO Macro', # (also II version)
+ 580 => 'Sigma 18-50mm F2.8 EX DC',
+ 581 => 'Sigma 18-50mm F2.8 EX DC Macro', #PH (SD1)
+ 582 => 'Sigma 18-50mm F2.8 EX DC HSM Macro',
+ 583 => 'Sigma 17-50mm F2.8 EX DC OS HSM', #PH (also SD1 Kit, is this HSM? - PH)
+ 589 => 'Sigma APO 70-200mm F2.8 EX DG OS HSM',
+ 595 => 'Sigma 300-800mm F5.6 EX DG APO HSM',
+ 597 => 'Sigma 200-500mm F2.8 APO EX DG',
+ '5A8'=> 'Sigma 70-300mm F4-5.6 APO DG Macro (Motorized)',
+ '5A9'=> 'Sigma 70-300mm F4-5.6 DG Macro (Motorized)',
+ 668 => 'Sigma 17-70mm F2.8-4 DC Macro OS HSM',
+ 686 => 'Sigma 50-200mm F4-5.6 DC OS HSM',
+ 691 => 'Sigma 50-150mm F2.8 EX DC APO HSM II',
+ 692 => 'Sigma APO 50-150mm F2.8 EX DC OS HSM',
+ 728 => 'Sigma 120-400mm F4.5-5.6 DG APO OS HSM',
+ 737 => 'Sigma 150-500mm F5-6.3 APO DG OS HSM',
+ 738 => 'Sigma 50-500mm F4.5-6.3 APO DG OS HSM',
+ 824 => 'Sigma 1.4X Teleconverter EX APO DG',
+ 853 => 'Sigma 18-125mm F3.8-5.6 DC OS HSM',
861 => 'Sigma 18-50mm F2.8-4.5 DC OS HSM', #2 (SD1)
- 876 => 'Sigma 2.0X Teleconverter EX APO DG', #3
- 880 => 'Sigma 18-250mm F3.5-6.3 DC OS HSM', #3
- 882 => 'Sigma 18-200mm F3.5-6.3 II DC OS HSM', #3
- 883 => 'Sigma 18-250mm F3.5-6.3 DC Macro OS HSM', #3
- 1003 => 'Sigma 19mm F2.8', # (DP1 Merrill kit)
- 1004 => 'Sigma 30mm F2.8', # (DP2 Merrill kit)
- 1005 => 'Sigma 50mm F2.8 Macro', # (DP3 Merrill kit)
+ 876 => 'Sigma 2.0X Teleconverter EX APO DG',
+ 880 => 'Sigma 18-250mm F3.5-6.3 DC OS HSM',
+ 882 => 'Sigma 18-200mm F3.5-6.3 II DC OS HSM',
+ 883 => 'Sigma 18-250mm F3.5-6.3 DC Macro OS HSM',
+ 1003 => 'Sigma 19mm F2.8', #PH (DP1 Merrill kit)
+ 1004 => 'Sigma 30mm F2.8', #PH (DP2 Merrill kit)
+ 1005 => 'Sigma 50mm F2.8 Macro', #PH (DP3 Merrill kit)
1006 => 'Sigma 19mm F2.8', #2 (DP1 Quattro kit)
- 1007 => 'Sigma 30mm F2.8', # (DP2 Quattro kit)
- 8900 => 'Sigma 70-300mm F4-5.6 DG OS', # (SD15)
- 'A100'=> 'Sigma 24-70mm F2.8 DG Macro', # (SD15)
- # 'FFFF' - seen this for a 28-70mm F2.8 lens
+ 1007 => 'Sigma 30mm F2.8', #PH (DP2 Quattro kit)
+ 8900 => 'Sigma 70-300mm F4-5.6 DG OS', #PH (SD15)
+ 'A100'=> 'Sigma 24-70mm F2.8 DG Macro', #PH (SD15)
+ # 'FFFF' - seen this for a 28-70mm F2.8 lens - PH
);
%Image::ExifTool::Sigma::Main = (
diff --git a/lib/Image/ExifTool/TagNames.pod b/lib/Image/ExifTool/TagNames.pod
index 9e59890c..3155b756 100644
--- a/lib/Image/ExifTool/TagNames.pod
+++ b/lib/Image/ExifTool/TagNames.pod
@@ -16837,6 +16837,7 @@ are not shown because some are unruly GUID's.
ProviderRating N
ProviderStyle N
Publisher N
+ SharedUserRating N
SubTitle N
SubTitleDescription N
SubscriptionContentID N
diff --git a/perl-Image-ExifTool.spec b/perl-Image-ExifTool.spec
index 0775a973..039a70e4 100644
--- a/perl-Image-ExifTool.spec
+++ b/perl-Image-ExifTool.spec
@@ -1,6 +1,6 @@
Summary: perl module for image data extraction
Name: perl-Image-ExifTool
-Version: 9.86
+Version: 9.87
Release: 1
License: Artistic/GPL
Group: Development/Libraries/Perl
diff --git a/windows_exiftool b/windows_exiftool
index cfc30a30..cd8538cf 100755
--- a/windows_exiftool
+++ b/windows_exiftool
@@ -12,7 +12,7 @@
use strict;
require 5.004;
-my $version = '9.86';
+my $version = '9.87';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exeDir;
@@ -3182,6 +3182,7 @@ sub ProcessFiles($;$)
# Inputs: 0) ExifTool ref, 1) directory name, 2) list ref to return file names
sub ScanDir($$;$)
{
+ local $_;
my ($et, $dir, $list) = @_;
my (@fileList, $done, $file, $utf8Name);
my $enc = $et->Options('CharsetFileName');
@@ -3200,6 +3201,7 @@ sub ScanDir($$;$)
if (CheckUTF8($dir, $enc) >= 0) {
if (eval { require Win32::FindFile }) {
@fileList = Win32::FindFile::ReadDir($dir);
+ $_ = $_->cFileName foreach @fileList;
$et->Options(CharsetFileName => 'UTF8'); # now using UTF8
$utf8Name = 1; # ReadDir returns UTF-8 file names
$done = 1;
@@ -3291,9 +3293,11 @@ sub FindFileWindows($$)
($rname = quotemeta $wildname) =~ s/\\\?/./g;
$rname =~ s/\\\*/.*/g;
foreach $nm (@names) {
+ $nm = $nm->cFileName;
# make sure that FindFile behaves
# (otherwise "*.jpg" matches things like "a.jpg_original"!)
next unless $nm =~ /^$rname$/;
+ next if $nm eq '.' or $nm eq '..'; # don't match "." and ".."
my $file = "$dir$nm"; # add back directory name
push @files, $file;
$utf8FileName{$file} = 1; # flag this file name as UTF-8 encoded
@@ -4646,7 +4650,7 @@ OPTIONS
produces output like this:
- -- Generated by ExifTool 9.86 --
+ -- Generated by ExifTool 9.87 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -5170,7 +5174,7 @@ OPTIONS
option. This creation date is preserved only on Windows systems
where Win32API::File and Win32::API are available. For other
systems, the -overwrite_original_in_place option may be used if
- necessary to preserve the creation date if necessary.
+ necessary to preserve the creation date.
-password *PASSWD*
Specify password to allow processing of password-protected PDF