You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bump VERSION and add docs/workflow for GitHub Pages; update README and docs to describe EXR and TIFF progress. Add CI yamllint rule and .github workflow to build and publish Sphinx docs.
Introduce EXR host-integration helpers in src/include/openmeta/exr_adapter.h and src/openmeta/exr_adapter.cc: new types and functions to materialize ExrAdapterBatch from a prepared transfer bundle (build_prepared_exr_attribute_batch) and a file-helper wrapper (build_exr_attribute_batch_from_file). Add parsing/encoding helpers for the prepared EXR string-attribute payload format and error handling.
Significant enhancements to TIFF/EXIF handling in src/openmeta/metadata_transfer.cc: add IFD1 support and explicit subIFD indexing, new TransferExifIfdRef classification, support for preserving downstream page/aux tails, and plumbing to emit the IFD1 pointer when present. Introduce big/64-bit TIFF (BigTIFF) support via a TiffLayout abstraction: widen count/offset fields, add read/write helpers for 64-bit values, adjust parsing/serialization for classic and BigTIFF variants, handle endian conversion for new types, and extend parsed/serialized structures to track next-ifd offsets and subIFDs. Tests and Python bindings were updated accordingly.
Copy file name to clipboardExpand all lines: docs/metadata_transfer_plan.md
+35-2Lines changed: 35 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,8 @@ The core rule is:
26
26
27
27
## Current Status
28
28
29
+
Current planning estimate for this lane: about `80-85%`.
30
+
29
31
Source-side readiness is already strong:
30
32
- tracked EXIF read gates are green on `HEIC/HEIF`, `CR3`, and mixed RAW corpora
31
33
- tracked MakerNote gates are green
@@ -45,13 +47,13 @@ The first public write-side sync controls are also in place:
45
47
| Target | Status | Current shape | Main limits |
46
48
| --- | --- | --- | --- |
47
49
| JPEG | First-class | Prepared bundle, compiled emit, byte-writer emit, edit planning/apply, file helper, bounded JUMBF/C2PA staging | Not a full arbitrary metadata editor yet |
48
-
| TIFF | First-class | Prepared bundle, compiled emit, edit planning/apply, file helper, streaming edit path | Broader TIFF/DNG rewrite coverage is still narrower than JPEG |
50
+
| TIFF | First-class | Prepared bundle, compiled emit, classic-TIFF and BigTIFF edit planning/apply, bounded `ifd1` chain rewrite with preserved downstream page tails, bounded TIFF/DNG-style SubIFD rewrite with preserved downstream auxiliary tails and preserved trailing existing children when only the front subset is replaced, file helper, streaming edit path | Broader TIFF/DNG rewrite coverage is still narrower than JPEG |
49
51
| PNG | Bounded but real | Prepared bundle, compiled emit, bounded chunk rewrite/edit, file-helper roundtrip | Not a general PNG chunk editor |
50
52
| WebP | Bounded but real | Prepared bundle, compiled emit, bounded chunk rewrite/edit, file-helper roundtrip | Not a general WebP chunk editor |
51
53
| JP2 | Bounded but real | Prepared bundle, compiled emit, bounded box rewrite/edit, file-helper roundtrip |`jp2h` synthesis is still out of scope |
52
54
| JXL | Bounded but real | Prepared bundle, compiled emit, bounded box rewrite/edit, file-helper roundtrip | Still narrower than JPEG/TIFF |
53
55
| HEIF / AVIF / CR3 | Bounded but real | Prepared bundle, compiled emit, bounded BMFF item/property edit, file-helper roundtrip | Not broad BMFF writer parity |
54
-
| EXR | Bounded but real | Prepared bundle, compiled emit, direct backend attribute emit, CLI/Python transfer surface | No file rewrite/edit path yet; current transfer payload is safe string attributes only |
56
+
| EXR | Bounded but real | Prepared bundle, compiled emit, direct backend attribute emit, prepared-bundle to `ExrAdapterBatch` bridge, CLI/Python transfer surface | No file rewrite/edit path yet; current transfer payload is safe string attributes only |
55
57
56
58
## What Is Already Implemented
57
59
@@ -85,6 +87,13 @@ These support the public transfer flow:
85
87
OpenMeta now has explicit end-to-end read-backed transfer tests for:
86
88
- source JPEG -> JPEG edit/apply -> read-back
87
89
- source JPEG -> TIFF edit/apply -> read-back
90
+
- source JPEG -> TIFF edit/apply with `ifd1` -> read-back
0 commit comments