<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent changes to bugs</title><link href="https://sourceforge.net/p/picturemetadata/bugs/" rel="alternate"/><link href="https://sourceforge.net/p/picturemetadata/bugs/feed.atom" rel="self"/><id>https://sourceforge.net/p/picturemetadata/bugs/</id><updated>2004-02-02T00:52:38Z</updated><subtitle>Recent changes to bugs</subtitle><entry><title>CaptureConditions.FNumber wrong case</title><link href="https://sourceforge.net/p/picturemetadata/bugs/48/" rel="alternate"/><published>2004-02-02T00:52:38Z</published><updated>2004-02-02T00:52:38Z</updated><author><name>Tom Franz</name><uri>https://sourceforge.net/u/tfranz/</uri></author><id>https://sourceforge.netdd2cb1b63717162210c771cdb4f86d107298c0d8</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;FNumber is listed as CaptureConditions.FNumber in &lt;br /&gt;
PmtMetadataKeysForExif.pdf, but &lt;br /&gt;
CaptureConditions.Fnumber in the souce.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;If you try to get CaptureConditions.FNumber, the call &lt;br /&gt;
fails.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>PMT Type Table Incorrect</title><link href="https://sourceforge.net/p/picturemetadata/bugs/47/" rel="alternate"/><published>2002-12-17T17:23:43Z</published><updated>2002-12-17T17:23:43Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.net0869d86e0c127687eea7f209b737b64a9653b6d3</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;The PMT Type Table, which is part of the PmtMetadataKeysForExif and PmtMetadataKeysForTiff &lt;br /&gt;
documents has two incorrect entries.  Particularly, the entries 5 and 12 are incorrect.&lt;/p&gt;
&lt;p&gt;For entry 5, there are 2 keys that must have changes made to their types: CaptureDevice.FID and &lt;br /&gt;
SceneContent.GroupCaption.UserSelectGroupTitle.  For entry 12, there are 2 keys that must have &lt;br /&gt;
changes made to their types: CaptureDevice.CFAPattern and ImageContainer.TiffepVersion.  The exact &lt;br /&gt;
changes to the types needs to be investigated.&lt;/p&gt;
&lt;p&gt;Entries 5 and 12 in the PMT Type Table needs to be removed, and the PmtMetadataKeysForExif and &lt;br /&gt;
PmtMetadataKeysForTiff documents need to be updated to reflect the changes in the PMT Type Table.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>APP3 Invalid</title><link href="https://sourceforge.net/p/picturemetadata/bugs/46/" rel="alternate"/><published>2002-12-13T18:31:36Z</published><updated>2002-12-13T18:31:36Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.net66e916052453caa1d1460a918152ab7a29afe0ad</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In the 103h release, the exif_copy.jpg file has an invalid APP3, according to Exif Verifier.&lt;/p&gt;
&lt;p&gt;Rob and I looked into this, and discovered that two tags are incorrect in the translation table.&lt;br /&gt;
ImageContainer.SourceImageFileName should be changed from tag 201 to 50201.&lt;br /&gt;
ImageContainer.SourceImageVolumeName should be changed from tag 202 to 50202.&lt;/p&gt;
&lt;p&gt;Making this change will hopefully clear up the corrupt APP3.  Try it and see.  If APP3 is still corrupt, &lt;br /&gt;
resolve any other issues.&lt;/p&gt;
&lt;p&gt;Also make sure this change happens in the MAIN branch.&lt;/p&gt;
&lt;p&gt;Created by DKR on 12/13/03&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Factory Fix for MacIntosh Build</title><link href="https://sourceforge.net/p/picturemetadata/bugs/45/" rel="alternate"/><published>2002-11-04T15:11:21Z</published><updated>2002-11-04T15:11:21Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.net8d41589786f3f8c47ab538de5109af1a96707ed0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Change the factory from using EK_PROVIDE and EK_REQUIRE to initialization in a way that works ok &lt;br /&gt;
on the MacIntosh build.  Even though it appears that CodeWarrior is acting flakey with provide and &lt;br /&gt;
require, a work around needs to be implemented, since we're getting an empty Translator factory in the &lt;br /&gt;
current test programs.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>.NET Build Change</title><link href="https://sourceforge.net/p/picturemetadata/bugs/44/" rel="alternate"/><published>2002-11-04T15:06:44Z</published><updated>2002-11-04T15:06:44Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.net35bcc9704ad14ee33e0ac6b560f2555974566e04</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In 103ebugfixes branch, change the PmtMetadataT.h file to allow for correct .NET DLL builds.  This &lt;br /&gt;
means simply ensuring that the keyword 'inline' is used on each templated method.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Throw Error On TIFF Open</title><link href="https://sourceforge.net/p/picturemetadata/bugs/43/" rel="alternate"/><published>2002-11-04T15:02:06Z</published><updated>2002-11-04T15:02:06Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.netafed2b58a459ebab55a3eed9ea770e1d74606a16</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In the 103ebugfixes branch, throw an error if the TIFF Accessor is attempted to be opened in read/write &lt;br /&gt;
mode, since that mode is not currently supported.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Key Fixes from Documentation Findings</title><link href="https://sourceforge.net/p/picturemetadata/bugs/42/" rel="alternate"/><published>2002-11-04T14:57:57Z</published><updated>2002-11-04T14:57:57Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.netb469e92a62429b2926803ab219004b692f70e7d2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;In the 103ebugfixes branch, make the following changes in PMT's Schema and Translation Table.  These &lt;br /&gt;
findings are the result of Kathy's documentation work, in creating the new documentation for PMT's keys:&lt;/p&gt;
&lt;p&gt;Updated keys in Schema file PmtDefaultDefinitions.xsd&lt;br /&gt;
This also affects the PmtDefaultDefinitions.h, as expected.&lt;br /&gt;
-------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;SubjectArea changed from pmt_vuint32 to pmt_vuint16&lt;br /&gt;
ImageSource changed from pmt_vuint8 to usignedByte&lt;br /&gt;
ImageSourceEK changed from unsignedByte to unsignedShort&lt;br /&gt;
ReferenceBlackWhite changed from pmt_vuint8 to pmt_vfloat&lt;br /&gt;
SoundType changed from byte to unsignedShort&lt;br /&gt;
StripByteCounts changed from unsignedInt to pmt_vuint32&lt;br /&gt;
StripOffsets changed from unsignedInt to pmt_vuint32&lt;br /&gt;
RowsPerStrip changed form unsignedShort to unsignedInt&lt;br /&gt;
StripByteCounts changed from unsignedInt to pmt_vuint32&lt;br /&gt;
StripOffsets changed from unsignedInt to pmt_vuint32&lt;br /&gt;
SubjectLocation changed from pmt_vuint32 to pmt_vuint16&lt;/p&gt;
&lt;p&gt;Changes to PmtTranslationTbl.h&lt;br /&gt;
------------------------------------------------&lt;br /&gt;
CaptureConditions.ImageNumber TIFF Translator changed from builtin2ushort to builtin2ulong&lt;br /&gt;
CaptureConditions.ShutterSpeed TIFF (both entries) Type changed from rational to urational&lt;br /&gt;
CaptureConditions.SubjectDistance TIFF (both entries) Type changed from urational to rational&lt;br /&gt;
&amp;amp;lt;ARRAYSIZE&amp;amp;gt; entries removed&lt;br /&gt;
ImageContainer.Thumbnail.Height EXIF Type changed from ushort to ulong and Translator changed from &lt;br /&gt;
builtin2ushort to builtin2ulong.&lt;br /&gt;
ImageContainer.Thumbnail.RowsPerStrip EXIF Type changed from ushort to ulong and Translator &lt;br /&gt;
changed from builtin2ushort to builtin2ulong.&lt;br /&gt;
ImageContainer.Thumbnail.StripbyteCounts EXIF Type changed from ushort to unlong and Translator &lt;br /&gt;
changed from builtin2ushort to builtin2ulong.&lt;br /&gt;
ImageContainer.Thumbnail.Width EXIF Type changed from ushort to ulong and Translator changed from &lt;br /&gt;
builtin2ushort to builtin2ulong.&lt;br /&gt;
SceneContent.GPS.VersionID EXIF Type changed from undefined to ushort and Translator changed from &lt;br /&gt;
builtin2undefined to builtin2ushort &amp;amp;amp; TIFF Type changed from byte to ubyte and Translator changed from &lt;br /&gt;
builtin2char to builtin2uchar.&lt;br /&gt;
SceneContent.GroupCaption.UserSelectGroupTitle EXIF Type changed from undefined to ascii and &lt;br /&gt;
Translator changed from builtin2undefined to builtin2ascii.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>vectors of ubyte and byte</title><link href="https://sourceforge.net/p/picturemetadata/bugs/41/" rel="alternate"/><published>2002-09-24T16:00:50Z</published><updated>2002-09-24T16:00:50Z</updated><author><name>Ricardo Rosario</name><uri>https://sourceforge.net/u/rlr/</uri></author><id>https://sourceforge.net4f63331db020a4ed963365251311a2d5189b670c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;KIES Toolkits is not correctly handling these data &lt;br /&gt;
types. Returns the first value in the vector correctly &lt;br /&gt;
but garbage values in the rest.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>SHORT or LONG Types</title><link href="https://sourceforge.net/p/picturemetadata/bugs/40/" rel="alternate"/><published>2002-09-18T20:44:31Z</published><updated>2002-09-18T20:44:31Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.net7464f382da8247e5f5bdf128f0b3f0b060064e8b</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;There are certain keys that can be of type SHORT or LONG in Exif.&lt;/p&gt;
&lt;p&gt;Our code currently does not handle the case when an Exif file returns such a key stored as type SHORT.&lt;/p&gt;
&lt;p&gt;An example key that's like this is ImageContainer.Thumbnail.Width.  The file KodakDC260.jpg stores this &lt;br /&gt;
key as a SHORT and exhibits the ill-behavior by returning an invalid value.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Exif Accessor Read-Only Mode Not Working</title><link href="https://sourceforge.net/p/picturemetadata/bugs/39/" rel="alternate"/><published>2002-09-13T17:54:15Z</published><updated>2002-09-13T17:54:15Z</updated><author><name>Daniel Rupe</name><uri>https://sourceforge.net/u/rupe/</uri></author><id>https://sourceforge.netae5351d94012dcf22d7c2be13262a1f2b45d081e</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;There are two parts to this bug, both having to do with PMT_READONLY mode not working properly in &lt;br /&gt;
PMT.  The two parts to this bug are listed next to &amp;amp;quot;1.)&amp;amp;quot; and &amp;amp;quot;2.)&amp;amp;quot; below.&lt;/p&gt;
&lt;p&gt;1.)  If an Exif Accessor is opened in PMT_READONLY mode (the default), no errors are thrown (even if &lt;br /&gt;
throwErrors() = true; is called) when an attempt to call writeMetadata(...) is made.  It is true, that the file &lt;br /&gt;
on disk is not modified, but an error of some type should be thrown in such cases.&lt;/p&gt;
&lt;p&gt;This can be illustrated by copying the following code into the AccessorTest test program.  Notice the &lt;br /&gt;
code below next to the three exclamation (!!!) points.&lt;/p&gt;
&lt;p&gt;#include &amp;amp;quot;PmtDefinitionInterpreter.h&amp;amp;quot;&lt;br /&gt;
#include &amp;amp;quot;PmtAccessor.h&amp;amp;quot;&lt;br /&gt;
#include &amp;amp;quot;PmtMisc.h&amp;amp;quot;&lt;br /&gt;
// Make sure the implementations are linked and&lt;br /&gt;
// loaded into the Accessor factory.&lt;br /&gt;
#if defined(HAVE_KIESEXIF) || defined(HAVE_OPENEXIF)&lt;br /&gt;
PMT_REQUIRE(PmtExifAccessor)&lt;br /&gt;
#endif&lt;/p&gt;
&lt;p&gt;int main()&lt;br /&gt;
{&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
string inputImageFile = &amp;amp;quot;Kodak_DC220.jpg&amp;amp;quot;;&lt;br /&gt;
string outputImageFile = &amp;amp;quot;test2.jpg&amp;amp;quot;;&lt;/p&gt;
&lt;p&gt;// Create the Logical Defn Interpreter&lt;br /&gt;
// and load the default metadata defns.&lt;br /&gt;
PmtLogicalDefinitionInterpreter interpreter;&lt;br /&gt;
interpreter.load();&lt;/p&gt;
&lt;p&gt;PmtCopyFile(inputImageFile.c_str(), outputImageFile.c_str(), true);&lt;/p&gt;
&lt;p&gt;PmtAccessorPtr acc = PmtAccessor::create(PMT_FORMAT_EXIF);&lt;br /&gt;
PmtMetadataPtr mdRoot = PmtMetadata::create();&lt;br /&gt;
PmtMetadataPtr md;&lt;/p&gt;
&lt;p&gt;acc-&amp;amp;gt;throwErrors() = true;&lt;/p&gt;
&lt;p&gt;md = mdRoot-&amp;amp;gt;getMetadatum(&amp;amp;quot;CaptureConditions.Aperture&amp;amp;quot;);&lt;/p&gt;
&lt;p&gt;// !!! This is where if PMT_READWRITE is not specified, we would&lt;br /&gt;
// expect to get an error (but don't)!&lt;br /&gt;
acc-&amp;amp;gt;open(outputImageFile.c_str());&lt;br /&gt;
//acc-&amp;amp;gt;open(outputImageFile.c_str(), PMT_READWRITE);&lt;/p&gt;
&lt;p&gt;acc-&amp;amp;gt;readMetadata(md);&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; &amp;amp;quot;Value before write should be 4.5&amp;amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
md-&amp;amp;gt;show();&lt;/p&gt;
&lt;p&gt;md-&amp;amp;gt;setValueStr(EK_L(&amp;amp;quot;2.8&amp;amp;quot;));&lt;br /&gt;
acc-&amp;amp;gt;writeMetadata(md);&lt;/p&gt;
&lt;p&gt;acc-&amp;amp;gt;close();&lt;br /&gt;
acc-&amp;amp;gt;open(outputImageFile.c_str());&lt;br /&gt;
mdRoot-&amp;amp;gt;deleteMetadata(&amp;amp;quot;CaptureConditions.Aperture&amp;amp;quot;);&lt;br /&gt;
acc-&amp;amp;gt;readMetadata(md);&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; &amp;amp;quot;Value after write should be 2.8&amp;amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
md-&amp;amp;gt;show();&lt;br /&gt;
}&lt;br /&gt;
catch (PmtError&amp;amp;amp; e)&lt;br /&gt;
{&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; e &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
exit(1);&lt;br /&gt;
}&lt;br /&gt;
catch (...)&lt;br /&gt;
{&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; &amp;amp;quot;**** Some Exception caught.&amp;amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;return 0;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;2.)  If the file is not closed, after a writeMetadata(...) call, a subsequent call to readMetadata(...) returns &lt;br /&gt;
the incorrect value.  It acts as if the writeMetadata(...) was successfull.  This is incorrect because a.) the &lt;br /&gt;
file does not really have the value returned from readMetadata(...),  and  b.) the value returned is probably &lt;br /&gt;
cached in the Kies toolkits memory.&lt;/p&gt;
&lt;p&gt;See the following code below, noting the three exclamation points (!!!)...&lt;/p&gt;
&lt;p&gt;#include &amp;amp;quot;PmtDefinitionInterpreter.h&amp;amp;quot;&lt;br /&gt;
#include &amp;amp;quot;PmtAccessor.h&amp;amp;quot;&lt;br /&gt;
#include &amp;amp;quot;PmtMisc.h&amp;amp;quot;&lt;br /&gt;
// Make sure the implementations are linked and&lt;br /&gt;
// loaded into the Accessor factory.&lt;br /&gt;
#if defined(HAVE_KIESEXIF) || defined(HAVE_OPENEXIF)&lt;br /&gt;
PMT_REQUIRE(PmtExifAccessor)&lt;br /&gt;
#endif&lt;/p&gt;
&lt;p&gt;int main()&lt;br /&gt;
{&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
string inputImageFile = &amp;amp;quot;Kodak_DC220.jpg&amp;amp;quot;;&lt;br /&gt;
string outputImageFile = &amp;amp;quot;test2.jpg&amp;amp;quot;;&lt;/p&gt;
&lt;p&gt;// Create the Logical Defn Interpreter&lt;br /&gt;
// and load the default metadata defns.&lt;br /&gt;
PmtLogicalDefinitionInterpreter interpreter;&lt;br /&gt;
interpreter.load();&lt;/p&gt;
&lt;p&gt;PmtCopyFile(inputImageFile.c_str(), outputImageFile.c_str(), true);&lt;/p&gt;
&lt;p&gt;PmtAccessorPtr acc = PmtAccessor::create(PMT_FORMAT_EXIF);&lt;br /&gt;
PmtMetadataPtr mdRoot = PmtMetadata::create();&lt;br /&gt;
PmtMetadataPtr md;&lt;/p&gt;
&lt;p&gt;acc-&amp;amp;gt;throwErrors() = true;&lt;/p&gt;
&lt;p&gt;md = mdRoot-&amp;amp;gt;getMetadatum(&amp;amp;quot;CaptureConditions.Aperture&amp;amp;quot;);&lt;/p&gt;
&lt;p&gt;acc-&amp;amp;gt;open(outputImageFile.c_str());&lt;br /&gt;
md-&amp;amp;gt;setValueStr(EK_L(&amp;amp;quot;2.8&amp;amp;quot;));&lt;br /&gt;
acc-&amp;amp;gt;writeMetadata(md);&lt;/p&gt;
&lt;p&gt;mdRoot-&amp;amp;gt;deleteMetadata(&amp;amp;quot;CaptureConditions.Aperture&amp;amp;quot;);&lt;br /&gt;
acc-&amp;amp;gt;readMetadata(md);&lt;/p&gt;
&lt;p&gt;//!!! This value should NOT be 2.8, since modification of the file&lt;br /&gt;
// will not happen on disk.  The returned value of 2.8 is only&lt;br /&gt;
// laying around in the memory of the Kies toolkit.&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; &amp;amp;quot;Value after write should NOT be 2.8&amp;amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
md-&amp;amp;gt;show();&lt;br /&gt;
}&lt;br /&gt;
catch (PmtError&amp;amp;amp; e)&lt;br /&gt;
{&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; e &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
exit(1);&lt;br /&gt;
}&lt;br /&gt;
catch (...)&lt;br /&gt;
{&lt;br /&gt;
cout &amp;amp;lt;&amp;amp;lt; &amp;amp;quot;**** Some Exception caught.&amp;amp;quot; &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;return 0;&lt;br /&gt;
}&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>