Author: post
Date: 2009-12-19 12:29:00 +0100 (Sat, 19 Dec 2009)
New Revision: 174

Modified:
   RawSpeed/DngDecoder.cpp
   RawSpeed/RawSpeed.cpp
   RawSpeed/RawSpeed.vcproj
   RawSpeed/TiffIFD.cpp
   RawSpeed/TiffParser.cpp
   RawSpeed/TiffParser.h
   RawSpeed/rawstudio-plugin-api.cpp
Log:
Leica X1 DNG support.
Fix DNG Endiannes.
Fix endianness propagation.
Rename getDecompressor() to getDecoder().
Catch more exceptions in test framework.

Modified: RawSpeed/DngDecoder.cpp
===================================================================
--- RawSpeed/DngDecoder.cpp     2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/DngDecoder.cpp     2009-12-19 11:29:00 UTC (rev 174)
@@ -187,7 +187,12 @@
           ByteStream in(mFile->getData(slice.offset), slice.count);
           iPoint2D size(width, slice.h);
           iPoint2D pos(0, slice.offsetY);
-          gboolean big_endian = (mRootIFD->endian == big);
+
+          gboolean big_endian = (raw->endian == big);
+          // DNG spec says that if not 8 or 16 bit/sample, always use big 
endian
+          if (bps != 8 && bps != 16)
+            big_endian = true;
+
           readUncompressedRaw(in, size, pos, width*bps / 8, bps, big_endian);
         }
 

Modified: RawSpeed/RawSpeed.cpp
===================================================================
--- RawSpeed/RawSpeed.cpp       2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/RawSpeed.cpp       2009-12-19 11:29:00 UTC (rev 174)
@@ -45,14 +45,19 @@
   FileMap* m = 0;
   try {
 //    wprintf(L"Opening:%s\n",f.Filename());
-    m = f.readFile();
+    try {
+      m = f.readFile();        
+    } catch (FileIOException e) {
+      printf("Could not open image:%s\n", e.what());
+      return;
+    }
     TiffParser t(m);
     t.parseData();
-    d = t.getDecompressor();
+    d = t.getDecoder();
+    try {
+      d->checkSupport(meta);
+      startTime = GetTickCount();
 
-    startTime = GetTickCount();
-    try {
-      
       d->decodeRaw();
       d->decodeMetaData(meta);
       RawImage r = d->mRaw;
@@ -132,7 +137,7 @@
       m2->corrupt(1000);
       TiffParser t(m2);
       t.parseData();
-      d = t.getDecompressor();
+      d = t.getDecoder();
 
       startTime = GetTickCount();
 
@@ -176,7 +181,7 @@
 #endif
   CameraMetaData meta("..\\cameras.xml");  
   //meta.dumpXML();
-/*
+
   OpenFile(FileReader(L"..\\testimg\\Panasonic_FZ35FARI0200.RW2"),&meta);
   OpenFile(FileReader(L"..\\testimg\\Panasonic_FZ35hSLI0200.RW2"),&meta);
   OpenFile(FileReader(L"..\\testimg\\Panasonic_FZ35hVFAWB.RW2"),&meta);
@@ -299,7 +304,13 @@
   OpenFile(FileReader(L"..\\testimg\\Nikon_E5400.nef"),&meta);
   OpenFile(FileReader(L"..\\testimg\\Nikon_E5700.nef"),&meta);
   OpenFile(FileReader(L"..\\testimg\\Nikon_E5700_(sRGB).nef"),&meta);
-*/
+
+OpenFile(FileReader(L"..\\testimg\\pentax_kx_03.pef"),&meta);
+OpenFile(FileReader(L"..\\testimg\\pentax_kx_04.pef"),&meta);
+OpenFile(FileReader(L"..\\testimg\\pentax_kx_10.pef"),&meta);
+OpenFile(FileReader(L"..\\testimg\\pentax_kx_12.pef"),&meta);
+
+
 
OpenFile(FileReader(L"..\\testimg\\Canon_Powershot_SX1IShMULTII1600.CR2"),&meta);
 OpenFile(FileReader(L"..\\testimg\\Canon_Powershot_SX1ISFARI0200.CR2"),&meta);
 
OpenFile(FileReader(L"..\\testimg\\Canon_Powershot_SX1IShMULTII0200.CR2"),&meta);
@@ -310,6 +321,21 @@
 OpenFile(FileReader(L"..\\testimg\\canon_powershot_g11_07.cr2"),&meta);
 OpenFile(FileReader(L"..\\testimg\\canon_powershot_g11_08.cr2"),&meta);
 
+OpenFile(FileReader(L"..\\testimg\\Olympus-EP2hVFAO.ORF"),&meta);
+OpenFile(FileReader(L"..\\testimg\\Olympus-EP2hSLI0200NR0.ORF"),&meta);
+OpenFile(FileReader(L"..\\testimg\\Olympus-EP2hRESM.ORF"),&meta);
+OpenFile(FileReader(L"..\\testimg\\Olympus-EP2FARWTT.ORF"),&meta);
+OpenFile(FileReader(L"..\\testimg\\Olympus-EP2FARI0200.ORF"),&meta);
+
+  OpenFile(FileReader(L"..\\testimg\\Sony_A550hVFAWB.ARW"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\Sony_A550hVFATB.ARW"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\Sony_A550hSLI00200_NR1D.ARW"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\Sony_A550hMULTII00200.ARW"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\Sony_A550FARI0200.ARW"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\canon_powershot_s90_02.cr2"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\canon_powershot_s90_03.cr2"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\canon_powershot_s90_04.cr2"),&meta);
+
   
OpenFile(FileReader(L"..\\testimg\\nikon_d3s_Ycircus_vidrig_102400.NEF"),&meta);
   
OpenFile(FileReader(L"..\\testimg\\nikon_d3s_Ycircus_dogjump3_2500.NEF"),&meta);
   
OpenFile(FileReader(L"..\\testimg\\nikon_d3s_Ycircus_granny_10000.NEF"),&meta);
@@ -504,6 +530,34 @@
   OpenFile(FileReader(L"..\\testimg\\dng\\uncompressed2.dng"),&meta);
   OpenFile(FileReader(L"..\\testimg\\dng\\uncompressed3.dng"),&meta);
 
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Leica-X1-L1090994.DNG"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Leica-X1-L1090229.DNG"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Leica-X1-ISO100-L1090324.DNG"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Leica_M8.dng"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\leica_m82_01.dng"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\leica_m82_07.dng"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\leica_m82_09.dng"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\leica_m82_11.dng"),&meta);
+  OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Leica_M_8.dng"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K200DFARI0100.DNG"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K200DFARI1600.DNG"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI0100_43MM.DNG"),&meta);
+  
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI0200_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI0400_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI0800_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI1600_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI3200_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K20DFARI6400_43MM.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K7FARI0200.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K7FARI6400.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K7hMULTII0200.DNG"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Pentax-K7hVFAO.DNG"),&meta);
+    OpenFile(FileReader(L"..\\testimg\\camera_dngs\\Ricoh_GR2.dng"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\ricoh_gr_digital_iii_01.dng"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\ricoh_gr_digital_iii_07.dng"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\ricoh_gr_digital_iii_09.dng"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\ricoh_gr_digital_iii_10.dng"),&meta);
+    
OpenFile(FileReader(L"..\\testimg\\camera_dngs\\ricoh_gr_digital_iii_14.dng"),&meta);
 
   MessageBox(0,L"Finished", L"Finished",0);
 #ifdef _USE_GFL_

