Skip to content
This repository was archived by the owner on Jul 22, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
99409a0
Fix for gcc6 compilation
hanatos May 15, 2016
e18afa4
Another try to get the fuji black levels right
hanatos May 16, 2016
4bb6b9b
Added Canon 80D support
dabbill May 26, 2016
8e4db5f
Add Sony a380 support
schenlap Jul 25, 2016
4451f1d
Add SONY ILCE-6300 support
schenlap Jul 25, 2016
3df1eac
Add 16:9 and 3:2 mode to Panasonic DMC-FZ18
schenlap Jul 28, 2016
8afe891
Add basic CANON PowerShot G9 X support
schenlap Jul 31, 2016
12d89ff
Add CANON EOS M10 support
schenlap Jul 31, 2016
3c5e396
Canon EOS 1300D - basic support.
LebedevRI Jul 28, 2016
e6ccc03
Canon EOS-1D X Mark II: basic support.
LebedevRI Aug 4, 2016
d35e7b8
Canon PowerShot S95: Add white balance hint
schenlap Aug 7, 2016
0fa4f08
TiffEntry::TiffEntry(): avoid unintentional integer overflow
LebedevRI Aug 7, 2016
d14d67e
Nikon D500 - basic support (only 12bit / 14bit compressed raws!)
LebedevRI Aug 10, 2016
45cc8e4
Canon PowerShot G7 X Mark II - basic support
LebedevRI Aug 11, 2016
59af395
Panasonic DMC-FZ50: Basic support added
schenlap Aug 11, 2016
73db1b3
Add the K-1 entry to rawspeed's camera.xml
mazhe Jun 18, 2016
18e1033
PENTAX K-1: fix crop
LebedevRI Aug 12, 2016
1234f2d
Olympus SP570UZ - proper bayer pattern
aferrero2707 Aug 12, 2016
d3c9928
NIKON D300: all the 12bit/14bit modes.
LebedevRI Aug 15, 2016
1ffaf95
NefDecoder: stop providing the rope for users to hang themselves.
LebedevRI Aug 15, 2016
dba9e4f
nikon modes inventory check :(
LebedevRI Aug 15, 2016
12a3cd4
add NIKON D7000 mode 14bit.
LebedevRI Aug 15, 2016
2f0641b
add NIKON D300S mode 12bit.
LebedevRI Aug 15, 2016
dd17261
Nikon D500: uncompressed (supported="no"): add tags from compressed
LebedevRI Aug 15, 2016
67bfca6
add NIKON D5200 mode 14bit.
LebedevRI Aug 15, 2016
8655450
NIKON D5000 mode 12bit: fix whitelevel...
LebedevRI Aug 15, 2016
794aae0
NIKON D3 mode 14bit: fix whitelevel...
LebedevRI Aug 15, 2016
618b76e
NIKON D3X mode 14bit: fix whitelevel...
LebedevRI Aug 15, 2016
bee3051
NIKON D7200: add uncompressed modes too.
LebedevRI Aug 16, 2016
cb06d49
NIKON D750: add uncompressed modes too.
LebedevRI Aug 16, 2016
2f7a2ed
nikon: add 12bit entries if not present for all 14-bit
LebedevRI Aug 16, 2016
7756ebd
CameraMetaData: avoid use-after free in case of duplicates
LebedevRI Aug 17, 2016
afbbdbd
Nikon: fixup crop for D800{,E} 14bit-compressed
LebedevRI Aug 17, 2016
a2b6513
Nikon: disable D7200 and D750 mode uncompressed
LebedevRI Aug 17, 2016
f6fbf06
NIKON D3100 12bit support.
LebedevRI Aug 20, 2016
7a87e0f
Add support for raw images from GITUP GIT2 action camera.
LebedevRI Aug 24, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions RawSpeed/CameraMetaData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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++) {
Expand Down Expand Up @@ -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;
}
Expand All @@ -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 )
Expand Down
2 changes: 1 addition & 1 deletion RawSpeed/CameraMetaData.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 1 addition & 4 deletions RawSpeed/NefDecoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
2 changes: 1 addition & 1 deletion RawSpeed/OrfDecoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
11 changes: 11 additions & 0 deletions RawSpeed/RafDecoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion RawSpeed/TiffEntry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
1 change: 1 addition & 0 deletions RawSpeed/TiffTag.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Loading