From 483a8911fc13d2185c50b20a62d31b4b2d73a0e5 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Fri, 28 Aug 2015 22:13:33 +0200 Subject: [PATCH] Fix wrong handling of MakerNotes in dng files created with HDRMerge from Nikon NEF files --- rtexif/rtexif.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index e80467b5d..2aa9c66e0 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -1133,7 +1133,13 @@ bool Tag::parseMakerNote(FILE* f, int base, ByteOrder bom ) int basepos = ftell (f); fread (value, 1, 18, f); directory = new TagDirectory*[2]; - directory[0] = new TagDirectory (parent, f, basepos + 10, nikon3Attribs, bom); + // byte order for makernotes can be different from exif byte order. We have to get it from makernotes header + ByteOrder MakerNoteOrder; + if(value[10] == 'M' && value[11] == 'M') + MakerNoteOrder = rtexif::MOTOROLA; + else + MakerNoteOrder = rtexif::INTEL; + directory[0] = new TagDirectory (parent, f, basepos + 10, nikon3Attribs, MakerNoteOrder); directory[1] = NULL; } } else if ( make.find( "Canon" ) != std::string::npos ) {