summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorexiftool <exiftool@users.sourceforge.net>2021-05-20 20:32:07 -0400
committerexiftool <exiftool@users.sourceforge.net>2021-05-20 20:32:07 -0400
commitbd14871e8a3bc2b15ea2e3d5dd22bec4f50a6a40 (patch)
treeec4cb9d08ff7b9ff0945154b88e8ee1497eb13eb
parentceff3cbc4564e93518f3d2a2e00d8ae203ff54af (diff)
Update to 12.26
-rw-r--r--Changes21
-rw-r--r--MANIFEST2
-rw-r--r--META.json2
-rw-r--r--META.yml2
-rw-r--r--README4
-rwxr-xr-xexiftool13
-rw-r--r--html/ExifTool.html8
-rw-r--r--html/ExifTool.pdf322
-rw-r--r--html/Shift.pdf6
-rw-r--r--html/TagNames/Canon.html8
-rw-r--r--html/TagNames/JPEG.html51
-rw-r--r--html/TagNames/Pentax.html6
-rw-r--r--html/TagNames/QuickTime.html5
-rw-r--r--html/TagNames/Sony.html4
-rw-r--r--html/TagNames/index.html4
-rw-r--r--html/exiftool_pod.html2
-rw-r--r--html/exiftool_pod.pdf88
-rw-r--r--html/geotag.html12
-rw-r--r--html/history.html22
-rw-r--r--html/index.html21
-rw-r--r--html/install.html22
-rw-r--r--html/sample_images.html24
-rw-r--r--lib/Image/ExifTool.pm25
-rw-r--r--lib/Image/ExifTool.pod8
-rw-r--r--lib/Image/ExifTool/Canon.pm28
-rw-r--r--lib/Image/ExifTool/Exif.pm15
-rw-r--r--lib/Image/ExifTool/JPEG.pm70
-rw-r--r--lib/Image/ExifTool/MIE.pm3
-rw-r--r--lib/Image/ExifTool/MRC.pm2
-rw-r--r--lib/Image/ExifTool/Nikon.pm4
-rw-r--r--lib/Image/ExifTool/Panasonic.pm1
-rw-r--r--lib/Image/ExifTool/Pentax.pm3
-rw-r--r--lib/Image/ExifTool/QuickTime.pm6
-rw-r--r--lib/Image/ExifTool/RIFF.pm2
-rw-r--r--lib/Image/ExifTool/Sony.pm6
-rw-r--r--lib/Image/ExifTool/TagLookup.pm6
-rw-r--r--lib/Image/ExifTool/TagNames.pod15
-rw-r--r--lib/Image/ExifTool/WriteIPTC.pl2
-rw-r--r--lib/Image/ExifTool/WriteQuickTime.pl3
-rw-r--r--lib/Image/ExifTool/WriteXMP.pl2
-rw-r--r--lib/Image/ExifTool/XMP.pm6
-rw-r--r--perl-Image-ExifTool.spec2
-rw-r--r--pp_build_exe.args8
-rw-r--r--t/ExifTool.t11
-rw-r--r--t/ExifTool_32.out5
-rw-r--r--t/XMP.t8
-rw-r--r--t/XMP_26.out12
-rw-r--r--t/images/ExifTool.jpsbin0 -> 283 bytes
-rw-r--r--t/images/XMP.xml20
-rw-r--r--t/images/XMP5.xmp2
-rwxr-xr-xwindows_exiftool13
51 files changed, 577 insertions, 360 deletions
diff --git a/Changes b/Changes
index 9cfb964b..dc85f62e 100644
--- a/Changes
+++ b/Changes
@@ -4,13 +4,26 @@ ExifTool Version History
RSS feed: https://exiftool.org/rss.xml
-Note: The most recent production release is Version 12.16. (Other versions are
+Note: The most recent production release is Version 12.26. (Other versions are
considered development releases, and are not uploaded to MetaCPAN.)
+May 20, 2021 - Version 12.26 (production release)
+
+ - Added support for JPEG Stereo (JPS) images
+ - Added a new Sony LensType (thanks LibRaw)
+ - Added a new PentaxModelID (thanks LibRaw)
+ - Changed ExifTool namespace URI to use exiftool.org instead of exiftool.ca in
+ the -X option output (exiftool.ca is still recognized when reading XML)
+ - Improved handling of large-array warnings in -htmldump output
+ - Changed handling of escaped characters in #[CSTR] lines of -@ argfile
+ - Patched security vulnerability in argument of -lang option
+ - Fixed problem which could cause a "Wide character" warning and generate a
+ corrupted output file when writing some illegal values
+
Apr. 22, 2021 - Version 12.25
- JPEG XL support is now official
- - Added read support for Medical Research Council (MRC) image files
+ - Added read support for Medical Research Council (MRC) image files
- Added ability to write a number of 3gp tags in video files
- Added a new Sony PictureProfile value (thanks Jos Roost)
- Added a new Sony LensType (thanks LibRaw)
@@ -33,11 +46,11 @@ Apr. 13, 2021 - Version 12.24
- Added a new PhaseOne RawFormat value (thanks LibRaw)
- Decode a new Sony tag (thanks Jos Roost)
- Decode a few new Panasonic and FujiFilm tags (thanks LibRaw and Greybeard)
- - Patched security vulnerability in DjVu reader
- Updated acdsee.config in distribution (thanks StarGeek)
- Recognize AutoCAD DXF files
- More work on experimental JUMBF read support
- More work on experimental JPEG XL read/write support
+ - Patched security vulnerability in DjVu reader
Apr. 1, 2021 - Version 12.23
@@ -71,7 +84,7 @@ Mar. 17, 2021 - Version 12.22
- Enhanced -b option so --b suppresses tags with binary data
- Improved flexibility when writing GPS coordinates:
- Now pulls latitude and longitude from a combined GPSCoordinates string
- - Recognizes the full word "South" and "West" to write negative coordinates
+ - Recognize full word "South" and "West" to write negative coordinates
- Improved warning when trying to write an integer QuickTime date/time tag and
Time::Local is not available
- Convert GPSSpeed from mph to km/h in timed GPS from Garmin MP4 videos
diff --git a/MANIFEST b/MANIFEST
index f54f326c..2439c353 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -513,6 +513,7 @@ t/ExifTool_29.out
t/ExifTool_3.out
t/ExifTool_30.out
t/ExifTool_31.out
+t/ExifTool_32.out
t/ExifTool_4.out
t/ExifTool_5.out
t/ExifTool_6.out
@@ -968,6 +969,7 @@ t/images/EXE.exe
t/images/EXE.macho
t/images/EXE.so
t/images/ExifTool.jpg
+t/images/ExifTool.jps
t/images/ExifTool.tif
t/images/ExtendedXMP.jpg
t/images/FITS.fits
diff --git a/META.json b/META.json
index 7c948c52..c48ca426 100644
--- a/META.json
+++ b/META.json
@@ -47,6 +47,6 @@
}
},
"release_status" : "stable",
- "version" : "12.25",
+ "version" : "12.26",
"x_serialization_backend" : "JSON::PP version 4.02"
}
diff --git a/META.yml b/META.yml
index 82f09938..4fb51f0e 100644
--- a/META.yml
+++ b/META.yml
@@ -28,5 +28,5 @@ recommends:
Time::HiRes: 0
requires:
perl: 5.004
-version: 12.25
+version: 12.26
x_serialization_backend: 'JSON::PP version 4.02'
diff --git a/README b/README
index da3a32f6..0621e4e2 100644
--- a/README
+++ b/README
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:
cd ~/Desktop
- gzip -dc Image-ExifTool-12.25.tar.gz | tar -xf -
- cd Image-ExifTool-12.25
+ gzip -dc Image-ExifTool-12.26.tar.gz | tar -xf -
+ cd Image-ExifTool-12.26
./exiftool t/images/ExifTool.jpg
Note: These commands extract meta information from one of the test images.
diff --git a/exiftool b/exiftool
index da76e2e4..86659b0e 100755
--- a/exiftool
+++ b/exiftool
@@ -10,7 +10,7 @@
use strict;
require 5.004;
-my $version = '12.25';
+my $version = '12.26';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exeDir;
@@ -2218,7 +2218,7 @@ sub GetImageInfo($$)
my $f = $file;
CleanXML(\$f);
print $fp "\n<rdf:Description rdf:about='${f}'";
- print $fp "\n xmlns:et='http://ns.exiftool.ca/1.0/'";
+ print $fp "\n xmlns:et='http://ns.exiftool.org/1.0/'";
print $fp " et:toolkit='Image::ExifTool $Image::ExifTool::VERSION'";
# define namespaces for all tag groups
my (%groups, @groups, $grp0, $grp1);
@@ -2240,7 +2240,7 @@ sub GetImageInfo($$)
unless ($grp eq $grp1 and $grp =~ /^(ExifTool|File|Composite|Unknown)$/) {
$grp .= "/$grp1";
}
- print $fp "\n xmlns:$grp1='http://ns.exiftool.ca/$grp/1.0/'";
+ print $fp "\n xmlns:$grp1='http://ns.exiftool.org/$grp/1.0/'";
}
print $fp '>' if $outFormat < 1; # finish rdf:Description token unless short format
$ind = $outFormat >= 0 ? ' ' : ' ';
@@ -4263,7 +4263,10 @@ sub FilterArgfileLine($)
# escaped by an odd number of backslashes, and escape a single backslash
# if it occurs at the end of the string
$arg =~ s{\\(.)|(["\$\@]|\\$)}{'\\'.($2 || $1)}sge;
- $arg = eval qq{"$arg"}; # un-escape characters in C string
+ # un-escape characters in C string
+ my %esc = ( a => "\a", b => "\b", f => "\f", n => "\n",
+ r => "\r", t => "\t", '"' => '"', '\\' => '\\' );
+ $arg =~ s/\\(.)/$esc{$1}||'\\'.$1/egs;
} else {
$arg =~ s/^\s+//; # remove leading white space
$arg =~ s/[\x0d\x0a]+$//s; # remove trailing newline
@@ -5393,7 +5396,7 @@ with this command:
produces output like this:
- -- Generated by ExifTool 12.25 --
+ -- Generated by ExifTool 12.26 --
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
diff --git a/html/ExifTool.html b/html/ExifTool.html
index 19777eda..f08a6c90 100644
--- a/html/ExifTool.html
+++ b/html/ExifTool.html
@@ -2083,9 +2083,9 @@ the specific IFD).
<blockquote><table class='norm'>
<tr><th>Family</th><th>Group Names</th></tr>
<tr><td><b>0 (Information&nbsp;Type)</b></td>
-<td>AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5,
-APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky,
-EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
+<td>AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4,
+APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu,
+Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC,
ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE,
MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg,
@@ -2104,7 +2104,7 @@ GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
-InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JUMBF, JVC,
+InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC,
Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC,
MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS,
diff --git a/html/ExifTool.pdf b/html/ExifTool.pdf
index dcc0d05a..a576668d 100644
--- a/html/ExifTool.pdf
+++ b/html/ExifTool.pdf
@@ -12,7 +12,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 1)Tj
+( -- Image::ExifTool 12.26 -- 1)Tj
/TT4 1 Tf
0 -1.6333 TD
(EXIFTOOL\(1\) User Contributed Perl Documentation EXIFTOOL\(1\))Tj
@@ -189,7 +189,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 2)Tj
+( -- Image::ExifTool 12.26 -- 2)Tj
/TT4 1 Tf
0 -1.6333 TD
( ARW r/w | EXV r/w/c | M2TS r | PAGES r | SRF r)Tj
@@ -384,7 +384,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 3)Tj
+( -- Image::ExifTool 12.26 -- 3)Tj
/TT4 1 Tf
0 -1.6333 TD
( be exported with the ":Public" export list.)Tj
@@ -619,7 +619,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 4)Tj
+( -- Image::ExifTool 12.26 -- 4)Tj
/TT4 1 Tf
0 -2.7333 TD
( ExifTool ref)Tj
@@ -768,7 +768,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 5)Tj
+( -- Image::ExifTool 12.26 -- 5)Tj
/TT4 1 Tf
0 -1.6333 TD
( the returned tag keys only if the "Duplicates" option is 0 and)Tj
@@ -923,7 +923,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 6)Tj
+( -- Image::ExifTool 12.26 -- 6)Tj
/TT4 1 Tf
0 -1.6333 TD
( encoded in UTF-8. For these, _)Tj
@@ -1114,7 +1114,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 7)Tj
+( -- Image::ExifTool 12.26 -- 7)Tj
/TT4 1 Tf
0 -1.6333 TD
( also prevents parsing the block to extract tags contained)Tj
@@ -1267,7 +1267,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 8)Tj
+( -- Image::ExifTool 12.26 -- 8)Tj
/TT4 1 Tf
0 -1.6333 TD
( information contains no CodedCharacterSet tag. Possible values)Tj
@@ -1414,7 +1414,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 9)Tj
+( -- Image::ExifTool 12.26 -- 9)Tj
/TT4 1 Tf
0 -1.6333 TD
( "SetNewValuesFromFile".)Tj
@@ -1567,7 +1567,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 10)Tj
+( -- Image::ExifTool 12.26 -- 10)Tj
/TT4 1 Tf
0 -1.6333 TD
( specification, metadata is allowed after IDAT, but ExifTool)Tj
@@ -1718,7 +1718,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 11)Tj
+( -- Image::ExifTool 12.26 -- 11)Tj
/TT4 1 Tf
0 -1.6333 TD
( GeoSpeedRef)Tj
@@ -1909,7 +1909,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 12)Tj
+( -- Image::ExifTool 12.26 -- 12)Tj
/TT4 1 Tf
0 -1.6333 TD
( Separator used to join the PrintConv value of multi-item List-)Tj
@@ -2056,7 +2056,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 13)Tj
+( -- Image::ExifTool 12.26 -- 13)Tj
/TT4 1 Tf
0 -1.6333 TD
( QuickTime specification.)Tj
@@ -2201,7 +2201,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 14)Tj
+( -- Image::ExifTool 12.26 -- 14)Tj
/TT4 1 Tf
0 -1.6333 TD
( successfully convert the value.)Tj
@@ -2356,7 +2356,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 15)Tj
+( -- Image::ExifTool 12.26 -- 15)Tj
/TT4 1 Tf
0 -1.6333 TD
( Flag to perform extra validation metadata checks when reading,)Tj
@@ -2541,7 +2541,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 16)Tj
+( -- Image::ExifTool 12.26 -- 16)Tj
/TT4 1 Tf
0 -1.6333 TD
( MakerNotes, MDItemTags, NoPDFList, Password, QuickTimeUTC \(enforced)Tj
@@ -2710,7 +2710,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 17)Tj
+( -- Image::ExifTool 12.26 -- 17)Tj
/TT4 1 Tf
0 -2.7333 TD
( # overwrite file \(you do have backups, right?\))Tj
@@ -2863,7 +2863,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 18)Tj
+( -- Image::ExifTool 12.26 -- 18)Tj
/TT4 1 Tf
0 -1.6333 TD
( 1\) [optional] Information hash reference or tag list reference)Tj
@@ -3070,7 +3070,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 19)Tj
+( -- Image::ExifTool 12.26 -- 19)Tj
/TT4 1 Tf
0 -2.7333 TD
( Note that "GetValue" requires a case-sensitive tag key as an argument.)Tj
@@ -3233,7 +3233,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 20)Tj
+( -- Image::ExifTool 12.26 -- 20)Tj
/TT4 1 Tf
0 -1.6333 TD
( values.)Tj
@@ -3366,7 +3366,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 21)Tj
+( -- Image::ExifTool 12.26 -- 21)Tj
/TT4 1 Tf
0 -1.6333 TD
( values. The tag name may be prefixed by one or more family 0, 1 or)Tj
@@ -3515,7 +3515,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 22)Tj
+( -- Image::ExifTool 12.26 -- 22)Tj
/TT4 1 Tf
0 -1.6333 TD
( "SetNewValuesFromFile"\). Bit 0x02 allows writing of)Tj
@@ -3724,7 +3724,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 23)Tj
+( -- Image::ExifTool 12.26 -- 23)Tj
/TT4 1 Tf
0 -1.6333 TD
( Inputs:)Tj
@@ -3901,7 +3901,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 24)Tj
+( -- Image::ExifTool 12.26 -- 24)Tj
/TT4 1 Tf
0 -1.6333 TD
( information to a tag with a different name or a specified group.)Tj
@@ -4046,7 +4046,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 25)Tj
+( -- Image::ExifTool 12.26 -- 25)Tj
/TT4 1 Tf
0 -1.6333 TD
( The "Duplicates" option is always in effect for tags extracted from)Tj
@@ -4297,7 +4297,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 26)Tj
+( -- Image::ExifTool 12.26 -- 26)Tj
/TT4 1 Tf
0 -1.6333 TD
( 1 if the time was changed, 0 if nothing was done, or -1 if there)Tj
@@ -4502,7 +4502,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 27)Tj
+( -- Image::ExifTool 12.26 -- 27)Tj
/TT4 1 Tf
0 -1.6333 TD
( @groups = $exifTool->GetNewGroups\(\);)Tj
@@ -4691,7 +4691,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 28)Tj
+( -- Image::ExifTool 12.26 -- 28)Tj
/TT4 1 Tf
0 -1.6333 TD
( when called in scalar context, or the names of groups for all)Tj
@@ -4842,7 +4842,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 29)Tj
+( -- Image::ExifTool 12.26 -- 29)Tj
/TT4 1 Tf
0 -1.6333 TD
( hex. Note that unlike other group names, the tag ID's of family 7)Tj
@@ -5093,7 +5093,7 @@ endobj
endobj
96 0 obj
<<
-/Length 4698
+/Length 4704
>>
stream
BT
@@ -5103,7 +5103,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 30)Tj
+( -- Image::ExifTool 12.26 -- 30)Tj
/TT4 1 Tf
0 -1.6333 TD
( Inputs:)Tj
@@ -5302,27 +5302,27 @@ T*
0 -1.1 TD
( AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15,)Tj
T*
-( APP4, APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM,)Tj
+( APP3, APP4, APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite,)Tj
T*
-( DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File,)Tj
+( DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR,)Tj
T*
-( Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff, GoPro,)Tj
+( File, Flash, FlashPix, Font, FotoStation, GIF, GIMP, GeoTiff,)Tj
T*
-( H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG, JSON,)Tj
+( GoPro, H264, HTML, ICC_Profile, ID3, IPTC, ISO, ITC, JFIF, JPEG,)Tj
T*
-( JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MNG, MOI, MPC,)Tj
+( JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE, MIFF, MNG, MOI,)Tj
T*
-( MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR, Opus,)Tj
+( MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg, OpenEXR,)Tj
T*
-( PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw, PhotoCD,)Tj
+( Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw,)Tj
T*
-( PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF,)Tj
+( PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime,)Tj
T*
-( RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim,)Tj
+( RAF, RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw,)Tj
T*
-( Theora, Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP,)Tj
+( Stim, Theora, Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML,)Tj
T*
-( ZIP)Tj
+( XMP, ZIP)Tj
0 -2.2 TD
( Family 1 \(Specific Location\):)Tj
0 -1.1 TD
@@ -5352,7 +5352,7 @@ endobj
endobj
99 0 obj
<<
-/Length 5010
+/Length 5028
>>
stream
BT
@@ -5362,7 +5362,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 31)Tj
+( -- Image::ExifTool 12.26 -- 31)Tj
/TT4 1 Tf
0 -1.6333 TD
( GIMP, GPS, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC,)Tj
@@ -5375,67 +5375,69 @@ T*
T*
( ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,)Tj
T*
-( InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JUMBF, JVC,)Tj
+( InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF,)Tj
T*
-( Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD,)Tj
+( JVC, Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD,)Tj
T*
-( KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro,)Tj
+( KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf, LeafSubIFD,)Tj
T*
-( M2TS, MAC, MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender,)Tj
+( Leica, Lyrics3, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera, MIE-Canon,)Tj
T*
-( MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-)Tj
+( MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-)Tj
T*
-( MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-)Tj
+( Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,)Tj
T*
-( UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0,)Tj
+( MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MOBI,)Tj
T*
-( MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown, Matroska,)Tj
+( MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes,)Tj
T*
-( MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw,)Tj
+( MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft,)Tj
T*
-( Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan,)Tj
+( Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture,)Tj
T*
-( NikonSettings, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF,)Tj
+( NikonCustom, NikonScan, NikonSettings, Nintendo, Ocad, Ogg,)Tj
T*
-( PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax,)Tj
+( Olympus, OpenEXR, Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm,)Tj
T*
-( PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo,)Tj
+( Panasonic, PanasonicRaw, Pentax, PhaseOne, PhotoCD, PhotoMechanic,)Tj
T*
-( PostScript, PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime,)Tj
+( Photoshop, PictureInfo, PostScript, PreviewIFD, PrintIM,)Tj
T*
-( RAF, RAF2, RIFF, RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-)Tj
+( ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,)Tj
T*
-( CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-)Tj
+( Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3,)Tj
T*
-( RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD, SRF#,)Tj
+( Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2,)Tj
T*
-( SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,)Tj
+( SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma,)Tj
T*
-( SubIFD, System, Theora, Torrent, Track#, UserData, UserParam,)Tj
+( SigmaRaw, Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent,)Tj
T*
-( VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-)Tj
+( Track#, UserData, UserParam, VCalendar, VCard, Version0, Vorbis,)Tj
T*
-( Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,)Tj
+( WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio, XMP-GDepth, XMP-)Tj
T*
-( XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-)Tj
+( GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage, XMP-MP,)Tj
T*
-( aas, XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-)Tj
+( XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album, XMP-apple-)Tj
T*
-( cell, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-)Tj
+( fi, XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc,)Tj
T*
-( drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-)Tj
+( XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX,)Tj
T*
-( extensis, XMP-fpv, XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt,)Tj
+( XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics,)Tj
T*
-( XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-)Tj
+( XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,)Tj
T*
-( mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop, XMP-plus,)Tj
+( XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-)Tj
T*
-( XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-swf,)Tj
+( photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl,)Tj
T*
-( XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-)Tj
+( XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-)Tj
T*
-( xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP)Tj
+( xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-)Tj
+T*
+( xmpRights, XMP-xmpTPg, ZIP)Tj
0 -2.2 TD
( Family 2 \(Category\):)Tj
0 -1.1 TD
@@ -5557,9 +5559,9 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 32)Tj
+( -- Image::ExifTool 12.26 -- 32)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
( Inputs:)Tj
0 -1.1 TD
( None.)Tj
@@ -5756,7 +5758,7 @@ endobj
endobj
106 0 obj
<<
-/Length 4913
+/Length 4829
>>
stream
BT
@@ -5766,9 +5768,9 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 33)Tj
+( -- Image::ExifTool 12.26 -- 33)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
( C)Tj
1.8 0 TD
(Ca)Tj
@@ -6002,8 +6004,6 @@ T*
( file names to be converted from the specified encoding to one)Tj
T*
( appropriate for the system. In Windows this also has the effect of)Tj
-T*
-( activating Unicode filename support via the special Windows wide-)Tj
ET
endstream
endobj
@@ -6021,7 +6021,7 @@ endobj
endobj
109 0 obj
<<
-/Length 5369
+/Length 5460
>>
stream
BT
@@ -6031,9 +6031,11 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 34)Tj
+( -- Image::ExifTool 12.26 -- 34)Tj
/TT4 1 Tf
0 -1.6333 TD
+( activating Unicode filename support via the special Windows wide-)Tj
+0 -1.1 TD
( character i/o routines if Win32API::File is available.)Tj
0 -2.2 TD
( Internal Character Sets:)Tj
@@ -6230,7 +6232,7 @@ endobj
endobj
112 0 obj
<<
-/Length 4598
+/Length 4502
>>
stream
BT
@@ -6240,9 +6242,9 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 35)Tj
+( -- Image::ExifTool 12.26 -- 35)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
( exiftool -tagsfromfile @ -iptc:all -codedcharacterset=utf8 a.jpg)Tj
0 -2.2 TD
( or from Windows Latin2 \(cp1250\) to UTF-8:)Tj
@@ -6416,8 +6418,6 @@ T*
(op)Tj
0.6 0 TD
(p)Tj
--6.6 -1.1 TD
-( Some Photoshop resource names are stored as Pascal strings with unknown)Tj
ET
endstream
endobj
@@ -6435,7 +6435,7 @@ endobj
endobj
115 0 obj
<<
-/Length 5504
+/Length 5590
>>
stream
BT
@@ -6445,11 +6445,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.25 -- 36)Tj
+( -- Image::ExifTool 12.26 -- 36)Tj
/TT4 1 Tf
0 -1.6333 TD
-( encoding. By default, ExifTool assumes MacRoman encoding and converts)Tj
+( Some Photoshop resource names are stored as Pascal strings with unknown)Tj
0 -1.1 TD
+( encoding. By default, ExifTool assumes MacRoman encoding and converts)Tj
+T*
( this to UTF-8, but the internal and external character sets may be)Tj
T*
( specified with the "CharsetPhotoshop" and "Charset" options)Tj
@@ -6866,7 +6868,7 @@ T*
0.6 0 TD
(G\(3pm\))Tj
-27 -4.4 TD
-(perl v5.18.4 2021-04-22 EXIFTOOL\(1\))Tj
+(perl v5.18.4 2021-05-20 EXIFTOOL\(1\))Tj
ET
endstream
endobj
@@ -7302,8 +7304,8 @@ endobj
endobj
121 0 obj
<<
-/CreationDate (D:20210422145338-04'00')
-/ModDate (D:20210422145338-04'00')
+/CreationDate (D:20210520202905-04'00')
+/ModDate (D:20210520202905-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -7317,135 +7319,135 @@ endobj
xref
0 123
0000000000 65535 f
-0000170718 00000 n
+0000170739 00000 n
0000000016 00000 n
0000004112 00000 n
-0000169719 00000 n
-0000170120 00000 n
-0000169184 00000 n
-0000173820 00000 n
-0000170798 00000 n
+0000169740 00000 n
+0000170141 00000 n
+0000169205 00000 n
+0000173841 00000 n
+0000170819 00000 n
0000004218 00000 n
0000009576 00000 n
-0000170879 00000 n
+0000170900 00000 n
0000009683 00000 n
0000014442 00000 n
-0000170962 00000 n
+0000170983 00000 n
0000014549 00000 n
0000019334 00000 n
-0000171045 00000 n
+0000171066 00000 n
0000019441 00000 n
0000023926 00000 n
-0000171128 00000 n
+0000171149 00000 n
0000024033 00000 n
0000028293 00000 n
-0000171211 00000 n
+0000171232 00000 n
0000028400 00000 n
0000033152 00000 n
-0000171294 00000 n
+0000171315 00000 n
0000033259 00000 n
0000037824 00000 n
-0000171377 00000 n
+0000171398 00000 n
0000037931 00000 n
0000042785 00000 n
-0000171460 00000 n
+0000171481 00000 n
0000042892 00000 n
0000047576 00000 n
-0000171543 00000 n
+0000171564 00000 n
0000047683 00000 n
0000052324 00000 n
-0000174346 00000 n
-0000173955 00000 n
-0000171627 00000 n
+0000174367 00000 n
+0000173976 00000 n
+0000171648 00000 n
0000052431 00000 n
0000056962 00000 n
-0000171711 00000 n
+0000171732 00000 n
0000057069 00000 n
0000061518 00000 n
-0000171795 00000 n
+0000171816 00000 n
0000061625 00000 n
0000065933 00000 n
-0000171879 00000 n
+0000171900 00000 n
0000066040 00000 n
0000070285 00000 n
-0000171963 00000 n
+0000171984 00000 n
0000070392 00000 n
0000074736 00000 n
-0000172047 00000 n
+0000172068 00000 n
0000074843 00000 n
0000078868 00000 n
-0000172131 00000 n
+0000172152 00000 n
0000078975 00000 n
0000083372 00000 n
-0000172215 00000 n
+0000172236 00000 n
0000083479 00000 n
0000087572 00000 n
-0000172299 00000 n
+0000172320 00000 n
0000087679 00000 n
0000091604 00000 n
-0000172383 00000 n
+0000172404 00000 n
0000091711 00000 n
0000096421 00000 n
-0000174093 00000 n
-0000172467 00000 n
+0000174114 00000 n
+0000172488 00000 n
0000096528 00000 n
0000101340 00000 n
-0000172551 00000 n
+0000172572 00000 n
0000101447 00000 n
0000105986 00000 n
-0000172635 00000 n
+0000172656 00000 n
0000106093 00000 n
0000110726 00000 n
-0000172719 00000 n
+0000172740 00000 n
0000110833 00000 n
0000115272 00000 n
-0000172803 00000 n
+0000172824 00000 n
0000115379 00000 n
0000119596 00000 n
-0000172887 00000 n
+0000172908 00000 n
0000119703 00000 n
0000123343 00000 n
-0000172971 00000 n
+0000172992 00000 n
0000123450 00000 n
0000128595 00000 n
-0000173055 00000 n
+0000173076 00000 n
0000128702 00000 n
0000133247 00000 n
-0000173139 00000 n
+0000173160 00000 n
0000133354 00000 n
-0000138105 00000 n
-0000173223 00000 n
-0000138212 00000 n
-0000143275 00000 n
-0000174231 00000 n
-0000173309 00000 n
-0000143383 00000 n
-0000148044 00000 n
-0000173397 00000 n
-0000148152 00000 n
-0000153119 00000 n
-0000173485 00000 n
-0000153227 00000 n
-0000158650 00000 n
-0000173573 00000 n
-0000158758 00000 n
-0000163410 00000 n
-0000173661 00000 n
-0000163518 00000 n
-0000169076 00000 n
-0000169324 00000 n
-0000169527 00000 n
-0000173749 00000 n
-0000173778 00000 n
-0000174452 00000 n
-0000174576 00000 n
+0000138111 00000 n
+0000173244 00000 n
+0000138218 00000 n
+0000143299 00000 n
+0000174252 00000 n
+0000173330 00000 n
+0000143407 00000 n
+0000148068 00000 n
+0000173418 00000 n
+0000148176 00000 n
+0000153059 00000 n
+0000173506 00000 n
+0000153167 00000 n
+0000158681 00000 n
+0000173594 00000 n
+0000158789 00000 n
+0000163345 00000 n
+0000173682 00000 n
+0000163453 00000 n
+0000169097 00000 n
+0000169345 00000 n
+0000169548 00000 n
+0000173770 00000 n
+0000173799 00000 n
+0000174473 00000 n
+0000174597 00000 n
trailer
<<
/Size 123
/Root 122 0 R
/Info 121 0 R
-/ID [<6f1fa4f957abd6d4edd957a2bc3331b3><6f1fa4f957abd6d4edd957a2bc3331b3>]
+/ID [<1d0538b9084573b823c6b337959eb502><1d0538b9084573b823c6b337959eb502>]
>>
startxref
-174648
+174669
%%EOF
diff --git a/html/Shift.pdf b/html/Shift.pdf
index 3f717de8..a42ac390 100644
--- a/html/Shift.pdf
+++ b/html/Shift.pdf
@@ -593,8 +593,8 @@ endobj
endobj
16 0 obj
<<
-/CreationDate (D:20210422145339-04'00')
-/ModDate (D:20210422145339-04'00')
+/CreationDate (D:20210520202906-04'00')
+/ModDate (D:20210520202906-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -630,7 +630,7 @@ trailer
/Size 18
/Root 17 0 R
/Info 16 0 R
-/ID [<8e19456eaff63821249a7d1d603df2f5><8e19456eaff63821249a7d1d603df2f5>]
+/ID [<5d04d840c23a7f538d36766fd2dc5f32><5d04d840c23a7f538d36766fd2dc5f32>]
>>
startxref
11800
diff --git a/html/TagNames/Canon.html b/html/TagNames/Canon.html
index 47cd0152..50765aa2 100644
--- a/html/TagNames/Canon.html
+++ b/html/TagNames/Canon.html
@@ -1816,8 +1816,8 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>36910</td><td>= Canon EF 70-300mm f/4-5.6 IS II USM</td>
</tr><tr><td>36912</td><td>= Canon EF-S 18-135mm f/3.5-5.6 IS USM</td>
</tr><tr><td>61182</td><td>= Canon RF 50mm F1.2L USM or other Canon RF Lens</td>
-</tr><tr><td>61182.1</td><td>= Canon RF 85mm F2 MACRO IS STM</td>
-</tr><tr><td>61182.2</td><td>= Canon RF 100-500mm F4.5-7.1L IS USM + RF2x</td>
+</tr><tr><td>61182.1</td><td>= Canon RF 24-105mm F4L IS USM</td>
+</tr><tr><td>61182.2</td><td>= Canon RF 28-70mm F2L USM</td>
</tr><tr><td>61182.3</td><td>= Canon RF 35mm F1.8 MACRO IS STM</td>
</tr><tr><td>61182.4</td><td>= Canon RF 85mm F1.2L USM</td>
</tr><tr><td>61182.5</td><td>= Canon RF 85mm F1.2L USM DS</td>
@@ -1825,6 +1825,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>61182.7</td><td>= Canon RF 15-35mm F2.8L IS USM</td>
</tr><tr><td>61182.8</td><td>= Canon RF 24-240mm F4-6.3 IS USM</td>
</tr><tr><td>61182.9</td><td>= Canon RF 70-200mm F2.8L IS USM</td>
+</tr><tr><td>61182.10</td><td>= Canon RF 85mm F2 MACRO IS STM</td>
</tr><tr><td>61182.11</td><td>= Canon RF 600mm F11 IS STM</td>
</tr><tr><td>61182.12</td><td>= Canon RF 600mm F11 IS STM + RF1.4x</td>
</tr><tr><td>61182.13</td><td>= Canon RF 600mm F11 IS STM + RF2x</td>
@@ -1834,6 +1835,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>61182.17</td><td>= Canon RF 24-105mm F4-7.1 IS STM</td>
</tr><tr><td>61182.18</td><td>= Canon RF 100-500mm F4.5-7.1L IS USM</td>
</tr><tr><td>61182.19</td><td>= Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x</td>
+</tr><tr><td>61182.20</td><td>= Canon RF 100-500mm F4.5-7.1L IS USM + RF2x</td>
</tr><tr><td>61182.21</td><td>= Canon RF 70-200mm F4L IS USM</td>
</tr><tr><td>61182.22</td><td>= Canon RF 50mm F1.8 STM</td>
</tr><tr><td>61491</td><td>= Canon CN-E 14mm T3.1 L F</td>
@@ -11106,7 +11108,7 @@ SX280, and CR3 images from cameras such as the EOS M50.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 22, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/JPEG.html b/html/TagNames/JPEG.html
index d8077473..33d6ecfa 100644
--- a/html/TagNames/JPEG.html
+++ b/html/TagNames/JPEG.html
@@ -58,11 +58,13 @@
<td>'APP3'</td>
<td>Meta
<br>Stim
+ <br>JPS
<br>ThermalData
<br>PreviewImage</td>
-<td class=c>-<br>-<br>no<br>no</td>
+<td class=c>-<br>-<br>-<br>no<br>no</td>
<td>--&gt; <a href='Kodak.html#Meta'>Kodak Meta Tags</a>
<br>--&gt; <a href='Stim.html'>Stim Tags</a>
+ <br>--&gt; <a href='JPEG.html#JPS'>JPEG JPS Tags</a>
<br><span class=n>(DJI raw thermal data)</span>
<br><span class=n>(Samsung/HP preview image)</span></td></tr>
<tr>
@@ -222,6 +224,51 @@ images).</p>
<td>&nbsp;</td></tr>
</table></td></tr></table></blockquote>
+<h2><a name='JPS'>JPEG JPS Tags</a></h2>
+<p>Tags found in JPEG Stereo (JPS) images.</p>
+<blockquote>
+<table class=frame><tr><td>
+<table class=inner cellspacing=1>
+<tr class=h><th>Index1</th><th>Tag Name</th>
+<th>Writable</th><th>Values / <span class=n>Notes</span></th></tr>
+<tr>
+<td class=r title='10 = 0xa'>10</td>
+<td>JPSSeparation</td>
+<td class=c>no</td>
+<td><span class=s><span class=n>(stereo only)</span></span></td></tr>
+<tr class=b>
+<td class=r title='11 = 0xb'>11</td>
+<td>JPSFlags</td>
+<td class=c>no</td>
+<td><span class=s>Bit 0 = Half height
+ <br>Bit 1 = Half width
+ <br>Bit 2 = Left field first</span></td></tr>
+<tr>
+<td class=r title='12 = 0xc'>12</td>
+<td>JPSLayout</td>
+<td class=c>no</td>
+<td><span class=s><span class=n>(mono)</span>
+ <br>0 = Both Eyes
+ <br>1 = Left Eye
+ <br>2 = Right Eye
+ <br><span class=n>(stereo)</span>
+ <br>1 = Interleaved
+ <br>2 = Side By Side
+ <br>3 = Over Under
+ <br>4 = Anaglyph</span></td></tr>
+<tr class=b>
+<td class=r title='13 = 0xd'>13</td>
+<td>JPSType</td>
+<td class=c>no</td>
+<td><span class=s>0 = Mono
+ <br>1 = Stereo</span></td></tr>
+<tr>
+<td class=r title='16 = 0x10'>16</td>
+<td>JPSComment</td>
+<td class=c>no</td>
+<td>&nbsp;</td></tr>
+</table></td></tr></table></blockquote>
+
<h2><a name='EPPIM'>JPEG EPPIM Tags</a></h2>
<p>APP6 is used in by the Toshiba PDR-M700 to store a TIFF structure containing
PrintIM information.</p>
@@ -619,7 +666,7 @@ because it may affect the appearance of the image.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 1, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Pentax.html b/html/TagNames/Pentax.html
index cfe65ed9..74027696 100644
--- a/html/TagNames/Pentax.html
+++ b/html/TagNames/Pentax.html
@@ -1757,10 +1757,10 @@ are left, top, width and height in a 720x480 frame, with Y downwards)</span></sp
<td class=r>0x13240</td><td>= K-1 Mark II</td>
</tr><tr><td class=r>0x12c1e</td><td>= K10D</td>
<td class='r b'>0x12e3a</td><td class=b>= Optio I-10</td>
-<td class=r>0x13290</td><td>= WG-70</td>
+<td class=r>0x13254</td><td>= K-3 Mark III</td>
</tr><tr><td class=r>0x12c20</td><td>= Samsung GX10</td>
<td class='r b'>0x12e44</td><td class=b>= Optio H90</td>
-<td class=r>&nbsp;</td><td>&nbsp;</td>
+<td class=r>0x13290</td><td>= WG-70</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='City'>Pentax City Values</a></h2>
@@ -4903,7 +4903,7 @@ stored as ASCII text in a format very similar to some HP models.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Jan 6, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/QuickTime.html b/html/TagNames/QuickTime.html
index d3bbe05d..7d7a5a00 100644
--- a/html/TagNames/QuickTime.html
+++ b/html/TagNames/QuickTime.html
@@ -968,7 +968,8 @@ changed via <a href="../config.html#PREF">the config file</a>.</p>
<td>'location.ISO6709'</td>
<td>GPSCoordinates</td>
<td class=c>yes</td>
-<td>&nbsp;</td></tr>
+<td><span class=s><span class=n>(Google Photos may ignore this if the coorinates have more than 5 digits
+after the decimal)</span></span></td></tr>
<tr>
<td>'location.accuracy.horizontal'</td>
<td>LocationAccuracyHorizontal</td>
@@ -8751,7 +8752,7 @@ yaw, pitch and roll angles in degrees)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 22, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Sony.html b/html/TagNames/Sony.html
index 0e39b43b..3099b919 100644
--- a/html/TagNames/Sony.html
+++ b/html/TagNames/Sony.html
@@ -4945,6 +4945,7 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>50524</td><td>= Sigma 35mm F2 DG DN | C</td>
</tr><tr><td>50525</td><td>= Sigma 24mm F3.5 DG DN | C</td>
</tr><tr><td>50526</td><td>= Sigma 28-70mm F2.8 DG DN | C</td>
+</tr><tr><td>50528</td><td>= Sigma 35mm F1.4 DG DN | A</td>
</tr><tr><td>50992</td><td>= Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III</td>
</tr><tr><td>50993</td><td>= Voigtlander HELIAR-HYPER WIDE 10mm F5.6</td>
</tr><tr><td>50994</td><td>= Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III</td>
@@ -4965,6 +4966,7 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>51510</td><td>= Samyang AF 18mm F2.8 or Samyang AF 35mm F1.8</td>
</tr><tr><td>51510.1</td><td>= Samyang AF 35mm F1.8</td>
</tr><tr><td>51512</td><td>= Samyang AF 75mm F1.8</td>
+</tr><tr><td>51514</td><td>= Samyang AF 24mm F1.8 FE</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='CameraSettingsUnknown'>Sony CameraSettingsUnknown Tags</a></h2>
@@ -11775,7 +11777,7 @@ some models when the <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded<
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Apr 22, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/index.html b/html/TagNames/index.html
index 98b24f5c..e3ce9a31 100644
--- a/html/TagNames/index.html
+++ b/html/TagNames/index.html
@@ -10,7 +10,7 @@
<h2 class=top>ExifTool Tag Names</h2>
<p>
The tables listed below give the names of all tags recognized by ExifTool.
-They contain a total of 24273 tags, with 15738 unique tag names.
+They contain a total of 24279 tags, with 15743 unique tag names.
</p>
<blockquote>
<table width='100%' class=frame><tr><td>
@@ -234,7 +234,7 @@ ExifTool. A big thanks to everyone who has helped with this so far!)</i>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
<br><i>Created Feb 15, 2005</i>
-<br><i>Last revised Apr 22, 2021</i>
+<br><i>Last revised May 20, 2021</i>
<p class=lf><a href='../index.html'>&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/exiftool_pod.html b/html/exiftool_pod.html
index 77e06cdd..e3220787 100644
--- a/html/exiftool_pod.html
+++ b/html/exiftool_pod.html
@@ -685,7 +685,7 @@
<p>produces output like this:</p>
-<pre><code> -- Generated by ExifTool 12.25 --
+<pre><code> -- Generated by ExifTool 12.26 --
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
diff --git a/html/exiftool_pod.pdf b/html/exiftool_pod.pdf
index 5c382116..64135d71 100644
--- a/html/exiftool_pod.pdf
+++ b/html/exiftool_pod.pdf
@@ -12,7 +12,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 1)Tj
+( -- ExifTool 12.26 -- 1)Tj
/TT4 1 Tf
0 -1.6333 TD
(EXIFTOOL\(1\) User Contributed Perl Documentation EXIFTOOL\(1\))Tj
@@ -637,7 +637,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 2)Tj
+( -- ExifTool 12.26 -- 2)Tj
/TT4 1 Tf
0 -1.6333 TD
( AVIF r/w | FITS r | MAX r | PCX r | SWF r)Tj
@@ -834,7 +834,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 3)Tj
+( -- ExifTool 12.26 -- 3)Tj
/TT4 1 Tf
0 -1.6333 TD
( -charset [[TYPE=]CHARSET] Specify encoding for special characters)Tj
@@ -991,7 +991,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 4)Tj
+( -- ExifTool 12.26 -- 4)Tj
/TT4 1 Tf
0 -1.6333 TD
( -globalTimeShift SHIFT Shift all formatted date/time values)Tj
@@ -1282,7 +1282,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 5)Tj
+( -- ExifTool 12.26 -- 5)Tj
/TT4 1 Tf
0 -1.6333 TD
( the -)Tj
@@ -1615,7 +1615,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 6)Tj
+( -- ExifTool 12.26 -- 6)Tj
/TT4 1 Tf
0 -1.6333 TD
( deletable Time tags except those in the EXIF. This difference)Tj
@@ -2052,7 +2052,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 7)Tj
+( -- ExifTool 12.26 -- 7)Tj
/TT4 1 Tf
0 -1.6333 TD
( specified for each copied tag. With this feature, information may)Tj
@@ -2539,7 +2539,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 8)Tj
+( -- ExifTool 12.26 -- 8)Tj
/TT4 1 Tf
0 -1.6333 TD
( groups of tags from a file containing redundant information, it)Tj
@@ -3042,7 +3042,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 9)Tj
+( -- ExifTool 12.26 -- 9)Tj
/TT4 1 Tf
0 -1.6333 TD
( "unsafe". For instance, the FileName and Directory tags are)Tj
@@ -3463,7 +3463,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 10)Tj
+( -- ExifTool 12.26 -- 10)Tj
/TT4 1 Tf
0 -1.6333 TD
( Vietnam cp1258 Windows Vietnamese)Tj
@@ -3748,7 +3748,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 11)Tj
+( -- ExifTool 12.26 -- 11)Tj
/TT4 1 Tf
0 -1.6333 TD
( names, the duplicate tags are only included in the CSV output if)Tj
@@ -4221,7 +4221,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 12)Tj
+( -- ExifTool 12.26 -- 12)Tj
/TT4 1 Tf
0 -1.6333 TD
( option, a dash \("-"\) is printed for the value of any missing tag,)Tj
@@ -4838,7 +4838,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 13)Tj
+( -- ExifTool 12.26 -- 13)Tj
/TT4 1 Tf
0 -1.6333 TD
( UTF-8 regardless of any -)Tj
@@ -5227,7 +5227,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 14)Tj
+( -- ExifTool 12.26 -- 14)Tj
/TT4 1 Tf
0 -2.7333 TD
( push @INC, 'lib';)Tj
@@ -5492,7 +5492,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 15)Tj
+( -- ExifTool 12.26 -- 15)Tj
/TT4 1 Tf
0 -1.6333 TD
( A section is defined as a group of consecutive files with the same)Tj
@@ -5525,7 +5525,7 @@ T*
T*
( produces output like this:)Tj
T*
-( -- Generated by ExifTool 12.25 --)Tj
+( -- Generated by ExifTool 12.26 --)Tj
0 -1.1 TD
( File: a.jpg - 2003:10:31 15:44:19)Tj
T*
@@ -5871,7 +5871,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 16)Tj
+( -- ExifTool 12.26 -- 16)Tj
/TT4 1 Tf
0 -1.6333 TD
( to column-align values.)Tj
@@ -6414,7 +6414,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 17)Tj
+( -- ExifTool 12.26 -- 17)Tj
/TT4 1 Tf
0 -1.6333 TD
( the source file extension \(including the '.'\) with the specified)Tj
@@ -6645,7 +6645,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 18)Tj
+( -- ExifTool 12.26 -- 18)Tj
/TT4 1 Tf
0 -1.6333 TD
( For %d and %D, the field width/position specifiers may be applied)Tj
@@ -6876,7 +6876,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 19)Tj
+( -- ExifTool 12.26 -- 19)Tj
/TT4 1 Tf
0 -1.6333 TD
( the output file \(based on the format of the data\). The %g code)Tj
@@ -7383,7 +7383,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 20)Tj
+( -- ExifTool 12.26 -- 20)Tj
/TT4 1 Tf
0 -1.6333 TD
( -)Tj
@@ -7884,7 +7884,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 21)Tj
+( -- ExifTool 12.26 -- 21)Tj
/TT4 1 Tf
0 -1.6333 TD
( that exiftool will automatically fix the offsets for images which)Tj
@@ -8441,7 +8441,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 22)Tj
+( -- ExifTool 12.26 -- 22)Tj
/TT4 1 Tf
0 -1.6333 TD
( character to disable print conversion. The expression $GROUP:all)Tj
@@ -8756,7 +8756,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 23)Tj
+( -- ExifTool 12.26 -- 23)Tj
/TT4 1 Tf
0 -1.6333 TD
( with minor errors and disables some validation checks which could)Tj
@@ -9311,7 +9311,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 24)Tj
+( -- ExifTool 12.26 -- 24)Tj
/TT4 1 Tf
0 -1.6333 TD
( necessary.)Tj
@@ -9886,7 +9886,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 25)Tj
+( -- ExifTool 12.26 -- 25)Tj
/TT4 1 Tf
0 -1.6333 TD
( to tags with numerical tag ID's, and causes tag names like)Tj
@@ -10267,7 +10267,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 26)Tj
+( -- ExifTool 12.26 -- 26)Tj
/TT4 1 Tf
0 -1.6333 TD
( used to prevent the command window from closing when run as a)Tj
@@ -10872,7 +10872,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 27)Tj
+( -- ExifTool 12.26 -- 27)Tj
/TT4 1 Tf
0 -1.6333 TD
( they are supported by the destination metadata format\):)Tj
@@ -11239,7 +11239,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 28)Tj
+( -- ExifTool 12.26 -- 28)Tj
/TT4 1 Tf
0 -1.6333 TD
( -)Tj
@@ -11906,7 +11906,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 29)Tj
+( -- ExifTool 12.26 -- 29)Tj
/TT4 1 Tf
0 -1.6333 TD
( -)Tj
@@ -12539,7 +12539,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 30)Tj
+( -- ExifTool 12.26 -- 30)Tj
/TT4 1 Tf
0 -1.6333 TD
( per line \(see the -)Tj
@@ -13096,7 +13096,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 31)Tj
+( -- ExifTool 12.26 -- 31)Tj
/TT4 1 Tf
0 -1.6333 TD
( with spaces translated to underlines, and multiple consecutive)Tj
@@ -13295,7 +13295,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 32)Tj
+( -- ExifTool 12.26 -- 32)Tj
/TT4 1 Tf
0 -1.6333 TD
( valid ExifTool character set, preferably "UTF8" \(see the -)Tj
@@ -13804,7 +13804,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 33)Tj
+( -- ExifTool 12.26 -- 33)Tj
/TT4 1 Tf
0 -1.6333 TD
( quotes as below around arguments containing special characters.)Tj
@@ -13941,7 +13941,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 34)Tj
+( -- ExifTool 12.26 -- 34)Tj
/TT4 1 Tf
0 -2.7333 TD
( exiftool -icc_profile -b -w icc image.jpg)Tj
@@ -14108,7 +14108,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 35)Tj
+( -- ExifTool 12.26 -- 35)Tj
/TT4 1 Tf
0 -1.6333 TD
( exiftool -r -XMP-crss:all= DIR)Tj
@@ -14275,7 +14275,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 36)Tj
+( -- ExifTool 12.26 -- 36)Tj
/TT4 1 Tf
0 -1.6333 TD
( Copy the values of all writable tags from "src.cr2" to "dst.jpg",)Tj
@@ -14444,7 +14444,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 37)Tj
+( -- ExifTool 12.26 -- 37)Tj
/TT4 1 Tf
0 -1.6333 TD
( Recursively rewrite all "JPG" images in "dir" with information)Tj
@@ -14691,7 +14691,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 38)Tj
+( -- ExifTool 12.26 -- 38)Tj
/TT4 1 Tf
0 -1.6333 TD
( exiftool -o . '-Directory<DateTimeOriginal' -d %Y/%m/%d dir)Tj
@@ -14868,7 +14868,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.25 -- 39)Tj
+( -- ExifTool 12.26 -- 39)Tj
/TT4 1 Tf
0 -1.6333 TD
( exiftool -xmp:geotag=track.log a.jpg)Tj
@@ -15243,7 +15243,7 @@ T*
0.6 0 TD
(s\(3pm\), Image::ExifTool::Shift.pl)Tj
-19.2 -4.4 TD
-(perl v5.18.4 2021-04-22 EXIFTOOL\(1\))Tj
+(perl v5.18.4 2021-05-20 EXIFTOOL\(1\))Tj
ET
endstream
endobj
@@ -15703,8 +15703,8 @@ endobj
endobj
130 0 obj
<<
-/CreationDate (D:20210422145337-04'00')
-/ModDate (D:20210422145337-04'00')
+/CreationDate (D:20210520202904-04'00')
+/ModDate (D:20210520202904-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -15854,7 +15854,7 @@ trailer
/Size 132
/Root 131 0 R
/Info 130 0 R
-/ID [<b3d1dc5ae4b0d68c4a17df38172d68bb><b3d1dc5ae4b0d68c4a17df38172d68bb>]
+/ID [<4d82a8c20d97e3c2c2301d448688147e><4d82a8c20d97e3c2c2301d448688147e>]
>>
startxref
267708
diff --git a/html/geotag.html b/html/geotag.html
index 3912ecb3..5b165574 100644
--- a/html/geotag.html
+++ b/html/geotag.html
@@ -91,11 +91,11 @@ option, so this command is equivalent to the one above:</p>
<p>Multiple GPS log files may be loaded simultaneously by using more than one
<code>-geotag</code> option or <code>-geotag=</code> assignment in the same
-command. This allows batch processing of images spanning different tracks with
-a single command. Wildcards may be used in the argument of the
-<code>-geotag</code> option, but note that the argument may then need to be
-quoted on some systems to prevent shell globbing, and that wildcards are not
-supported with the <code>-geotag=</code> syntax. See the
+command, or by using wildcards in the filename argument of the
+<code>-geotag</code> option. This allows batch processing of images spanning
+different tracks with a single command. When using wildcards the argument may
+need to be quoted on some systems to prevent shell globbing, but note that
+wildcards are not supported with the <code>-geotag=</code> syntax. See the
<a href="#Examples">examples</a> below.</p>
<p>Deleting the <code>Geotag</code> tag (with <code>-geotag=</code>) causes the
@@ -717,7 +717,7 @@ forum post</a> for more useful tips about creating KML files.</p>
<hr>
<i>Created Apr. 2, 2009</i><br>
-<i>Last revised Dec. 1, 2020</i>
+<i>Last revised Apr. 27, 2021</i>
<p class='lf'><a href="index.html">&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/html/history.html b/html/history.html
index 24533f51..5653f8b0 100644
--- a/html/history.html
+++ b/html/history.html
@@ -11,16 +11,30 @@
<p>RSS feed: <a href="https://exiftool.org/rss.xml">https://exiftool.org/rss.xml</a></p>
-<p><b>Note:</b> The most recent production release is <a href="Image-ExifTool-12.16.tar.gz">Version 12.16</a>. (Other versions are
+<p><b>Note:</b> The most recent production release is <a href="Image-ExifTool-12.26.tar.gz">Version 12.26</a>. (Other versions are
considered development releases, and are not uploaded to <a href="https://metacpan.org/release/Image-ExifTool">MetaCPAN</a>.)</p>
<!-- Use line width of 80 -->
<!-- *********************************************************************** -->
+<a name='v12.26'><b>May 20, 2021 - Version 12.26</b></a> <span class=grn>(production release)</span>
+<ul>
+<li>Added support for JPEG Stereo (JPS) images
+<li>Added a new Sony LensType (thanks LibRaw)
+<li>Added a new PentaxModelID (thanks LibRaw)
+<li>Changed ExifTool namespace URI to use exiftool.org instead of exiftool.ca in
+ the -X option output (exiftool.ca is still recognized when reading XML)
+<li>Improved handling of large-array warnings in -htmldump output
+<li>Changed handling of escaped characters in #[CSTR] lines of -@ argfile
+<li>Patched security vulnerability in argument of -lang option
+<li>Fixed problem which could cause a "Wide character" warning and generate a
+ corrupted output file when writing some illegal values
+</ul>
+
<a name='v12.25'><b>Apr. 22, 2021 - Version 12.25</b></a>
<ul>
<li>JPEG XL support is now official
-<li>Added read support for Medical Research Council (MRC) image files
+<li>Added read support for <a href="TagNames/MRC.html">Medical Research Council (MRC) image files</a>
<li>Added ability to write a number of 3gp tags in video files
<li>Added a new Sony PictureProfile value (thanks Jos Roost)
<li>Added a new Sony LensType (thanks LibRaw)
@@ -44,11 +58,11 @@ considered development releases, and are not uploaded to <a href="https://metacp
<li>Added a new PhaseOne RawFormat value (thanks LibRaw)
<li>Decode a new Sony tag (thanks Jos Roost)
<li>Decode a few new Panasonic and FujiFilm tags (thanks LibRaw and Greybeard)
-<li>Patched security vulnerability in DjVu reader
<li>Updated acdsee.config in distribution (thanks StarGeek)
<li>Recognize AutoCAD DXF files
<li>More work on experimental JUMBF read support
<li>More work on experimental JPEG XL read/write support
+<li>Patched security vulnerability in DjVu reader
</ul>
<a name='v12.23'><b>Apr. 1, 2021 - Version 12.23</b></a>
@@ -87,7 +101,7 @@ considered development releases, and are not uploaded to <a href="https://metacp
<li>Improved flexibility when writing GPS coordinates:
<ul>
<li>Now pulls latitude and longitude from a combined GPSCoordinates string
- <li>Recognizes the full word "South" and "West" to write negative coordinates
+ <li>Recognize full word "South" and "West" to write negative coordinates
</ul>
<li>Improved warning when trying to write an integer QuickTime date/time tag and
Time::Local is not available
diff --git a/html/index.html b/html/index.html
index b90b9068..26e37263 100644
--- a/html/index.html
+++ b/html/index.html
@@ -87,9 +87,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-12.25.tar.gz/download">
-Download Version 12.25</a> (4.7 MB) -
-<a href="history.html">Apr. 22, 2021</a></b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/Image-ExifTool-12.26.tar.gz/download">
+Download Version 12.26</a> (4.7 MB) -
+<a href="history.html">May 20, 2021</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
@@ -142,8 +142,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-12.25.zip/download">
- exiftool-12.25.zip</a> (6.4 MB)</b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/exiftool-12.26.zip/download">
+ exiftool-12.26.zip</a> (6.4 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
@@ -161,7 +161,7 @@ if you have any problems/comments with this version.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
MacOS Package:
<a href="http://sourceforge.net/projects/exiftool/files/ExifTool-9.70.dmg/download">
- ExifTool-12.25.dmg</a> (3.0 MB)</b></td></tr></table></blockquote>
+ ExifTool-12.26.dmg</a> (3.0 MB)</b></td></tr></table></blockquote>
<p><b>The MacOS package</b> installs the ExifTool command-line application and
libraries in /usr/local/bin. After installing, type "<code>exiftool</code>" in a
@@ -511,6 +511,7 @@ of meta information in JPEG images:</p>
<tr><td>APP2 - PreviewImage</td><td>R</td><td>Samsung/GE APP2 preview image (multi-segment)</td></tr>
<tr><td>APP3 - <a href="TagNames/Kodak.html#Meta">Kodak Meta</a></td><td>R/W</td><td>Kodak Meta information (EXIF-like)</td></tr>
<tr><td>APP3 - <a href="TagNames/Stim.html">Stim</a></td><td>R</td><td>Stereo Still Image format</td></tr>
+<tr><td>APP3 - <a href="TagNames/JPEG.html#JPS">JPS</a></td><td>R</td><td>JPEG Stereo image</td></tr>
<tr><td>APP3 - ThermalData</td><td>R</td><td>Thermal data from DJI RJPEG file (multi-segment)</td></tr>
<tr><td>APP3 - PreviewImage</td><td>R</td><td>Samsung/HP preview image (multi-segment)</td></tr>
<tr><td>APP4 - <a href="TagNames/Scalado.html">Scalado</a></td><td>R</td><td>(presumably written by <a href="http://www.scalado.com/">Scalado</a> mobile software)</td></tr>
@@ -803,9 +804,9 @@ of the group names in each family:</p>
<blockquote><table class=norm>
<tr><th>Family</th><th>Group Names</th></tr>
<tr><td><b>0 (Information&nbsp;Type)</b></td>
-<td class=sm>AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5,
-APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky,
-EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
+<td class=sm>AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4,
+APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu,
+Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC,
ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE,
MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg,
@@ -824,7 +825,7 @@ GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
-InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JUMBF, JVC,
+InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC,
Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC,
MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS,
diff --git a/html/install.html b/html/install.html
index 18fc3bf9..061e740e 100644
--- a/html/install.html
+++ b/html/install.html
@@ -52,10 +52,10 @@ documentation or some other files of the full distribution.</p>
<h3>Stand-Alone Executable</h3>
<ol>
<li><b>Download</b> the <b>Windows Executable</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>exiftool-12.25.zip</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>exiftool-12.26.zip</code>".)</span></li>
<li><b>Extract "<code>exiftool(-k).exe</code>"</b> from the
"<code>.zip</code>" file, and place it <b>on your Desktop</b>.
-<br><span class=lt>(Double-click on "<code>exiftool-12.25.zip</code>" to open
+<br><span class=lt>(Double-click on "<code>exiftool-12.26.zip</code>" to open
the archive, then drag "<code>exiftool(-k).exe</code>" to your Desktop.)</span></li>
</ol>
<p>You can now double-click on "<code>exiftool(-k).exe</code>" to read the
@@ -109,7 +109,7 @@ can be downloaded from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.25.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.26.tar.gz</code>".)</span></li>
<li><b>Extract the ExifTool files</b> from the archive.
<br><span class=lt>(The archive is a gzipped tar file, and can be opened with
various Windows utilities, including WinZip.)</span></li>
@@ -151,7 +151,7 @@ in the MacOS package. Both versions run natively on PPC and Intel Macs.</p>
<h3>MacOS Package</h3>
<ol>
<li><b>Download</b> the <b>ExifTool MacOS Package</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>ExifTool-12.25.dmg</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>ExifTool-12.26.dmg</code>".)</span></li>
<li><b>Install</b> as a normal <b>MacOS package</b>.
<br><span class=lt>(Open the disk image, double-click on the install package, and follow the instructions.
See the second item in the Notes section below if you are stopped with an "unidentified developer" message.)
@@ -167,12 +167,12 @@ See the second item in the Notes section below if you are stopped with an "unide
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
to your Desktop.
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.25.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.26.tar.gz</code>".)</span></li>
<li><b>Launch</b> the <b>Terminal</b> application from the Utilities folder in your Applications folder.</li>
<li>In the Terminal window, <b>type the following</b>:
<pre class='code'> cd ~/Desktop
- tar -xzf Image-ExifTool-12.25.tar.gz
- cd Image-ExifTool-12.25
+ tar -xzf Image-ExifTool-12.26.tar.gz
+ cd Image-ExifTool-12.26
sudo cp -r exiftool lib /usr/local/bin
</pre>
<span class=lt>(Note: The last step above will require you to enter your
@@ -188,7 +188,7 @@ your Perl version. If both sets of libraries exist, /usr/local/bin/lib takes
precedence for exiftool, but /Library/Perl/#.#.# is the default for any other
Perl scripts.</li>
<li>In MacOS 10.8 or later, you may see this message when you try to open the install package:
-<blockquote class=red>"ExifTool-12.25.pkg" can't be opened because it is from an
+<blockquote class=red>"ExifTool-12.26.pkg" can't be opened because it is from an
unidentified developer.</blockquote> The solution is to control-click on the pkg
then select "Open" from the pop-up menu instead of just double-clicking. An alternative
is to lower the security settings by changing "Allow applications downloaded from" to
@@ -215,11 +215,11 @@ have the wrong "<code>lib</code>" folder.</li>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.25.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.26.tar.gz</code>".)</span></li>
<li><b>Unpack the distribution</b> and <b>make it your current directory</b> by typing:
<pre class='code'> cd <i>&lt;your download directory&gt;</i>
- gzip -dc Image-ExifTool-12.25.tar.gz | tar -xf -
- cd Image-ExifTool-12.25
+ gzip -dc Image-ExifTool-12.26.tar.gz | tar -xf -
+ cd Image-ExifTool-12.26
</pre>
<span class=lt>(At this point you may run exiftool by typing
"<code>./exiftool <i>&lt;image file name&gt;</i></code>".)</span></li>
diff --git a/html/sample_images.html b/html/sample_images.html
index 3d35f127..723b72c1 100644
--- a/html/sample_images.html
+++ b/html/sample_images.html
@@ -8,7 +8,7 @@
<body>
<h1 class='up'>ExifTool Meta Information Repository</h1>
<p>The following archives contain sample JPEG images with the original meta
-information from 6920 different models of digital cameras, DV recorders,
+information from 6923 different models of digital cameras, DV recorders,
scanners and cell phones from 103 manufacturers. To conserve space and avoid
copyright problems, the main image has been replaced, and the large preview
image (and any other information found after the JPEG EOI) has been removed.
@@ -102,10 +102,10 @@ repository as more suitable samples become available.</p>
<td align='right'>65 kB&nbsp;</td>
<td>&nbsp;<a href='Fly.tar.gz'>Fly.tar.gz</a></td>
<td align='center'>2011-01-28</td></tr>
-<tr><td>&nbsp;FujiFilm</td><td align='center'>395</td>
+<tr><td>&nbsp;FujiFilm</td><td align='center'>396</td>
<td align='right'>11 MB&nbsp;</td>
<td>&nbsp;<a href='FujiFilm.tar.gz'>FujiFilm.tar.gz</a></td>
-<td align='center'>2020-12-02</td></tr>
+<td align='center'>2021-05-10</td></tr>
<tr><td>&nbsp;Garmin</td><td align='center'>2</td>
<td align='right'>18 kB&nbsp;</td>
<td>&nbsp;<a href='Garmin.tar.gz'>Garmin.tar.gz</a></td>
@@ -314,10 +314,10 @@ repository as more suitable samples become available.</p>
<td align='right'>153 kB&nbsp;</td>
<td>&nbsp;<a href='RIM.tar.gz'>RIM.tar.gz</a></td>
<td align='center'>2018-05-09</td></tr>
-<tr><td>&nbsp;Ricoh</td><td align='center'>107</td>
-<td align='right'>2.3 MB&nbsp;</td>
+<tr><td>&nbsp;Ricoh</td><td align='center'>108</td>
+<td align='right'>2.4 MB&nbsp;</td>
<td>&nbsp;<a href='Ricoh.tar.gz'>Ricoh.tar.gz</a></td>
-<td align='center'>2020-05-11</td></tr>
+<td align='center'>2021-05-10</td></tr>
<tr><td>&nbsp;Rollei</td><td align='center'>18</td>
<td align='right'>600 kB&nbsp;</td>
<td>&nbsp;<a href='Rollei.tar.gz'>Rollei.tar.gz</a></td>
@@ -326,10 +326,10 @@ repository as more suitable samples become available.</p>
<td align='right'>119 kB&nbsp;</td>
<td>&nbsp;<a href='Sagem.tar.gz'>Sagem.tar.gz</a></td>
<td align='center'>2011-12-14</td></tr>
-<tr><td>&nbsp;Samsung</td><td align='center'>689</td>
+<tr><td>&nbsp;Samsung</td><td align='center'>690</td>
<td align='right'>13 MB&nbsp;</td>
<td>&nbsp;<a href='Samsung.tar.gz'>Samsung.tar.gz</a></td>
-<td align='center'>2020-12-02</td></tr>
+<td align='center'>2021-05-10</td></tr>
<tr><td>&nbsp;Sanyo</td><td align='center'>76</td>
<td align='right'>1.1 MB&nbsp;</td>
<td>&nbsp;<a href='Sanyo.tar.gz'>Sanyo.tar.gz</a></td>
@@ -434,12 +434,12 @@ repository as more suitable samples become available.</p>
<td align='right'>351 kB&nbsp;</td>
<td>&nbsp;<a href='ZTE.tar.gz'>ZTE.tar.gz</a></td>
<td align='center'>2015-07-27</td></tr>
-<tr bgcolor='#dddddd'><th>Total</th><td align='center'>6920 models</td>
-<td align='right'>139.7 MB&nbsp;</td><td align='center'>103 makes</td>
-<td align='center'>2021-02-05</td></tr>
+<tr bgcolor='#dddddd'><th>Total</th><td align='center'>6923 models</td>
+<td align='right'>139.8 MB&nbsp;</td><td align='center'>103 makes</td>
+<td align='center'>2021-05-10</td></tr>
</table></blockquote><hr>
<i>Created May 15, 2006</i><br>
-<i>Last revised Feb 5, 2021</i>
+<i>Last revised May 10, 2021</i>
<p class='lf'><a href='index.html'>&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/lib/Image/ExifTool.pm b/lib/Image/ExifTool.pm
index 310186ee..a62ca7f8 100644
--- a/lib/Image/ExifTool.pm
+++ b/lib/Image/ExifTool.pm
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
-$VERSION = '12.25';
+$VERSION = '12.26';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
@@ -354,6 +354,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
JPF => 'JP2',
JPG => 'JPEG',
JPM => ['JP2', 'JPEG 2000 compound image'],
+ JPS => ['JPEG', 'JPEG Stereo image'],
JPX => ['JP2', 'JPEG 2000 with extensions'],
JSON => ['JSON', 'JavaScript Object Notation'],
JXL => ['JXL', 'JPEG XL'],
@@ -654,6 +655,7 @@ my %fileDescription = (
JP2 => 'image/jp2',
JPEG => 'image/jpeg',
JPM => 'image/jpm',
+ JPS => 'image/x-jps',
JPX => 'image/jpx',
JSON => 'application/json',
JXL => 'image/jxl', #PH (NC)
@@ -2084,12 +2086,15 @@ sub Options($$;@)
$$options{$param} = $newVal;
delete $$self{CUR_LANG};
# make sure the language is available
- } elsif (eval "require Image::ExifTool::Lang::$newVal") {
- my $xlat = "Image::ExifTool::Lang::${newVal}::Translate";
- no strict 'refs';
- if (%$xlat) {
- $$self{CUR_LANG} = \%$xlat;
- $$options{$param} = $newVal;
+ } else {
+ my %langs = map { $_ => 1 } @langs;
+ if ($langs{$newVal} and eval "require Image::ExifTool::Lang::$newVal") {
+ my $xlat = "Image::ExifTool::Lang::${newVal}::Translate";
+ no strict 'refs';
+ if (%$xlat) {
+ $$self{CUR_LANG} = \%$xlat;
+ $$options{$param} = $newVal;
+ }
}
} # else don't change Lang
} elsif ($param eq 'Exclude' and defined $newVal) {
@@ -6761,6 +6766,12 @@ sub ProcessJPEG($$)
# extract the Stim information (it is in standard TIFF format)
my $tagTablePtr = GetTagTable('Image::ExifTool::Stim::Main');
$self->ProcessTIFF(\%dirInfo, $tagTablePtr);
+ } elsif ($$segDataPt =~ /^_JPSJPS_/) {
+ $dumpType = 'JPS';
+ $self->OverrideFileType('JPS') if $$self{FILE_TYPE} eq 'JPEG';
+ SetByteOrder('MM');
+ my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::JPS');
+ $self->ProcessDirectory(\%dirInfo, $tagTablePtr);
} elsif ($$self{Make} eq 'DJI') {
$dumpType = 'DJI ThermalData';
# add this data to the combined data if it exists
diff --git a/lib/Image/ExifTool.pod b/lib/Image/ExifTool.pod
index 97ea7e46..28601596 100644
--- a/lib/Image/ExifTool.pod
+++ b/lib/Image/ExifTool.pod
@@ -2284,9 +2284,9 @@ Here is a complete list of groups for each of these families:
=item Family 0 (Information Type):
-AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5,
-APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky,
-EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
+AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4,
+APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu,
+Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC,
ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE,
MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg,
@@ -2306,7 +2306,7 @@ GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
-InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JUMBF, JVC,
+InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC,
Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC,
MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS,
diff --git a/lib/Image/ExifTool/Canon.pm b/lib/Image/ExifTool/Canon.pm
index a9147d09..9fb3278f 100644
--- a/lib/Image/ExifTool/Canon.pm
+++ b/lib/Image/ExifTool/Canon.pm
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
sub ProcessExifInfo($$$);
sub SwapWords($);
-$VERSION = '4.47';
+$VERSION = '4.48';
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -579,19 +579,19 @@ $VERSION = '4.47';
61182.7 => 'Canon RF 15-35mm F2.8L IS USM',
61182.8 => 'Canon RF 24-240mm F4-6.3 IS USM',
61182.9 => 'Canon RF 70-200mm F2.8L IS USM',
- 61182.10 => 'Canon RF 85mm F2 MACRO IS STM',
- 61182.11 => 'Canon RF 600mm F11 IS STM',
- 61182.12 => 'Canon RF 600mm F11 IS STM + RF1.4x',
- 61182.13 => 'Canon RF 600mm F11 IS STM + RF2x',
- 61182.14 => 'Canon RF 800mm F11 IS STM',
- 61182.15 => 'Canon RF 800mm F11 IS STM + RF1.4x',
- 61182.16 => 'Canon RF 800mm F11 IS STM + RF2x',
- 61182.17 => 'Canon RF 24-105mm F4-7.1 IS STM',
- 61182.18 => 'Canon RF 100-500mm F4.5-7.1L IS USM',
- 61182.19 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x',
- 61182.20 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
- 61182.21 => 'Canon RF 70-200mm F4L IS USM', #42
- 61182.22 => 'Canon RF 50mm F1.8 STM', #42
+ '61182.10' => 'Canon RF 85mm F2 MACRO IS STM',
+ '61182.11' => 'Canon RF 600mm F11 IS STM',
+ '61182.12' => 'Canon RF 600mm F11 IS STM + RF1.4x',
+ '61182.13' => 'Canon RF 600mm F11 IS STM + RF2x',
+ '61182.14' => 'Canon RF 800mm F11 IS STM',
+ '61182.15' => 'Canon RF 800mm F11 IS STM + RF1.4x',
+ '61182.16' => 'Canon RF 800mm F11 IS STM + RF2x',
+ '61182.17' => 'Canon RF 24-105mm F4-7.1 IS STM',
+ '61182.18' => 'Canon RF 100-500mm F4.5-7.1L IS USM',
+ '61182.19' => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x',
+ '61182.20' => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
+ '61182.21' => 'Canon RF 70-200mm F4L IS USM', #42
+ '61182.22' => 'Canon RF 50mm F1.8 STM', #42
65535 => 'n/a',
);
diff --git a/lib/Image/ExifTool/Exif.pm b/lib/Image/ExifTool/Exif.pm
index 230b05f4..f45e904a 100644
--- a/lib/Image/ExifTool/Exif.pm
+++ b/lib/Image/ExifTool/Exif.pm
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::MakerNotes;
-$VERSION = '4.34';
+$VERSION = '4.35';
sub ProcessExif($$$);
sub WriteExif($$$);
@@ -2581,7 +2581,7 @@ my %opcodeInfo = (
0xa301 => {
Name => 'SceneType',
Writable => 'undef',
- ValueConvInv => 'chr($val)',
+ ValueConvInv => 'chr($val & 0xff)',
PrintConv => {
1 => 'Directly photographed',
},
@@ -6171,18 +6171,23 @@ sub ProcessExif($$$)
unless ($bad) {
# limit maximum length of data to reformat
# (avoids long delays when processing some corrupted files)
+ my $warned;
if ($count > 100000 and $formatStr !~ /^(undef|string|binary)$/) {
my $tagName = $tagInfo ? $$tagInfo{Name} : sprintf('tag 0x%.4x', $tagID);
# (count of 196608 is typical for ColorMap)
if ($tagName ne 'TransferFunction' or $count != 196608) {
my $minor = $count > 2000000 ? 0 : 2;
- next if $et->Warn("Ignoring $dirName $tagName with excessive count", $minor);
+ if ($et->Warn("Ignoring $dirName $tagName with excessive count", $minor)) {
+ next unless $$et{OPTIONS}{HtmlDump};
+ $warned = 1;
+ }
}
}
if ($count > 500 and $formatStr !~ /^(undef|string|binary)$/ and
- (not $tagInfo or $$tagInfo{LongBinary}) and not $$et{OPTIONS}{IgnoreMinorErrors})
+ (not $tagInfo or $$tagInfo{LongBinary} or $warned) and not $$et{OPTIONS}{IgnoreMinorErrors})
{
- $et->WarnOnce('Not decoding some large array(s). Ignore minor errors to decode', 2);
+ $et->WarnOnce('Not decoding some large array(s). Ignore minor errors to decode', 2) unless $warned;
+ next if $$et{TAGS_FROM_FILE}; # don't generate bogus value when copying tags
$val = "(large array of $count $formatStr values)";
} else {
# convert according to specified format
diff --git a/lib/Image/ExifTool/JPEG.pm b/lib/Image/ExifTool/JPEG.pm
index efa11525..40853ae0 100644
--- a/lib/Image/ExifTool/JPEG.pm
+++ b/lib/Image/ExifTool/JPEG.pm
@@ -11,7 +11,7 @@ use strict;
use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
-$VERSION = '1.30';
+$VERSION = '1.32';
sub ProcessOcad($$$);
sub ProcessJPEG_HDR($$$);
@@ -97,6 +97,10 @@ sub ProcessJPEG_HDR($$$);
Condition => '$$valPt =~ /^Stim\0/',
SubDirectory => { TagTable => 'Image::ExifTool::Stim::Main' },
}, {
+ Name => 'JPS',
+ Condition => '$$valPt =~ /^_JPSJPS_/',
+ SubDirectory => { TagTable => 'Image::ExifTool::JPEG::JPS' },
+ }, {
Name => 'ThermalData', # (written by DJI FLIR models)
Condition => '$$self{Make} eq "DJI"',
Notes => 'DJI raw thermal data',
@@ -287,6 +291,68 @@ sub ProcessJPEG_HDR($$$);
}],
);
+# JPS APP3 segment (ref http://paulbourke.net/stereographics/stereoimage/)
+%Image::ExifTool::JPEG::JPS = (
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
+ GROUPS => { 0 => 'APP3', 1 => 'JPS', 2 => 'Image' },
+ NOTES => 'Tags found in JPEG Stereo (JPS) images.',
+ 0x0a => {
+ Name => 'JPSSeparation',
+ Format => 'int32u', # (just so we can look ahead to MediaType);
+ Notes => 'stereo only',
+ RawConv => q{
+ $$self{MediaType} = $val & 0xff;
+ return undef unless $$self{MediaType} == 1;
+ return(($val >> 24) & 0xff);
+ },
+ },
+ 0x08 => {
+ Name => 'HdrLength',
+ Format => 'int16u',
+ Hidden => 1,
+ RawConv => '$$self{HdrLength} = $val; undef',
+ },
+ 0x0b => {
+ Name => 'JPSFlags',
+ PrintConv => { BITMASK => {
+ 0 => 'Half height',
+ 1 => 'Half width',
+ 2 => 'Left field first',
+ }},
+ },
+ 0x0c => [{
+ Name => 'JPSLayout',
+ Condition => '$$self{MediaType} == 0',
+ Notes => 'mono',
+ PrintConv => {
+ 0 => 'Both Eyes',
+ 1 => 'Left Eye',
+ 2 => 'Right Eye',
+ },
+ },{
+ Name => 'JPSLayout',
+ Condition => '$$self{MediaType} == 1',
+ Notes => 'stereo',
+ PrintConv => {
+ 1 => 'Interleaved',
+ 2 => 'Side By Side',
+ 3 => 'Over Under',
+ 4 => 'Anaglyph',
+ },
+ }],
+ 0x0d => {
+ Name => 'JPSType',
+ Hook => '$varSize += $$self{HdrLength} - 4', # comment starts after header block
+ PrintConv => { 0 => 'Mono', 1 => 'Stereo' },
+ },
+ # 0x0e - in16u comment length (ignored -- assume the remainder is all comment)
+ # (this is offset if we had a 4-byte JPS header block)
+ 0x10 => {
+ Name => 'JPSComment',
+ Format => 'string',
+ },
+);
+
# EPPIM APP6 (Toshiba PrintIM) segment (ref PH, from PDR-M700 samples)
%Image::ExifTool::JPEG::EPPIM = (
GROUPS => { 0 => 'APP6', 1 => 'EPPIM', 2 => 'Image' },
@@ -545,7 +611,7 @@ sub ProcessJPEG_HDR($$$);
},
2 => {
Name => 'ImageFormat',
- ValueConv => 'chr($val)',
+ ValueConv => 'chr($val & 0xff)',
PrintConv => { B => 'IMode B' },
},
3 => {
diff --git a/lib/Image/ExifTool/MIE.pm b/lib/Image/ExifTool/MIE.pm
index 73bfe928..fd19fa5f 100644
--- a/lib/Image/ExifTool/MIE.pm
+++ b/lib/Image/ExifTool/MIE.pm
@@ -14,7 +14,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
-$VERSION = '1.48';
+$VERSION = '1.49';
sub ProcessMIE($$);
sub ProcessMIEGroup($$$);
@@ -1023,6 +1023,7 @@ sub WriteMIEGroup($$$)
# we are writing the new tag now
my ($newVal, $writable, $oldVal, $newFormat, $compress);
my $newTag = shift @editTags;
+ length($newTag) > 255 and $et->Warn('Tag name too long'), next; # (just to be safe)
my $newInfo = $$editDirs{$newTag};
if ($newInfo) {
# create the new subdirectory or rewrite existing non-MIE directory
diff --git a/lib/Image/ExifTool/MRC.pm b/lib/Image/ExifTool/MRC.pm
index 7e184e90..5aa4f11d 100644
--- a/lib/Image/ExifTool/MRC.pm
+++ b/lib/Image/ExifTool/MRC.pm
@@ -285,7 +285,7 @@ sub ProcessMRC($$)
$et->ProcessDirectory(\%dirInfo, $tagTablePtr);
last if ++$i >= $$et{ImageDepth};
unless ($$et{OPTIONS}{ExtractEmbedded}) {
- $et->Warn('Use the ExtractEmbedded option to read metadata for all frames',1);
+ $et->Warn('Use the ExtractEmbedded option to read metadata for all frames',3);
last;
}
$$et{DOC_NUM} = ++$$et{DOC_COUNT};
diff --git a/lib/Image/ExifTool/Nikon.pm b/lib/Image/ExifTool/Nikon.pm
index 834d4890..e441b557 100644
--- a/lib/Image/ExifTool/Nikon.pm
+++ b/lib/Image/ExifTool/Nikon.pm
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
-$VERSION = '3.95';
+$VERSION = '3.96';
sub LensIDConv($$$);
sub ProcessNikonAVI($$$);
@@ -9468,7 +9468,7 @@ sub GetAFPointGrid($$;$)
return undef unless $val =~ /^([A-J])(\d+)$/i;
return (ord(uc($1))-65) * $ncol + $2 - 1;
} else {
- my $row = int(($val + 0.5) / $ncol);
+ my $row = int(($val + 0.5) / $ncol) & 0xff;
my $col = $val - $ncol * $row + 1;
return chr(65+$row) . $col;
}
diff --git a/lib/Image/ExifTool/Panasonic.pm b/lib/Image/ExifTool/Panasonic.pm
index 6ad8619b..4b44ffdd 100644
--- a/lib/Image/ExifTool/Panasonic.pm
+++ b/lib/Image/ExifTool/Panasonic.pm
@@ -1423,6 +1423,7 @@ my %shootingMode = (
Name => 'NoiseReductionStrength',
Writable => 'rational64s',
},
+ # 0xe4 - LensID (ref IB)
0x0e00 => {
Name => 'PrintIM',
Description => 'Print Image Matching',
diff --git a/lib/Image/ExifTool/Pentax.pm b/lib/Image/ExifTool/Pentax.pm
index a18b8a60..4ee0a36f 100644
--- a/lib/Image/ExifTool/Pentax.pm
+++ b/lib/Image/ExifTool/Pentax.pm
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
use Image::ExifTool::HP;
-$VERSION = '3.36';
+$VERSION = '3.37';
sub CryptShutterCount($$);
sub PrintFilter($$$);
@@ -548,6 +548,7 @@ my %pentaxModelID = (
0x13222 => 'K-70', #29 (Ricoh)
0x1322c => 'KP', #29 (Ricoh)
0x13240 => 'K-1 Mark II', # (Ricoh)
+ 0x13254 => 'K-3 Mark III', #IB (Ricoh)
0x13290 => 'WG-70', # (Ricoh)
);
diff --git a/lib/Image/ExifTool/QuickTime.pm b/lib/Image/ExifTool/QuickTime.pm
index f09418ee..e6e9e76e 100644
--- a/lib/Image/ExifTool/QuickTime.pm
+++ b/lib/Image/ExifTool/QuickTime.pm
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
-$VERSION = '2.63';
+$VERSION = '2.64';
sub ProcessMOV($$;$);
sub ProcessKeys($$$);
@@ -6281,6 +6281,10 @@ my %eeBox2 = (
'location.ISO6709' => {
Name => 'GPSCoordinates',
Groups => { 2 => 'Location' },
+ Notes => q{
+ Google Photos may ignore this if the coorinates have more than 5 digits
+ after the decimal
+ },
ValueConv => \&ConvertISO6709,
ValueConvInv => \&ConvInvISO6709,
PrintConv => \&PrintGPSCoordinates,
diff --git a/lib/Image/ExifTool/RIFF.pm b/lib/Image/ExifTool/RIFF.pm
index 3f040f45..39a27f48 100644
--- a/lib/Image/ExifTool/RIFF.pm
+++ b/lib/Image/ExifTool/RIFF.pm
@@ -1080,7 +1080,7 @@ my %code2charset = (
Name => 'TextFormat',
Condition => '$$self{RIFFStreamType} eq "txts"',
Hidden => 1,
- RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text"); undef',
+ RawConv => '$self->Options("ExtractEmbedded") or $self->WarnOnce("Use ExtractEmbedded option to extract timed text",3); undef',
},
],
);
diff --git a/lib/Image/ExifTool/Sony.pm b/lib/Image/ExifTool/Sony.pm
index 9c2baf79..41b16785 100644
--- a/lib/Image/ExifTool/Sony.pm
+++ b/lib/Image/ExifTool/Sony.pm
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::Minolta;
-$VERSION = '3.41';
+$VERSION = '3.42';
sub ProcessSRF($$$);
sub ProcessSR2($$$);
@@ -232,6 +232,7 @@ sub PrintInvLensSpec($;$$);
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
50525 => 'Sigma 24mm F3.5 DG DN | C', #JR (021)
50526 => 'Sigma 28-70mm F2.8 DG DN | C', #JR (021)
+ 50528 => 'Sigma 35mm F1.4 DG DN | A', #IB (021)
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
@@ -260,6 +261,7 @@ sub PrintInvLensSpec($;$$);
51510 => 'Samyang AF 18mm F2.8 or Samyang AF 35mm F1.8', #JR
51510.1 => 'Samyang AF 35mm F1.8', #JR
51512 => 'Samyang AF 75mm F1.8', #IB/JR
+ 51514 => 'Samyang AF 24mm F1.8 FE', #IB
);
# ExposureProgram values (ref PH, mainly decoded from A200)
@@ -1493,7 +1495,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
my ($a,$b,$c,$d) = split ' ', $val;
my @a = $a =~ /../g;
return undef unless @a == 4;
- return Set32u((hex($d)<<22) | ($a[0]<<17) | ($a[1]<<12) | ($a[2]<<6) | $a[3]) . chr($b) . chr($c);
+ return Set32u((hex($d)<<22) | ($a[0]<<17) | ($a[1]<<12) | ($a[2]<<6) | $a[3]) . chr($b & 0xff) . chr($c & 0xff);
},
PrintConv => {
'00000000 0 0 0x0' => 'n/a',
diff --git a/lib/Image/ExifTool/TagLookup.pm b/lib/Image/ExifTool/TagLookup.pm
index d8c400cb..fce79542 100644
--- a/lib/Image/ExifTool/TagLookup.pm
+++ b/lib/Image/ExifTool/TagLookup.pm
@@ -8715,6 +8715,12 @@ my %tagExists = (
'jpegrestartinterval' => 1,
'jpegtables' => 1,
'jplcartoifd' => 1,
+ 'jps' => 1,
+ 'jpscomment' => 1,
+ 'jpsflags' => 1,
+ 'jpslayout' => 1,
+ 'jpsseparation' => 1,
+ 'jpstype' => 1,
'jsondata' => 1,
'jsonmetadata' => 1,
'jumbf' => 1,
diff --git a/lib/Image/ExifTool/TagNames.pod b/lib/Image/ExifTool/TagNames.pod
index a012f776..3dfdc12f 100644
--- a/lib/Image/ExifTool/TagNames.pod
+++ b/lib/Image/ExifTool/TagNames.pod
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
=head1 TAG TABLES
The tables listed below give the names of all tags recognized by ExifTool.
-They contain a total of 24273 tags, with 15738 unique tag names.
+They contain a total of 24279 tags, with 15743 unique tag names.
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -115,6 +115,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
PreviewImage no
'APP3' Meta Kodak Meta
Stim Stim
+ JPS JPEG JPS
ThermalData no
PreviewImage no
'APP4' Scalado Scalado
@@ -174,6 +175,18 @@ images).
------ -------- --------
'Rev' OcadRevision no
+=head3 JPEG JPS Tags
+
+Tags found in JPEG Stereo (JPS) images.
+
+ Index1 Tag Name Writable
+ ------ -------- --------
+ 10 JPSSeparation no
+ 11 JPSFlags no
+ 12 JPSLayout no
+ 13 JPSType no
+ 16 JPSComment no
+
=head3 JPEG EPPIM Tags
APP6 is used in by the Toshiba PDR-M700 to store a TIFF structure containing
diff --git a/lib/Image/ExifTool/WriteIPTC.pl b/lib/Image/ExifTool/WriteIPTC.pl
index 4335b576..1e9db863 100644
--- a/lib/Image/ExifTool/WriteIPTC.pl
+++ b/lib/Image/ExifTool/WriteIPTC.pl
@@ -170,7 +170,7 @@ sub FormatIPTC($$$$$;$)
} else {
my $len = int(($1 || 0) / 8);
if ($len == 1) { # 1 byte
- $$valPtr = chr($$valPtr);
+ $$valPtr = chr($$valPtr & 0xff);
} elsif ($len == 2) { # 2-byte integer
$$valPtr = pack('n', $$valPtr);
} else { # 4-byte integer
diff --git a/lib/Image/ExifTool/WriteQuickTime.pl b/lib/Image/ExifTool/WriteQuickTime.pl
index a325552e..fca98add 100644
--- a/lib/Image/ExifTool/WriteQuickTime.pl
+++ b/lib/Image/ExifTool/WriteQuickTime.pl
@@ -163,6 +163,9 @@ sub ConvInvISO6709($)
# latitude must have 2 digits before the decimal, and longitude 3,
# and all values must start with a "+" or "-", and Google Photos
# requires at least 3 digits after the decimal point
+ # (and as of Apr 2021, Google Photos doesn't accept coordinats
+ # with more than 5 digits after the decimal place:
+ # https://exiftool.org/forum/index.php?topic=11055.msg67171#msg67171 )
my @fmt = ('%s%02d.%s%s','%s%03d.%s%s','%s%d.%s%s');
foreach (@a) {
return undef unless Image::ExifTool::IsFloat($_);
diff --git a/lib/Image/ExifTool/WriteXMP.pl b/lib/Image/ExifTool/WriteXMP.pl
index 23694612..092bdcd3 100644
--- a/lib/Image/ExifTool/WriteXMP.pl
+++ b/lib/Image/ExifTool/WriteXMP.pl
@@ -1469,7 +1469,7 @@ sub WriteXMP($$;$)
$long[-2] .= "$nl$sp<$prop rdf:about='${about}'";
# generate et:toolkit attribute if this is an exiftool RDF/XML output file
if (@ns and $nsCur{$ns[0]} =~ m{^http://ns.exiftool.(?:ca|org)/}) {
- $long[-2] .= "\n$sp${sp}xmlns:et='http://ns.exiftool.ca/1.0/'" .
+ $long[-2] .= "\n$sp${sp}xmlns:et='http://ns.exiftool.org/1.0/'" .
" et:toolkit='Image::ExifTool $Image::ExifTool::VERSION'";
}
$long[-2] .= "\n$sp${sp}xmlns:$_='$nsCur{$_}'" foreach @ns;
diff --git a/lib/Image/ExifTool/XMP.pm b/lib/Image/ExifTool/XMP.pm
index 970151ec..d62dcae3 100644
--- a/lib/Image/ExifTool/XMP.pm
+++ b/lib/Image/ExifTool/XMP.pm
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
use Image::ExifTool::GPS;
require Exporter;
-$VERSION = '3.41';
+$VERSION = '3.42';
@ISA = qw(Exporter);
@EXPORT_OK = qw(EscapeXML UnescapeXML);
@@ -155,7 +155,7 @@ my %xmpNS = (
DICOM => 'http://ns.adobe.com/DICOM/',
'drone-dji'=> 'http://www.dji.com/drone-dji/1.0/',
svg => 'http://www.w3.org/2000/svg',
- et => 'http://ns.exiftool.ca/1.0/',
+ et => 'http://ns.exiftool.org/1.0/',
#
# namespaces defined in XMP2.pl:
#
@@ -195,7 +195,7 @@ my %xmpNS = (
);
# build reverse namespace lookup
-my %uri2ns = ( 'http://ns.exiftool.org/1.0/' => 'et' ); # (allow exiftool.org as well as exiftool.ca)
+my %uri2ns = ( 'http://ns.exiftool.ca/1.0/' => 'et' ); # (allow exiftool.ca as well as exiftool.org)
{
my $ns;
foreach $ns (keys %nsURI) {
diff --git a/perl-Image-ExifTool.spec b/perl-Image-ExifTool.spec
index aefadd01..df5b333b 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: 12.25
+Version: 12.26
Release: 1
License: Artistic/GPL
Group: Development/Libraries/Perl
diff --git a/pp_build_exe.args b/pp_build_exe.args
index ff955f5a..b7b487b8 100644
--- a/pp_build_exe.args
+++ b/pp_build_exe.args
@@ -21,10 +21,10 @@
# 10) Copy zip archive to web servers.
# 11) Update zip file version in link and text of html/index.html.
#------------------------------------------------------------------------------
--T exiftool-12.25
-#--info=FileVersion=12.2.5.0
-#--info=ProductVersion=12.2.5.0
-##"--info=Build Date=2021:04:22 14:33:15-04:00"
+-T exiftool-12.26
+#--info=FileVersion=12.2.6.0
+#--info=ProductVersion=12.2.6.0
+##"--info=Build Date=2021:05:20 20:17:36-04:00"
##"--info=Bundled Perl Version=ActivePerl 5.24.0"
##"--info=LegalCopyright=Copyright (c) 2003-2021, Phil Harvey"
##"--info=ProductName=ExifTool"
diff --git a/t/ExifTool.t b/t/ExifTool.t
index af030ee0..9c9b2406 100644
--- a/t/ExifTool.t
+++ b/t/ExifTool.t
@@ -2,7 +2,7 @@
# After "make install" it should work as "perl t/ExifTool.t".
BEGIN {
- $| = 1; print "1..31\n"; $Image::ExifTool::configFile = '';
+ $| = 1; print "1..32\n"; $Image::ExifTool::configFile = '';
require './t/TestLib.pm'; t::TestLib->import();
}
END {print "not ok 1\n" unless $loaded;}
@@ -343,4 +343,13 @@ my $testnum = 1;
print "ok $testnum\n";
}
+# test 32: Read JPS file
+{
+ ++$testnum;
+ my $exifTool = new Image::ExifTool;
+ my $info = $exifTool->ImageInfo('t/images/ExifTool.jps', 'jps:all');
+ print 'not ' unless check($exifTool, $info, $testname, $testnum);
+ print "ok $testnum\n";
+}
+
# end
diff --git a/t/ExifTool_32.out b/t/ExifTool_32.out
new file mode 100644
index 00000000..8fdf6408
--- /dev/null
+++ b/t/ExifTool_32.out
@@ -0,0 +1,5 @@
+[APP3, JPS, Image] 10 - JPS Separation: 0
+[APP3, JPS, Image] 11 - JPS Flags: Left field first
+[APP3, JPS, Image] 12 - JPS Layout: Over Under
+[APP3, JPS, Image] 13 - JPS Type: Stereo
+[APP3, JPS, Image] 16 - JPS Comment: test comment
diff --git a/t/XMP.t b/t/XMP.t
index 6177744d..40967ad8 100644
--- a/t/XMP.t
+++ b/t/XMP.t
@@ -21,7 +21,7 @@ END {print "not ok 1\n" unless $loaded;}
use vars %Image::ExifTool::UserDefined::myXMPns; # avoid "typo" warning
%Image::ExifTool::UserDefined::myXMPns = (
GROUPS => { 0 => 'XMP', 1 => 'XMP-myXMPns'},
- NAMESPACE => { 'myXMPns' => 'http://ns.exiftool.ca/t/XMP.t' },
+ NAMESPACE => { 'myXMPns' => 'http://ns.exiftool.org/t/XMP.t' },
WRITABLE => 'string',
ATestTag => { List => 'Bag', Resource => 1 },
BTestTag => {
@@ -296,7 +296,7 @@ my $testnum = 1;
unlink $testfile;
my @writeInfo = (
[ 'XMP-x:XMPToolkit' => "What's this?", Protected => 1 ],
- [ 'XMP-rdf:About' => "http://www.exiftool.ca/t/$testname.t#$testnum", Protected => 1 ],
+ [ 'XMP-rdf:About' => "http://www.exiftool.org/t/$testname.t#$testnum", Protected => 1 ],
[ 'XMP:ImageType' => 'Video' ],
[ 'LicenseeImageNotes-en' => 'english notes' ],
[ 'LicenseeImageNotes-de' => 'deutsche anmerkungen' ],
@@ -305,8 +305,8 @@ my $testnum = 1;
[ 'CopyrightStatus' => 'public' ],
[ 'Custom1-en' => 'a' ],
[ 'Custom1-en' => 'b' ],
- [ 'ATestTag' => "http://www.exiftool.ca/t/$testname.t#$testnum-one" ],
- [ 'ATestTag' => "http://www.exiftool.ca/t/$testname.t#$testnum-two" ],
+ [ 'ATestTag' => "http://www.exiftool.org/t/$testname.t#$testnum-one" ],
+ [ 'ATestTag' => "http://www.exiftool.org/t/$testname.t#$testnum-two" ],
);
$exifTool->SetNewValue(@$_) foreach @writeInfo;
my $ok = writeInfo($exifTool, undef, $testfile);
diff --git a/t/XMP_26.out b/t/XMP_26.out
index e474ca86..be36406a 100644
--- a/t/XMP_26.out
+++ b/t/XMP_26.out
@@ -2,18 +2,18 @@
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='What&#39;s this?'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
- <rdf:Description rdf:about='http://www.exiftool.ca/t/XMP.t#26'
- xmlns:et='http://ns.exiftool.ca/1.0/' et:toolkit='Image::ExifTool 9.92'
- xmlns:myXMPns='http://ns.exiftool.ca/t/XMP.t'>
+ <rdf:Description rdf:about='http://www.exiftool.org/t/XMP.t#26'
+ xmlns:et='http://ns.exiftool.org/1.0/' et:toolkit='Image::ExifTool 12.26'
+ xmlns:myXMPns='http://ns.exiftool.org/t/XMP.t'>
<myXMPns:ATestTag>
<rdf:Bag>
- <rdf:li rdf:resource='http://www.exiftool.ca/t/XMP.t#26-one'/>
- <rdf:li rdf:resource='http://www.exiftool.ca/t/XMP.t#26-two'/>
+ <rdf:li rdf:resource='http://www.exiftool.org/t/XMP.t#26-one'/>
+ <rdf:li rdf:resource='http://www.exiftool.org/t/XMP.t#26-two'/>
</rdf:Bag>
</myXMPns:ATestTag>
</rdf:Description>
- <rdf:Description rdf:about='http://www.exiftool.ca/t/XMP.t#26'
+ <rdf:Description rdf:about='http://www.exiftool.org/t/XMP.t#26'
xmlns:plus='http://ns.useplus.org/ldf/xmp/1.0/'>
<plus:CopyrightStatus>http://ns.useplus.org/ldf/vocab/CS-PUB</plus:CopyrightStatus>
<plus:Custom1>
diff --git a/t/images/ExifTool.jps b/t/images/ExifTool.jps
new file mode 100644
index 00000000..dea7cd4c
--- /dev/null
+++ b/t/images/ExifTool.jps
Binary files differ
diff --git a/t/images/XMP.xml b/t/images/XMP.xml
index 9099ccc8..c8466051 100644
--- a/t/images/XMP.xml
+++ b/t/images/XMP.xml
@@ -2,16 +2,16 @@
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
<rdf:Description rdf:about='t/images/Nikon.jpg'
- xmlns:et='http://ns.exiftool.ca/1.0/' et:toolkit='Image::ExifTool 7.62'
- xmlns:ExifTool='http://ns.exiftool.ca/ExifTool/1.0/'
- xmlns:File='http://ns.exiftool.ca/File/1.0/'
- xmlns:IFD0='http://ns.exiftool.ca/EXIF/IFD0/1.0/'
- xmlns:ExifIFD='http://ns.exiftool.ca/EXIF/ExifIFD/1.0/'
- xmlns:Nikon='http://ns.exiftool.ca/MakerNotes/Nikon/1.0/'
- xmlns:InteropIFD='http://ns.exiftool.ca/EXIF/InteropIFD/1.0/'
- xmlns:IFD1='http://ns.exiftool.ca/EXIF/IFD1/1.0/'
- xmlns:EXIF='http://ns.exiftool.ca/EXIF/EXIF/1.0/'
- xmlns:Composite='http://ns.exiftool.ca/Composite/1.0/'>
+ xmlns:et='http://ns.exiftool.org/1.0/' et:toolkit='Image::ExifTool 7.62'
+ xmlns:ExifTool='http://ns.exiftool.org/ExifTool/1.0/'
+ xmlns:File='http://ns.exiftool.org/File/1.0/'
+ xmlns:IFD0='http://ns.exiftool.org/EXIF/IFD0/1.0/'
+ xmlns:ExifIFD='http://ns.exiftool.org/EXIF/ExifIFD/1.0/'
+ xmlns:Nikon='http://ns.exiftool.org/MakerNotes/Nikon/1.0/'
+ xmlns:InteropIFD='http://ns.exiftool.org/EXIF/InteropIFD/1.0/'
+ xmlns:IFD1='http://ns.exiftool.org/EXIF/IFD1/1.0/'
+ xmlns:EXIF='http://ns.exiftool.org/EXIF/EXIF/1.0/'
+ xmlns:Composite='http://ns.exiftool.org/Composite/1.0/'>
<ExifTool:ExifToolVersion et:tagid=''>7.62</ExifTool:ExifToolVersion>
<File:FileName et:tagid=''>Nikon.jpg</File:FileName>
<File:Directory et:tagid=''>t/images</File:Directory>
diff --git a/t/images/XMP5.xmp b/t/images/XMP5.xmp
index 5c4e2d71..95667019 100644
--- a/t/images/XMP5.xmp
+++ b/t/images/XMP5.xmp
@@ -64,7 +64,7 @@
xmlns:Iptc4xmpExt='http://iptc.org/std/Iptc4xmpExt/2008-02-29/'
xmlns:exif='http://ns.adobe.com/exif/1.0/'
xmlns:mwg-rs='http://www.metadataworkinggroup.com/schemas/regions/'
- xmlns:myXMPns='http://ns.exiftool.ca/t/XMP.t'
+ xmlns:myXMPns='http://ns.exiftool.org/t/XMP.t'
xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
xmlns:stArea='http://ns.adobe.com/xmp/sType/Area#'
xmlns:xmpRights='http://ns.adobe.com/xap/1.0/rights/'>
diff --git a/windows_exiftool b/windows_exiftool
index 54e7bc8c..92d9c471 100755
--- a/windows_exiftool
+++ b/windows_exiftool
@@ -10,7 +10,7 @@
use strict;
require 5.004;
-my $version = '12.25';
+my $version = '12.26';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exeDir;
@@ -2218,7 +2218,7 @@ sub GetImageInfo($$)
my $f = $file;
CleanXML(\$f);
print $fp "\n<rdf:Description rdf:about='${f}'";
- print $fp "\n xmlns:et='http://ns.exiftool.ca/1.0/'";
+ print $fp "\n xmlns:et='http://ns.exiftool.org/1.0/'";
print $fp " et:toolkit='Image::ExifTool $Image::ExifTool::VERSION'";
# define namespaces for all tag groups
my (%groups, @groups, $grp0, $grp1);
@@ -2240,7 +2240,7 @@ sub GetImageInfo($$)
unless ($grp eq $grp1 and $grp =~ /^(ExifTool|File|Composite|Unknown)$/) {
$grp .= "/$grp1";
}
- print $fp "\n xmlns:$grp1='http://ns.exiftool.ca/$grp/1.0/'";
+ print $fp "\n xmlns:$grp1='http://ns.exiftool.org/$grp/1.0/'";
}
print $fp '>' if $outFormat < 1; # finish rdf:Description token unless short format
$ind = $outFormat >= 0 ? ' ' : ' ';
@@ -4263,7 +4263,10 @@ sub FilterArgfileLine($)
# escaped by an odd number of backslashes, and escape a single backslash
# if it occurs at the end of the string
$arg =~ s{\\(.)|(["\$\@]|\\$)}{'\\'.($2 || $1)}sge;
- $arg = eval qq{"$arg"}; # un-escape characters in C string
+ # un-escape characters in C string
+ my %esc = ( a => "\a", b => "\b", f => "\f", n => "\n",
+ r => "\r", t => "\t", '"' => '"', '\\' => '\\' );
+ $arg =~ s/\\(.)/$esc{$1}||'\\'.$1/egs;
} else {
$arg =~ s/^\s+//; # remove leading white space
$arg =~ s/[\x0d\x0a]+$//s; # remove trailing newline
@@ -5417,7 +5420,7 @@ OPTIONS
produces output like this:
- -- Generated by ExifTool 12.25 --
+ -- Generated by ExifTool 12.26 --
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