Skip to content

MNI-4: Nikon MakerNote Parser #13

@rpuneet

Description

@rpuneet

Summary

Implement Nikon MakerNote parser for Epic #9 (Phase 2).

Format Specification - 3 VARIANTS

Type 1 (E990, D1)

  • Header: "Nikon" + 0x00 0x01 0x00 (8 bytes)
  • IFD Offset: +8
  • Byte Order: Inherits from parent
  • Offset Base: Absolute

Type 3 (D70, D100, D200+) - Most Common

  • Header: "Nikon" + 0x00 0x02 0x00 + embedded TIFF header (18 bytes)
  • IFD Offset: +18
  • Byte Order: Embedded (check bytes 10-11 for II/MM)
  • Offset Base: Relative to MakerNote start

Type 2 (E700-E950) - Legacy

  • Header: None
  • Uses Type 3 tag definitions
  • Absolute offsets

Priority Tags (Phase 2)

Tag Name Type
0x0002 ISO Short array
0x001D SerialNumber ASCII
0x0025 ShutterCount Long
0x0084 Lens Rational array
0x00A7 ShutterCount (alt) Long

Encrypted Fields (skip initially)

  • 0x0098: LensData - encrypted with serial-based key
  • 0x00A8: FlashInfo - partially encrypted

Acceptance Criteria

  • Detects all 3 Nikon variants
  • Handles embedded byte order (Type 3)
  • Decodes 15+ Nikon tags
  • Gracefully skips encrypted fields
  • Unit tests with real Nikon samples (NEF, JPG)

Blocked by: MNI-2 (Canon)
Parent: #9

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions