[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:36:53 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=452e692
The following commit has been merged in the master branch:
commit 452e6924f6d34784e669967cf1ed35054ab18e6a
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Mon Dec 20 16:46:04 2004 +0000
Updated Nikon3 tags. Tried to make the embedded thumbnail available, but that needs a bit more work (makernote can currently not have more than one IFD id).
---
doc/tags-nikon3.xml | 194 +++++++++++++++++++++++++++++++++++++++++++++-------
src/nikonmn.cpp | 137 +++++++++++++++++++++++++++++++------
src/nikonmn.hpp | 36 ++++++----
3 files changed, 310 insertions(+), 57 deletions(-)
diff --git a/doc/tags-nikon3.xml b/doc/tags-nikon3.xml
index 78ba179..3bcebfa 100644
--- a/doc/tags-nikon3.xml
+++ b/doc/tags-nikon3.xml
@@ -4,7 +4,7 @@
<HEADER>
<title>Nikon (format 3) MakerNote Tags defined in Exiv2</title>
<text>
-<p>Tags found in the MakerNote of images taken with newer Nikon cameras, e.g., the E5400, SQ, D2H, D70.</p>
+<p>Tags found in the MakerNote of images taken with newer Nikon cameras, e.g., the E5400, SQ, D2H, D70. Updated according to <a href="http://www.ozhiker.com/electronics/pjmt/jpeg_info/nikon_mn.html#Nikon_Type_3_Tags">Nikon Type 3 Makernote Tags Definition</a> of the PHP JPEG Metadata Toolkit by Evan Hunter and the Nikon makernote implementation of <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/">ExifTool</a> by Phil Harvey.</p>
<p>Click on a column header to sort the table.</p>
</text>
</HEADER>
@@ -23,7 +23,7 @@
<taghex>0x0002</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.ISOSpeed</key>
- <tagdesc>ISO speed setting</tagdesc>
+ <tagdesc>ISO speed used</tagdesc>
</ROW>
<ROW num="3">
<tagname>ColorMode</tagname>
@@ -90,6 +90,14 @@
<tagdesc>White balance bias</tagdesc>
</ROW>
<ROW num="11">
+ <tagname>ColorBalance1</tagname>
+ <tagdec>12</tagdec>
+ <taghex>0x000c</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ColorBalance1</key>
+ <tagdesc>Color balance 1</tagdesc>
+ </ROW>
+ <ROW num="12">
<tagname>ExposureDiff</tagname>
<tagdec>14</tagdec>
<taghex>0x000e</taghex>
@@ -97,7 +105,7 @@
<key>Exif.Nikon3.ExposureDiff</key>
<tagdesc>Exposure difference</tagdesc>
</ROW>
- <ROW num="12">
+ <ROW num="13">
<tagname>ISOSelection</tagname>
<tagdec>15</tagdec>
<taghex>0x000f</taghex>
@@ -105,7 +113,15 @@
<key>Exif.Nikon3.ISOSelection</key>
<tagdesc>ISO selection</tagdesc>
</ROW>
- <ROW num="13">
+ <ROW num="14">
+ <tagname>WhiteBalanceBias</tagname>
+ <tagdec>11</tagdec>
+ <taghex>0x000b</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.WhiteBalanceBias</key>
+ <tagdesc>White balance bias</tagdesc>
+ </ROW>
+ <ROW num="15">
<tagname>ThumbOffset</tagname>
<tagdec>17</tagdec>
<taghex>0x0011</taghex>
@@ -113,15 +129,47 @@
<key>Exif.Nikon3.ThumbOffset</key>
<tagdesc>Thumbnail IFD offset</tagdesc>
</ROW>
- <ROW num="14">
- <tagname>FlashBias</tagname>
+ <ROW num="16">
+ <tagname>FlashComp</tagname>
<tagdec>18</tagdec>
<taghex>0x0012</taghex>
<ifd>Makernote</ifd>
- <key>Exif.Nikon3.FlashBias</key>
- <tagdesc>Flash bias</tagdesc>
+ <key>Exif.Nikon3.FlashComp</key>
+ <tagdesc>Flash compensation setting</tagdesc>
</ROW>
- <ROW num="15">
+ <ROW num="17">
+ <tagname>ISOSetting</tagname>
+ <tagdec>19</tagdec>
+ <taghex>0x0013</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ISOSetting</key>
+ <tagdesc>ISO speed setting</tagdesc>
+ </ROW>
+ <ROW num="18">
+ <tagname>ImageBoundry</tagname>
+ <tagdec>22</tagdec>
+ <taghex>0x0016</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ImageBoundry</key>
+ <tagdesc>Image boundry</tagdesc>
+ </ROW>
+ <ROW num="19">
+ <tagname>FlashBracketComp</tagname>
+ <tagdec>24</tagdec>
+ <taghex>0x0018</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.FlashBracketComp</key>
+ <tagdesc>Flash bracket compensation applied</tagdesc>
+ </ROW>
+ <ROW num="20">
+ <tagname>ExposureBracketComp</tagname>
+ <tagdec>25</tagdec>
+ <taghex>0x0019</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ExposureBracketComp</key>
+ <tagdesc>AE bracket compensation applied</tagdesc>
+ </ROW>
+ <ROW num="21">
<tagname>ImageAdjustment</tagname>
<tagdec>128</tagdec>
<taghex>0x0080</taghex>
@@ -129,15 +177,23 @@
<key>Exif.Nikon3.ImageAdjustment</key>
<tagdesc>Image adjustment setting</tagdesc>
</ROW>
- <ROW num="16">
+ <ROW num="22">
<tagname>ToneComp</tagname>
<tagdec>129</tagdec>
<taghex>0x0081</taghex>
<ifd>Makernote</ifd>
<key>Exif.Nikon3.ToneComp</key>
- <tagdesc>Tone compensation setting</tagdesc>
+ <tagdesc>Tone compensation setting (contrast)</tagdesc>
</ROW>
- <ROW num="17">
+ <ROW num="23">
+ <tagname>AuxiliaryLens</tagname>
+ <tagdec>130</tagdec>
+ <taghex>0x0082</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.AuxiliaryLens</key>
+ <tagdesc>Auxiliary lens (adapter)</tagdesc>
+ </ROW>
+ <ROW num="24">
<tagname>LensType</tagname>
<tagdec>131</tagdec>
<taghex>0x0083</taghex>
@@ -145,7 +201,7 @@
<key>Exif.Nikon3.LensType</key>
<tagdesc>Lens type</tagdesc>
</ROW>
- <ROW num="18">
+ <ROW num="25">
<tagname>Lens</tagname>
<tagdec>132</tagdec>
<taghex>0x0084</taghex>
@@ -153,7 +209,7 @@
<key>Exif.Nikon3.Lens</key>
<tagdesc>Lens</tagdesc>
</ROW>
- <ROW num="19">
+ <ROW num="26">
<tagname>FocusDistance</tagname>
<tagdec>133</tagdec>
<taghex>0x0085</taghex>
@@ -161,7 +217,7 @@
<key>Exif.Nikon3.FocusDistance</key>
<tagdesc>Manual focus distance</tagdesc>
</ROW>
- <ROW num="20">
+ <ROW num="27">
<tagname>DigitalZoom</tagname>
<tagdec>134</tagdec>
<taghex>0x0086</taghex>
@@ -169,7 +225,7 @@
<key>Exif.Nikon3.DigitalZoom</key>
<tagdesc>Digital zoom setting</tagdesc>
</ROW>
- <ROW num="21">
+ <ROW num="28">
<tagname>FlashType</tagname>
<tagdec>135</tagdec>
<taghex>0x0087</taghex>
@@ -177,7 +233,7 @@
<key>Exif.Nikon3.FlashType</key>
<tagdesc>Type of flash used</tagdesc>
</ROW>
- <ROW num="22">
+ <ROW num="29">
<tagname>AFFocusPos</tagname>
<tagdec>136</tagdec>
<taghex>0x0088</taghex>
@@ -185,7 +241,7 @@
<key>Exif.Nikon3.AFFocusPos</key>
<tagdesc>AF focus position</tagdesc>
</ROW>
- <ROW num="23">
+ <ROW num="30">
<tagname>Bracketing</tagname>
<tagdec>137</tagdec>
<taghex>0x0089</taghex>
@@ -193,7 +249,15 @@
<key>Exif.Nikon3.Bracketing</key>
<tagdesc>Bracketing</tagdesc>
</ROW>
- <ROW num="24">
+ <ROW num="31">
+ <tagname>NEFCurve1</tagname>
+ <tagdec>140</tagdec>
+ <taghex>0x008c</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.NEFCurve1</key>
+ <tagdesc>NEF curve 1</tagdesc>
+ </ROW>
+ <ROW num="32">
<tagname>ColorMode</tagname>
<tagdec>141</tagdec>
<taghex>0x008d</taghex>
@@ -201,7 +265,15 @@
<key>Exif.Nikon3.ColorMode</key>
<tagdesc>Color mode</tagdesc>
</ROW>
- <ROW num="25">
+ <ROW num="33">
+ <tagname>SceneMode</tagname>
+ <tagdec>143</tagdec>
+ <taghex>0x008f</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.SceneMode</key>
+ <tagdesc>Scene mode</tagdesc>
+ </ROW>
+ <ROW num="34">
<tagname>LightingType</tagname>
<tagdec>144</tagdec>
<taghex>0x0090</taghex>
@@ -209,15 +281,15 @@
<key>Exif.Nikon3.LightingType</key>
<tagdesc>Lighting type</tagdesc>
</ROW>
- <ROW num="26">
- <tagname>Hue</tagname>
+ <ROW num="35">
+ <tagname>HueAdjustment</tagname>
<tagdec>146</tagdec>
<taghex>0x0092</taghex>
<ifd>Makernote</ifd>
- <key>Exif.Nikon3.Hue</key>
+ <key>Exif.Nikon3.HueAdjustment</key>
<tagdesc>Hue adjustment</tagdesc>
</ROW>
- <ROW num="27">
+ <ROW num="36">
<tagname>Saturation</tagname>
<tagdec>148</tagdec>
<taghex>0x0094</taghex>
@@ -225,7 +297,7 @@
<key>Exif.Nikon3.Saturation</key>
<tagdesc>Saturation adjustment</tagdesc>
</ROW>
- <ROW num="28">
+ <ROW num="37">
<tagname>NoiseReduction</tagname>
<tagdec>149</tagdec>
<taghex>0x0095</taghex>
@@ -233,5 +305,77 @@
<key>Exif.Nikon3.NoiseReduction</key>
<tagdesc>Noise reduction</tagdesc>
</ROW>
+ <ROW num="38">
+ <tagname>NEFCurve2</tagname>
+ <tagdec>150</tagdec>
+ <taghex>0x0096</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.NEFCurve2</key>
+ <tagdesc>NEF curve 2</tagdesc>
+ </ROW>
+ <ROW num="39">
+ <tagname>ColorBalance2</tagname>
+ <tagdec>151</tagdec>
+ <taghex>0x0097</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ColorBalance2</key>
+ <tagdesc>Color balance 2</tagdesc>
+ </ROW>
+ <ROW num="40">
+ <tagname>NEFThumbnailSize</tagname>
+ <tagdec>153</tagdec>
+ <taghex>0x0099</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.NEFThumbnailSize</key>
+ <tagdesc>NEF thumbnail size</tagdesc>
+ </ROW>
+ <ROW num="41">
+ <tagname>SerialNumber</tagname>
+ <tagdec>160</tagdec>
+ <taghex>0x00a0</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.SerialNumber</key>
+ <tagdesc>Camera serial number</tagdesc>
+ </ROW>
+ <ROW num="42">
+ <tagname>ShutterCount</tagname>
+ <tagdec>167</tagdec>
+ <taghex>0x00a7</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ShutterCount</key>
+ <tagdesc>Number of shots taken by camera</tagdesc>
+ </ROW>
+ <ROW num="43">
+ <tagname>ImageOptimization</tagname>
+ <tagdec>169</tagdec>
+ <taghex>0x00a9</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.ImageOptimization</key>
+ <tagdesc>Image optimization</tagdesc>
+ </ROW>
+ <ROW num="44">
+ <tagname>Saturation</tagname>
+ <tagdec>170</tagdec>
+ <taghex>0x00aa</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.Saturation</key>
+ <tagdesc>Saturation</tagdesc>
+ </ROW>
+ <ROW num="45">
+ <tagname>VariProgram</tagname>
+ <tagdec>171</tagdec>
+ <taghex>0x00ab</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.VariProgram</key>
+ <tagdesc>Vari program</tagdesc>
+ </ROW>
+ <ROW num="46">
+ <tagname>PrintIM</tagname>
+ <tagdec>3584</tagdec>
+ <taghex>0x0e00</taghex>
+ <ifd>Makernote</ifd>
+ <key>Exif.Nikon3.PrintIM</key>
+ <tagdesc>Print image matching</tagdesc>
+ </ROW>
</ROWSET>
</TAGLIST>
diff --git a/src/nikonmn.cpp b/src/nikonmn.cpp
index 59d7e02..abdbd06 100644
--- a/src/nikonmn.cpp
+++ b/src/nikonmn.cpp
@@ -369,7 +369,7 @@ namespace Exiv2 {
// Nikon3 MakerNote Tag Info
static const MakerNote::MnTagInfo nikon3MnTagInfo[] = {
MakerNote::MnTagInfo(0x0001, "Version", "Nikon Makernote version"),
- MakerNote::MnTagInfo(0x0002, "ISOSpeed", "ISO speed setting"),
+ MakerNote::MnTagInfo(0x0002, "ISOSpeed", "ISO speed used"),
MakerNote::MnTagInfo(0x0003, "ColorMode", "Color mode"),
MakerNote::MnTagInfo(0x0004, "Quality", "Image quality setting"),
MakerNote::MnTagInfo(0x0005, "WhiteBalance", "White balance"),
@@ -378,12 +378,19 @@ namespace Exiv2 {
MakerNote::MnTagInfo(0x0008, "FlashSetting", "Flash setting"),
MakerNote::MnTagInfo(0x0009, "FlashMode", "Flash mode"),
MakerNote::MnTagInfo(0x000b, "WhiteBalanceBias", "White balance bias"),
+ MakerNote::MnTagInfo(0x000c, "ColorBalance1", "Color balance 1"),
MakerNote::MnTagInfo(0x000e, "ExposureDiff", "Exposure difference"),
MakerNote::MnTagInfo(0x000f, "ISOSelection", "ISO selection"),
+ MakerNote::MnTagInfo(0x000b, "DataDump", "Data dump"),
MakerNote::MnTagInfo(0x0011, "ThumbOffset", "Thumbnail IFD offset"),
- MakerNote::MnTagInfo(0x0012, "FlashBias", "Flash bias"),
+ MakerNote::MnTagInfo(0x0012, "FlashComp", "Flash compensation setting"),
+ MakerNote::MnTagInfo(0x0013, "ISOSetting", "ISO speed setting"),
+ MakerNote::MnTagInfo(0x0016, "ImageBoundry", "Image boundry"),
+ MakerNote::MnTagInfo(0x0018, "FlashBracketComp", "Flash bracket compensation applied"),
+ MakerNote::MnTagInfo(0x0019, "ExposureBracketComp", "AE bracket compensation applied"),
MakerNote::MnTagInfo(0x0080, "ImageAdjustment", "Image adjustment setting"),
- MakerNote::MnTagInfo(0x0081, "ToneComp", "Tone compensation setting"),
+ MakerNote::MnTagInfo(0x0081, "ToneComp", "Tone compensation setting (contrast)"),
+ MakerNote::MnTagInfo(0x0082, "AuxiliaryLens", "Auxiliary lens (adapter)"),
MakerNote::MnTagInfo(0x0083, "LensType", "Lens type"),
MakerNote::MnTagInfo(0x0084, "Lens", "Lens"),
MakerNote::MnTagInfo(0x0085, "FocusDistance", "Manual focus distance"),
@@ -391,11 +398,22 @@ namespace Exiv2 {
MakerNote::MnTagInfo(0x0087, "FlashType", "Type of flash used"),
MakerNote::MnTagInfo(0x0088, "AFFocusPos", "AF focus position"),
MakerNote::MnTagInfo(0x0089, "Bracketing", "Bracketing"),
+ MakerNote::MnTagInfo(0x008c, "NEFCurve1", "NEF curve 1"),
MakerNote::MnTagInfo(0x008d, "ColorMode", "Color mode"),
+ MakerNote::MnTagInfo(0x008f, "SceneMode", "Scene mode"),
MakerNote::MnTagInfo(0x0090, "LightingType", "Lighting type"),
- MakerNote::MnTagInfo(0x0092, "Hue", "Hue adjustment"),
+ MakerNote::MnTagInfo(0x0092, "HueAdjustment", "Hue adjustment"),
MakerNote::MnTagInfo(0x0094, "Saturation", "Saturation adjustment"),
MakerNote::MnTagInfo(0x0095, "NoiseReduction", "Noise reduction"),
+ MakerNote::MnTagInfo(0x0096, "NEFCurve2", "NEF curve 2"),
+ MakerNote::MnTagInfo(0x0097, "ColorBalance2", "Color balance 2"),
+ MakerNote::MnTagInfo(0x0099, "NEFThumbnailSize", "NEF thumbnail size"),
+ MakerNote::MnTagInfo(0x00a0, "SerialNumber", "Camera serial number"),
+ MakerNote::MnTagInfo(0x00a7, "ShutterCount", "Number of shots taken by camera"),
+ MakerNote::MnTagInfo(0x00a9, "ImageOptimization", "Image optimization"),
+ MakerNote::MnTagInfo(0x00aa, "Saturation", "Saturation"),
+ MakerNote::MnTagInfo(0x00ab, "VariProgram", "Vari program"),
+ MakerNote::MnTagInfo(0x0e00, "PrintIM", "Print image matching"),
// End of list marker
MakerNote::MnTagInfo(0xffff, "(UnknownNikon3MnTag)", "Unknown Nikon3MakerNote tag")
};
@@ -411,6 +429,28 @@ namespace Exiv2 {
readHeader(buf, 18, byteOrder_);
}
+ int Nikon3MakerNote::read(const byte* buf,
+ long len,
+ ByteOrder byteOrder,
+ long offset)
+ {
+ int rc = IfdMakerNote::read(buf, len, byteOrder, offset);
+ if (rc) return rc;
+
+ // Todo: Add the tags and thumbnail from the embedded thumbnail IFD
+ // Accessing them is easy, but we need support for more than
+ // one IfdId in makernotes to get it working.
+ Ifd thumbIfd(makerIfdId, 0, false);
+ rc = ifd_.readSubIfd(thumbIfd, buf+10, len-10, byteOrder, 0x0011);
+ if (rc) {
+ std::cerr << "Didn't work :(
";
+ }
+ else {
+ thumbIfd.print(std::cout);
+ }
+ return 0;
+ }
+
int Nikon3MakerNote::readHeader(const byte* buf,
long len,
ByteOrder byteOrder)
@@ -457,9 +497,12 @@ namespace Exiv2 {
{
switch (tag) {
case 0x0002: print0x0002(os, value); break;
- case 0x0083: print0x0083(os, value); break;
+ case 0x0012: print0x0012(os, value); break;
+ case 0x0013: print0x0002(os, value); break; // use 0x0002 print fct
+ case 0x0018: print0x0012(os, value); break; // use 0x0012 print fct
case 0x0084: print0x0084(os, value); break;
case 0x0087: print0x0087(os, value); break;
+ case 0x0088: print0x0088(os, value); break;
case 0x0089: print0x0089(os, value); break;
default:
// All other tags (known or unknown) go here
@@ -481,16 +524,29 @@ namespace Exiv2 {
return os;
}
- std::ostream& Nikon3MakerNote::print0x0083(std::ostream& os,
+ std::ostream& Nikon3MakerNote::print0x0012(std::ostream& os,
const Value& value)
{
- long type = value.toLong();
- switch (type) {
- case 0: os << "AF"; break;
- case 1: os << "Manual"; break;
- case 2: os << "AF-D"; break;
- case 6: os << "AF-D G"; break;
- case 10: os << "AF-D VR"; break;
+ // From the PHP JPEG Metadata Toolkit
+ long fec = value.toLong();
+ switch (fec) {
+ case 0x06: os << "+1.0 EV"; break;
+ case 0x04: os << "+0.7 EV"; break;
+ case 0x03: os << "+0.5 EV"; break;
+ case 0x02: os << "+0.3 EV"; break;
+ case 0x00: os << "0.0 EV"; break;
+ case 0xfe: os << "-0.3 EV"; break;
+ case 0xfd: os << "-0.5 EV"; break;
+ case 0xfc: os << "-0.7 EV"; break;
+ case 0xfa: os << "-1.0 EV"; break;
+ case 0xf8: os << "-1.3 EV"; break;
+ case 0xf7: os << "-1.5 EV"; break;
+ case 0xf6: os << "-1.7 EV"; break;
+ case 0xf4: os << "-2.0 EV"; break;
+ case 0xf2: os << "-2.3 EV"; break;
+ case 0xf1: os << "-2.5 EV"; break;
+ case 0xf0: os << "-2.7 EV"; break;
+ case 0xee: os << "-3.0 EV"; break;
default: os << "(" << value << ")"; break;
}
return os;
@@ -523,11 +579,48 @@ namespace Exiv2 {
std::ostream& Nikon3MakerNote::print0x0087(std::ostream& os,
const Value& value)
{
+ // From Exiftool
long flash = value.toLong();
switch (flash) {
- case 0: os << "None"; break;
- case 7: os << "External"; break;
- case 9: os << "On camera"; break;
+ case 0: os << "Not used"; break;
+ case 8: os << "Fired, commander mode"; break;
+ case 9: os << "Fired, TTL mode"; break;
+ default: os << "(" << value << ")"; break;
+ }
+ return os;
+ }
+
+ std::ostream& Nikon3MakerNote::print0x0088(std::ostream& os,
+ const Value& value)
+ {
+ // Mappings taken from Exiftool
+ long afpos = value.toLong();
+ switch (afpos) {
+ case 0x0000: os << "Center"; break;
+ case 0x0100: os << "Top"; break;
+ case 0x0200: os << "Bottom"; break;
+ case 0x0300: os << "Left"; break;
+ case 0x0400: os << "Right"; break;
+
+ // D70
+ case 0x00001: os << "Single area, center"; break;
+ case 0x10002: os << "Single area, top"; break;
+ case 0x20004: os << "Single area, bottom"; break;
+ case 0x30008: os << "Single area, left"; break;
+ case 0x40010: os << "Single area, right"; break;
+
+ case 0x1000001: os << "Dynamic area, center"; break;
+ case 0x1010002: os << "Dynamic area, top"; break;
+ case 0x1020004: os << "Dynamic area, bottom"; break;
+ case 0x1030008: os << "Dynamic area, left"; break;
+ case 0x1040010: os << "Dynamic area, right"; break;
+
+ case 0x2000001: os << "Closest subject, center"; break;
+ case 0x2010002: os << "Closest subject, top"; break;
+ case 0x2020004: os << "Closest subject, bottom"; break;
+ case 0x2030008: os << "Closest subject, left"; break;
+ case 0x2040010: os << "Closest subject, right"; break;
+
default: os << "(" << value << ")"; break;
}
return os;
@@ -536,12 +629,16 @@ namespace Exiv2 {
std::ostream& Nikon3MakerNote::print0x0089(std::ostream& os,
const Value& value)
{
+ // From Exiftool
long b = value.toLong();
switch (b) {
- case 0: os << "None"; break;
- case 1: os << "None"; break;
- case 17: os << "Exposure"; break;
- case 81: os << "White balance"; break;
+ case 0x00: os << "Single"; break;
+ case 0x01: os << "Continuous"; break;
+ case 0x02: os << "Delay"; break;
+ case 0x03: os << "Remote with delay"; break;
+ case 0x04: os << "Remote"; break;
+ case 0x16: os << "Exposure bracketing"; break;
+ case 0x64: os << "White balance bracketing"; break;
default: os << "(" << value << ")"; break;
}
return os;
diff --git a/src/nikonmn.hpp b/src/nikonmn.hpp
index 0e55c44..0986d23 100644
--- a/src/nikonmn.hpp
+++ b/src/nikonmn.hpp
@@ -20,14 +20,21 @@
*/
/*!
@file nikonmn.hpp
- @brief Nikon MakerNote formats implemented according to the following
- references:<BR>
- Format 1: <a href="http://www.tawbaware.com/990exif.htm">MakerNote
- EXIF Tag of the Nikon 990</a> by Max Lyons.<BR>
- Format 2: "Appendix 2: Makernote of Nikon" of the document
- <a href="http://park2.wakwak.com/%7Etsuruzoh/Computer/Digicams/exif-e.html">
- Exif file format</a> by TsuruZoh Tachibanaya.<BR>
- Format 3: "EXIFutils Field Reference Guide".
+ @brief Nikon MakerNote formats.
+
+ The Nikon MakerNote formats are implemented according to the following references<BR>
+ Format 1:
+ <ul><li><a href="http://www.tawbaware.com/990exif.htm">MakerNote EXIF Tag of the Nikon 990</a> by Max Lyons</li></ul>
+ Format 2:
+ <ul><li>"Appendix 2: Makernote of Nikon" of the document
+ <a href="http://park2.wakwak.com/%7Etsuruzoh/Computer/Digicams/exif-e.html">
+ Exif file format</a> by TsuruZoh Tachibanaya</li></ul>
+ Format 3:
+ <ul><li>"EXIFutils Field Reference Guide"</li>
+ <li><a href="http://www.ozhiker.com/electronics/pjmt/jpeg_info/nikon_mn.html#Nikon_Type_3_Tags">Nikon Type 3 Makernote Tags Definition</a>
+ of the PHP JPEG Metadata Toolkit by Evan Hunter</li>
+ <li>Nikon specification of <a href="http://www.sno.phy.queensu.ca/~phil/exiftool/">ExifTool</a> by Phil Harvey</li></ul>
+
@version $Rev$
@author Andreas Huggel (ahu)
<a href="mailto:ahuggel at gmx.net">ahuggel at gmx.net</a>
@@ -158,7 +165,6 @@ namespace Exiv2 {
demand.
*/
static const RegisterMakerNote register_;
-
//! The item name (second part of the key) used for makernote tags
std::string ifdItem_;
@@ -269,7 +275,11 @@ namespace Exiv2 {
//@}
//! @name Manipulators
- //@{
+ //@{
+ int read(const byte* buf,
+ long len,
+ ByteOrder byteOrder,
+ long offset);
int readHeader(const byte* buf,
long len,
ByteOrder byteOrder);
@@ -290,12 +300,14 @@ namespace Exiv2 {
//@{
//! Print ISO setting
static std::ostream& print0x0002(std::ostream& os, const Value& value);
- //! Print lens type
- static std::ostream& print0x0083(std::ostream& os, const Value& value);
+ //! Print flash compensation
+ static std::ostream& print0x0012(std::ostream& os, const Value& value);
//! Print lens information
static std::ostream& print0x0084(std::ostream& os, const Value& value);
//! Print flash used information
static std::ostream& print0x0087(std::ostream& os, const Value& value);
+ //! Print AF point
+ static std::ostream& print0x0088(std::ostream& os, const Value& value);
//! Print bracketing information
static std::ostream& print0x0089(std::ostream& os, const Value& value);
//@}
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list