Modified: RawSpeed/RawSpeed.vcproj
===================================================================
--- RawSpeed/RawSpeed.vcproj    2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/RawSpeed.vcproj    2009-12-19 11:29:00 UTC (rev 174)
@@ -127,6 +127,7 @@
                                RuntimeLibrary="0"
                                BufferSecurityCheck="true"
                                EnableEnhancedInstructionSet="1"
+                               FloatingPointModel="2"
                                UsePrecompiledHeader="2"
                                AssemblerOutput="2"
                                WarningLevel="3"
@@ -188,10 +189,6 @@
                        
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
                        >
                        <File
-                               RelativePath=".\CheckSum.cpp"
-                               >
-                       </File>
-                       <File
                                RelativePath=".\FileIOException.cpp"
                                >
                        </File>
@@ -422,10 +419,6 @@
                        
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
                        >
                        <File
-                               RelativePath=".\CheckSum.h"
-                               >
-                       </File>
-                       <File
                                RelativePath=".\FileReader.h"
                                >
                        </File>

Modified: RawSpeed/TiffIFD.cpp
===================================================================
--- RawSpeed/TiffIFD.cpp        2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/TiffIFD.cpp        2009-12-19 11:29:00 UTC (rev 174)
@@ -38,7 +38,7 @@
 TiffIFD::TiffIFD(FileMap* f, guint offset) {
   guint size = f->getSize();
   guint entries;
-  endian = big;
+  endian = little;
   CHECKSIZE(offset);
 
   entries = *(unsigned short*)f->getData(offset);    // Directory entries in 
this IFD

Modified: RawSpeed/TiffParser.cpp
===================================================================
--- RawSpeed/TiffParser.cpp     2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/TiffParser.cpp     2009-12-19 11:29:00 UTC (rev 174)
@@ -86,7 +86,7 @@
   }
 }
 
-RawDecoder* TiffParser::getDecompressor() {
+RawDecoder* TiffParser::getDecoder() {
   vector<TiffIFD*> potentials;
   potentials = mRootIFD->getIFDsWithTag(DNGVERSION);
 

Modified: RawSpeed/TiffParser.h
===================================================================
--- RawSpeed/TiffParser.h       2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/TiffParser.h       2009-12-19 11:29:00 UTC (rev 174)
@@ -43,7 +43,7 @@
   virtual ~TiffParser(void);
 
   virtual void parseData();
-  virtual RawDecoder* getDecompressor();
+  virtual RawDecoder* getDecoder();
   Endianness endian;
   TiffIFD* RootIFD() const { return mRootIFD; }
 protected:

Modified: RawSpeed/rawstudio-plugin-api.cpp
===================================================================
--- RawSpeed/rawstudio-plugin-api.cpp   2009-12-16 10:15:54 UTC (rev 173)
+++ RawSpeed/rawstudio-plugin-api.cpp   2009-12-19 11:29:00 UTC (rev 174)
@@ -76,7 +76,7 @@
 
                TiffParser t(m);
                t.parseData();
-               d = t.getDecompressor();
+               d = t.getDecoder();
 
                try
                {


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

Reply via email to