diff --git a/RawSpeed/CameraMetaData.cpp b/RawSpeed/CameraMetaData.cpp index 25aeb4e..d0481b4 100644 --- a/RawSpeed/CameraMetaData.cpp +++ b/RawSpeed/CameraMetaData.cpp @@ -39,7 +39,8 @@ CameraMetaData::CameraMetaData(const char *docname) { for (xml_node camera = cameras.child("Camera"); camera; camera = camera.next_sibling("Camera")) { Camera *cam = new Camera(camera); - addCamera(cam); + + if(!addCamera(cam)) continue; // Create cameras for aliases. for (uint32 i = 0; i < cam->aliases.size(); i++) { @@ -79,13 +80,13 @@ bool CameraMetaData::hasChdkCamera(uint32 filesize) { return chdkCameras.end() != chdkCameras.find(filesize); } -void CameraMetaData::addCamera( Camera* cam ) +bool CameraMetaData::addCamera( Camera* cam ) { string id = string(cam->make).append(cam->model).append(cam->mode); if (cameras.end() != cameras.find(id)) { writeLog(DEBUG_PRIO_WARNING, "CameraMetaData: Duplicate entry found for camera: %s %s, Skipping!\n", cam->make.c_str(), cam->model.c_str()); delete(cam); - return; + return false; } else { cameras[id] = cam; } @@ -100,6 +101,7 @@ void CameraMetaData::addCamera( Camera* cam ) // writeLog(DEBUG_PRIO_WARNING, "CHDK camera: %s %s size:%u\n", cam->make.c_str(), cam->model.c_str(), size); } } + return true; } void CameraMetaData::disableMake( string make ) diff --git a/RawSpeed/CameraMetaData.h b/RawSpeed/CameraMetaData.h index bbbe1a3..eeaeca4 100644 --- a/RawSpeed/CameraMetaData.h +++ b/RawSpeed/CameraMetaData.h @@ -43,7 +43,7 @@ class CameraMetaData void disableMake(string make); void disableCamera(string make, string model); protected: - void addCamera(Camera* cam); + bool addCamera(Camera* cam); }; } // namespace RawSpeed diff --git a/RawSpeed/NefDecoder.cpp b/RawSpeed/NefDecoder.cpp index b11a87d..b299702 100644 --- a/RawSpeed/NefDecoder.cpp +++ b/RawSpeed/NefDecoder.cpp @@ -372,10 +372,7 @@ void NefDecoder::checkSupportInternal(CameraMetaData *meta) { if (meta->hasCamera(make, model, extended_mode)) this->checkCameraSupported(meta, make, model, extended_mode); - else if (meta->hasCamera(make, model, mode)) - this->checkCameraSupported(meta, make, model, mode); - else - this->checkCameraSupported(meta, make, model, ""); + else this->checkCameraSupported(meta, make, model, mode); } string NefDecoder::getMode() { diff --git a/RawSpeed/OrfDecoder.cpp b/RawSpeed/OrfDecoder.cpp index f1b7bdd..4e29f90 100644 --- a/RawSpeed/OrfDecoder.cpp +++ b/RawSpeed/OrfDecoder.cpp @@ -125,7 +125,7 @@ void OrfDecoder::decodeCompressed(ByteStream& s, uint32 w, uint32 h) { for (high = 0; high < 12; high++) if ((b>>(11-high))&1) break; - bittable[i] = min(12,high); + bittable[i] = min(12,high); } left0 = nw0 = left1 = nw1 = 0; diff --git a/RawSpeed/RafDecoder.cpp b/RawSpeed/RafDecoder.cpp index 5cca581..f8ab236 100644 --- a/RawSpeed/RafDecoder.cpp +++ b/RawSpeed/RafDecoder.cpp @@ -215,6 +215,17 @@ void RafDecoder::decodeMetaDataInternal(CameraMetaData *meta) { const CameraSensorInfo *sensor = cam->getSensorInfo(iso); mRaw->blackLevel = sensor->mBlackLevel; + + // at least the (bayer sensor) X100 comes with a tag like this: + if (mRootIFD->hasEntryRecursive(FUJI_RGGBLEVELSBLACK)) + { + TiffEntry *sep_black = mRootIFD->getEntryRecursive(FUJI_RGGBLEVELSBLACK); + if (sep_black->count == 4) + { + for(int k=0;k<4;k++) + mRaw->blackLevelSeparate[k] = sep_black->getInt(k); + } + } mRaw->whitePoint = sensor->mWhiteLevel; mRaw->blackAreas = cam->blackAreas; mRaw->cfa = cam->cfa; diff --git a/RawSpeed/TiffEntry.cpp b/RawSpeed/TiffEntry.cpp index d3483d9..d164070 100644 --- a/RawSpeed/TiffEntry.cpp +++ b/RawSpeed/TiffEntry.cpp @@ -85,7 +85,7 @@ TiffEntry::TiffEntry(TiffTag _tag, TiffDataType _type, uint32 _count, const ucha type = _type; count = _count; data_offset = -1; // Set nonsense value in case someone tries to use it - bytesize = _count << datashifts[_type]; + bytesize = (size_t)_count << (size_t)datashifts[_type]; if (NULL == _data) { own_data = new uchar8[bytesize]; memset(own_data,0,bytesize); diff --git a/RawSpeed/TiffTag.h b/RawSpeed/TiffTag.h index 7dbad0f..2c550cf 100644 --- a/RawSpeed/TiffTag.h +++ b/RawSpeed/TiffTag.h @@ -201,6 +201,7 @@ typedef enum { INTEROPERABILITYIFDPOINTER = 0xA005, SAMSUNG_WB_RGGBLEVELSUNCORRECTED = 0xa021, SAMSUNG_WB_RGGBLEVELSBLACK = 0xa028, + FUJI_RGGBLEVELSBLACK = 0xf00a, FLASHENERGY = 0xA20B, SPATIALFREQUENCYRESPONSE = 0xA20C, FOCALPLANEXRESOLUTION = 0xA20E, diff --git a/data/cameras.xml b/data/cameras.xml index f9820d9..20d67c4 100644 --- a/data/cameras.xml +++ b/data/cameras.xml @@ -352,6 +352,46 @@ + + Canon EOS 80D + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + + + + + + + Canon EOS 80D + + + + + + + + + Canon EOS 80D + + + + + + + Canon EOS 700D @@ -737,8 +777,28 @@ Canon EOS REBEL T3 - - Canon EOS 1200D + + Canon EOS 1200D + + GREEN + BLUE + RED + GREEN + + + + + + + + + + Canon EOS REBEL T5 + Canon EOS Kiss X70 + + + + Canon EOS 1300D GREEN BLUE @@ -746,15 +806,17 @@ GREEN - - + + + + - Canon EOS REBEL T5 - Canon EOS Kiss X70 + Canon EOS REBEL T6 + Canon EOS Kiss X80 @@ -826,6 +888,24 @@ + + Canon EOS M10 + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + Canon EOS-1D @@ -1028,6 +1108,45 @@ + + Canon EOS-1D X Mark II + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + + + + + + Canon EOS-1D X Mark II + + + + + + + + + Canon EOS-1D X Mark II + + + + + + + Canon PowerShot Pro1 @@ -1179,6 +1298,28 @@ + + Canon PowerShot G7 X Mark II + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + + + + + Canon PowerShot G1 X @@ -1286,6 +1427,24 @@ + + Canon PowerShot G9 X + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + Canon PowerShot G15 @@ -1477,6 +1636,9 @@ + + + Canon PowerShot S100 @@ -1570,7 +1732,7 @@ - + Nikon D100 GREEN @@ -1581,7 +1743,32 @@ - + + Nikon D100 + + GREEN + RED + BLUE + GREEN + + + + + + Nikon D1 + + BLUE + GREEN + GREEN + RED + + + + + + + + Nikon D1 BLUE @@ -1595,7 +1782,18 @@ - + + Nikon D1H + + BLUE + GREEN + GREEN + RED + + + + + Nikon D1H BLUE @@ -1606,7 +1804,21 @@ - + + Nikon D1X + + BLUE + GREEN + GREEN + RED + + + + + + + + Nikon D1X BLUE @@ -1620,7 +1832,18 @@ - + + Nikon D200 + + GREEN + RED + BLUE + GREEN + + + + + Nikon D200 GREEN @@ -1631,7 +1854,18 @@ - + + Nikon D2H + + GREEN + BLUE + RED + GREEN + + + + + Nikon D2H GREEN @@ -1642,7 +1876,18 @@ - + + Nikon D2Hs + + GREEN + BLUE + RED + GREEN + + + + + Nikon D2Hs GREEN @@ -1653,7 +1898,7 @@ - + Nikon D2X RED @@ -1664,110 +1909,96 @@ - - Nikon D3 + + Nikon D2X RED GREEN GREEN BLUE - - + + - - Nikon D3S + + Nikon D3 RED GREEN GREEN BLUE - - + + - - Nikon D3X + + Nikon D3 RED GREEN GREEN BLUE - - + + - - Nikon D300 + + Nikon D3 RED GREEN GREEN BLUE - - + + - - Nikon D300S + + Nikon D3 RED GREEN GREEN BLUE - - - - - Nikon D3000 - - GREEN - BLUE - RED - GREEN - - - + + - - Nikon D3200 + + Nikon D3S RED GREEN GREEN BLUE - - + + - - Nikon D3300 + + Nikon D3S RED GREEN GREEN BLUE - - - - - + + - - Nikon D4 + + Nikon D3S RED GREEN GREEN BLUE - - + + - - Nikon D5 + + Nikon D3S RED GREEN @@ -1775,104 +2006,978 @@ BLUE - - - - + - - Nikon Df + + Nikon D3X RED GREEN GREEN BLUE - - - - - + + - - Nikon D5100 + + Nikon D3X RED GREEN GREEN BLUE - + - - Nikon D3100 + + Nikon D3X - GREEN - BLUE - RED - GREEN + RED + GREEN + GREEN + BLUE - - + + - - Nikon D40 + + Nikon D3X - BLUE + RED GREEN GREEN - RED + BLUE + + + + + + Nikon D300 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300S + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300S + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300S + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D300S + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D3300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D4 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D4 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D4 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D4 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon Df + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon Df + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon Df + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon Df + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5100 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5100 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5100 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5100 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D3100 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3100 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3100 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D3100 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D40 + + BLUE + GREEN + GREEN + RED + + + + + + Nikon D40 + + BLUE + GREEN + GREEN + RED + + + + + + Nikon D40X + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D40X + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D50 + + BLUE + GREEN + GREEN + RED + + + + + + Nikon D50 + + BLUE + GREEN + GREEN + RED + + + + + + Nikon D500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D5000 + + GREEN + BLUE + RED + GREEN + + + + + + Nikon D5200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5200 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D5200 + + RED + GREEN + GREEN + BLUE - + + + + + Nikon D5300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5300 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D5500 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon D60 + + GREEN + BLUE + RED + GREEN + + - - Nikon D40X + + Nikon D60 GREEN BLUE RED GREEN - + - - Nikon D50 + + Nikon D600 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D600 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D600 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D600 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D610 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D610 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D610 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D610 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D70 BLUE GREEN GREEN RED - - + + - - Nikon D5000 + + Nikon D70 - GREEN - BLUE - RED - GREEN + BLUE + GREEN + GREEN + RED - - + + + + + Nikon D700 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D700 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon D700 + + RED + GREEN + GREEN + BLUE + + + - - Nikon D5200 + + Nikon D700 RED GREEN GREEN BLUE - - + + - - Nikon D5300 + + Nikon D750 RED GREEN @@ -1880,13 +2985,13 @@ BLUE - + - - Nikon D5300 + + Nikon D750 RED GREEN @@ -1894,13 +2999,13 @@ BLUE - + - - Nikon D5500 + + Nikon D750 RED GREEN @@ -1908,13 +3013,13 @@ BLUE - + - - Nikon D5500 + + Nikon D750 RED GREEN @@ -1922,79 +3027,79 @@ BLUE - + - - Nikon D60 + + Nikon D7000 - GREEN - BLUE - RED - GREEN + RED + GREEN + GREEN + BLUE - - + + - - Nikon D600 + + Nikon D7000 RED GREEN GREEN BLUE - - + + - - Nikon D610 + + Nikon D7000 RED GREEN GREEN BLUE - - + + - - Nikon D70 + + Nikon D7000 - BLUE + RED GREEN GREEN - RED + BLUE - + - - Nikon D700 + + Nikon D7100 RED GREEN GREEN BLUE - - + + - - Nikon D700 + + Nikon D7100 RED GREEN GREEN BLUE - + - - Nikon D750 + + Nikon D7100 RED GREEN @@ -2002,13 +3107,10 @@ BLUE - - - - + - - Nikon D750 + + Nikon D7100 RED GREEN @@ -2016,24 +3118,24 @@ BLUE - - - - + - - Nikon D7000 + + Nikon D7200 RED GREEN GREEN BLUE - - + + + + + - - Nikon D7100 + + Nikon D7200 RED GREEN @@ -2041,9 +3143,12 @@ BLUE - + + + + - + Nikon D7200 RED @@ -2052,12 +3157,12 @@ BLUE - + - + Nikon D7200 RED @@ -2071,7 +3176,18 @@ - + + Nikon D70s + + BLUE + GREEN + GREEN + RED + + + + + Nikon D70s BLUE @@ -2082,7 +3198,18 @@ - + + Nikon D80 + + GREEN + BLUE + RED + GREEN + + + + + Nikon D80 GREEN @@ -2104,6 +3231,17 @@ + + Nikon D800 + + RED + GREEN + GREEN + BLUE + + + + Nikon D800 @@ -2115,7 +3253,18 @@ - + + Nikon D800 + + RED + GREEN + GREEN + BLUE + + + + + Nikon D800 RED @@ -2137,6 +3286,17 @@ + + Nikon D800E + + RED + GREEN + GREEN + BLUE + + + + Nikon D800E @@ -2148,7 +3308,18 @@ - + + Nikon D800E + + RED + GREEN + GREEN + BLUE + + + + + Nikon D800E RED @@ -2271,7 +3442,7 @@ - + Nikon D4S RED @@ -2285,7 +3456,18 @@ - + + Nikon D90 + + GREEN + BLUE + RED + GREEN + + + + + Nikon D90 GREEN @@ -2318,7 +3500,18 @@ - + + Nikon 1 J3 + + RED + GREEN + GREEN + BLUE + + + + + Nikon 1 J3 RED @@ -2329,8 +3522,75 @@ - - Nikon 1 J4 + + Nikon 1 J4 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon 1 J4 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon 1 J5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon 1 J5 + + RED + GREEN + GREEN + BLUE + + + + + + + + + Nikon 1 S1 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon 1 S2 RED GREEN @@ -2343,8 +3603,8 @@ - - Nikon 1 J5 + + Nikon 1 S2 RED GREEN @@ -2352,13 +3612,13 @@ BLUE - + - - Nikon 1 S1 + + Nikon 1 V1 RED GREEN @@ -2368,8 +3628,8 @@ - - Nikon 1 S2 + + Nikon 1 V2 RED GREEN @@ -2377,24 +3637,21 @@ BLUE - - - - + - - Nikon 1 V1 + + Nikon 1 V2 RED GREEN GREEN BLUE - - + + - - Nikon 1 V2 + + Nikon 1 V3 RED GREEN @@ -2402,9 +3659,12 @@ BLUE - + + + + - + Nikon 1 V3 RED @@ -2418,7 +3678,18 @@ - + + Nikon 1 AW1 + + RED + GREEN + GREEN + BLUE + + + + + Nikon 1 AW1 RED @@ -2429,7 +3700,21 @@ - + + Nikon E5400 + + BLUE + GREEN + GREEN + RED + + + + + + + + Nikon E5400 BLUE @@ -2443,7 +3728,21 @@ - + + Nikon E5700 + + FUJI_GREEN + MAGENTA + YELLOW + CYAN + + + + + + + + Nikon E5700 FUJI_GREEN @@ -2457,7 +3756,21 @@ - + + Nikon E8400 + + BLUE + GREEN + GREEN + RED + + + + + + + + Nikon E8400 BLUE @@ -2486,7 +3799,7 @@ - + Nikon Coolpix P340 RED @@ -2497,7 +3810,29 @@ - + + Nikon Coolpix P340 + + RED + GREEN + GREEN + BLUE + + + + + + Nikon Coolpix A + + RED + GREEN + GREEN + BLUE + + + + + Nikon Coolpix A RED @@ -2508,7 +3843,22 @@ - + + Nikon Coolpix P6000 + + RED + GREEN + GREEN + + BLUE + + + + + + + + Nikon Coolpix P6000 RED @@ -2523,7 +3873,24 @@ - + + Nikon Coolpix P7000 + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + Nikon Coolpix P7000 RED @@ -2540,7 +3907,24 @@ - + + Nikon Coolpix P7100 + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + Nikon Coolpix P7100 RED @@ -2587,7 +3971,21 @@ - + + Nikon Coolpix E8800 + + BLUE + GREEN + GREEN + RED + + + + + + + + Nikon Coolpix E8800 BLUE @@ -3144,10 +4542,10 @@ Olympus SP570UZ - GREEN - RED - BLUE - GREEN + BLUE + GREEN + GREEN + RED @@ -4918,8 +6316,30 @@ GREEN RED - - + + + + + Panasonic DMC-FZ50 + + BLUE + GREEN + GREEN + RED + + + + + + Panasonic DMC-FZ50 + + BLUE + GREEN + GREEN + RED + + + Panasonic DMC-FZ8 @@ -4965,6 +6385,28 @@ + + Panasonic DMC-FZ18 + + BLUE + GREEN + GREEN + RED + + + + + + Panasonic DMC-FZ18 + + BLUE + GREEN + GREEN + RED + + + + Panasonic DMC-L1 @@ -5644,6 +7086,17 @@ + + Pentax K-1 + + RED + GREEN + GREEN + BLUE + + + + Pentax K-3 @@ -6209,6 +7662,17 @@ + + Sony DSLR-A380 + + RED + GREEN + GREEN + BLUE + + + + Sony DSLR-A390 @@ -6474,6 +7938,17 @@ + + Sony ILCE-6300 + + RED + GREEN + GREEN + BLUE + + + + Sony ILCE-7 @@ -8932,4 +10407,41 @@ + + GITUP GIT2 + + RED + GREEN + GREEN + BLUE + + + + + + + + + + + GITUP GIT2 + + RED + GREEN + GREEN + BLUE + + + + + + + + + +