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