Skip to content

Commit 02f42c3

Browse files
authored
feat(makernote): add Fujifilm MakerNote parser (#33)
Reviewed and approved by tech-lead-02. Implements Fujifilm MakerNote parser (MNI-5). Key features: - FUJIFILM header detection with dynamic IFD offset - OffsetRelativeToMakerNote (offsets relative to MakerNote start) - 80+ tag mappings including FilmMode, FocusMode, SerialNumber - Always little-endian Phase 2 MakerNote coverage: +9% (Fujifilm)
1 parent f74796b commit 02f42c3

File tree

7 files changed

+844
-11
lines changed

7 files changed

+844
-11
lines changed

api_integration_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ func TestIntegration_CR2(t *testing.T) {
265265
},
266266
{
267267
Name: "ExifIFD",
268-
ExactTagCount: 27,
268+
ExactTagCount: 26, // MakerNote is now parsed into Canon directory
269269
Tags: []imxtest.TagExpectation{
270270
// All tags with exact values where possible, binary data checked for presence only
271271
{Name: "ExposureTime", Value: "1/100"},
@@ -282,7 +282,7 @@ func TestIntegration_CR2(t *testing.T) {
282282
{Name: "MeteringMode", Value: "Multi-segment"},
283283
{Name: "Flash", Value: "Off, Did not fire"},
284284
{Name: "FocalLength", Value: "85/1"},
285-
{Name: "MakerNote", Type: "[]byte"}, // Binary data - check presence only
285+
// MakerNote is now parsed into Canon directory
286286
{Name: "UserComment", Type: "[]byte"}, // Binary data - check presence only
287287
{Name: "FlashpixVersion", Value: "0100"},
288288
{Name: "ColorSpace", Value: "sRGB"},
@@ -305,6 +305,10 @@ func TestIntegration_CR2(t *testing.T) {
305305
{Name: "JPEGInterchangeFormatLength", Value: uint32(13120)},
306306
},
307307
},
308+
{
309+
Name: "Canon",
310+
ExactTagCount: -1, // Presence check only - Canon MakerNote content varies by camera model
311+
},
308312
})
309313
if result.Failed() {
310314
for _, err := range result.Errors {

0 commit comments

Comments
 (0)