proper way to handle maker notes

Rafael Espíndola rafael.espindola at
Wed Jun 11 01:38:15 PDT 2008

> There is not really any standard way to access MakerNote. One of the
> reason is that some MakerNote may not even be an IFD. The other reason
> is that I didn't have any need for that yet, although it is planned as
> part of the meta data loading.
> Now about the code, a couple of comments:
> -Only use _locateExifIfd() if m_exifIfd is NULL
Nice. Will do that.

> -Don't assert on conditions that occur at run time. assert() are only
> for semantic checks, like passing NULL where it is forbidden, etc.
Sure. This is just the first version that worked. I had a hard coded
curve before :-)

> -Passing &temp[0] to something that expect a "raw" pointer is a
> fundamental error. There is absolutely NO warranty that
>  &temp[n + 1] == &temp[n] when temp is a std::vector<>.

you mean &temp[n+1] == &temp[n] + 1 right?

I think it is

> -There is a IFDEntry::getArray<>() to which you pass a vector that
> should do that for you.

I tried, but the IFD  used by NEF has base != start of the header
(note the "+ 10", so I couldn't get it to work.  Not a big issue,
since the final version has to read 16 bits. I  just used the uint8_t
vector to debug by comparing with "exiv2 -b -p h" output.

I should have a patch that reads most NEF files this weekend :-)

> Hub

Thank a lot,

More information about the Libopenraw-dev mailing list