Author: post
Date: 2010-12-12 18:38:03 +0100 (Sun, 12 Dec 2010)
New Revision: 313

Modified:
   RawSpeed/PefDecoder.cpp
Log:
Seems like Pentax did some changes to their raw format in their 1.01 firmware 
update, so black level has changed. Add detection for old format and adjust for 
it.

Modified: RawSpeed/PefDecoder.cpp
===================================================================
--- RawSpeed/PefDecoder.cpp     2010-12-04 15:52:26 UTC (rev 312)
+++ RawSpeed/PefDecoder.cpp     2010-12-12 17:38:03 UTC (rev 313)
@@ -26,7 +26,7 @@
 
 PefDecoder::PefDecoder(TiffIFD *rootIFD, FileMap* file) :
     RawDecoder(file), mRootIFD(rootIFD) {
-      decoderVersion = 1;
+      decoderVersion = 2;
 }
 
 PefDecoder::~PefDecoder(void) {
@@ -96,24 +96,24 @@
   if (data.empty())
     ThrowRDE("ARW Meta Decoder: Model name found");
 
-  string make = data[0]->getEntry(MAKE)->getString();
-  string model = data[0]->getEntry(MODEL)->getString();
+  TiffIFD* raw = data[0];
 
+  string make = raw->getEntry(MAKE)->getString();
+  string model = raw->getEntry(MODEL)->getString();
+
   setMetaData(meta, make, model, "");
 
-  /*  vector<TiffIFD*> data = mRootIFD->getIFDsWithTag(MODEL);
+  /* It appears that RAW files from K-5 firmware 1.01 and onwards doesn't 
compensate for blacklevel */
+  if (raw->hasEntry(MODEL) && raw->hasEntry(SOFTWARE)) {
+    string model = raw->getEntry(MODEL)->getString();
+    string software = raw->getEntry(SOFTWARE)->getString();
+    TrimSpaces(model);
+    TrimSpaces(software);
 
-    if (data.empty())
-      ThrowRDE("PEF Decoder: Model name found");
-
-    string model(data[0]->getEntry(MODEL)->getString());
-    //printf("Model:\"%s\"\n",model.c_str());
-
-    if (!model.compare("PENTAX K20D        "))
-    {
-      mRaw->cfa.setCFA(CFA_BLUE, CFA_GREEN, CFA_GREEN2, CFA_RED);
+    if (model.compare("PENTAX K-5") == 0 && software.compare("K-5 Ver 1.00") 
== 0 ) {
+      mRaw->blackLevel = 0;
     }
-  */
+  }
 }
 
 } // namespace RawSpeed


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to