Skip to content

Commit 06b237c

Browse files
committed
BMFF interpretation batch
OpenMeta/src/openmeta/bmff_fields_decode.cc:1722 now exposes component roles, ordered member IDs, semantic node composition, isolation state, and typed relation counts. Per-component policies also flow directly into container_graph concept resolution and transfer diagnostics. Validation passed: - Six focused BMFF/concept/transfer/compatibility tests. - Full openmeta_tests: 100% passed. - CMake-generated Sphinx documentation build succeeded. It reported four unrelated existing documentation warnings. - git diff --check: clean. - Public Markdown and Sphinx documentation synchronized. - BMFF interpretation coverage increased from 88–92% to approximately 90–93%; overall Interpretation remains about 97%.
1 parent 51a9506 commit 06b237c

19 files changed

Lines changed: 495 additions & 53 deletions

CHANGES.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
# OpenMeta Changes
22

3+
## 0.4.67 - 2026-07-10
4+
5+
Changes compared with `0.4.66`.
6+
7+
### Added
8+
9+
- Added bounded BMFF component role and membership rows, including ordered
10+
member item IDs, known/unknown and semantic node counts, isolated-state,
11+
and typed auxiliary, derived-image, thumbnail, content-description, alpha,
12+
depth, disparity, matte, and other relation-edge counts.
13+
- Added independent-image component coverage and direct `container_graph`
14+
concept/transfer-diagnostic routing for per-component metadata and
15+
multi-image policy fields.
16+
- Added compatibility-dump coverage for BMFF component role and membership
17+
fields.
18+
19+
### Changed
20+
21+
- Updated public BMFF interpretation, support, compatibility, API stability,
22+
and development documentation for component membership and typed relation
23+
summaries.
24+
325
## 0.4.66 - 2026-07-09
426

527
Changes compared with `0.4.65`.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.66
1+
0.4.67

docs/api_stability.md

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

docs/compatibility_dump.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,12 @@ entry index=0 name="Make" key_kind="exif_tag" value_kind="text" ...
4747
Each emitted entry is based on `visit_metadata(...)`, so ordering, duplicate
4848
handling, and naming follow the selected `ExportNameStyle`. By default the
4949
dump uses the stable `FlatHost` contract.
50-
BMFF derived policy fields such as `bmff:scene.component.metadata_policy` and
50+
BMFF component membership, role, and policy fields such as
51+
`bmff:scene.component.item_id`, `bmff:scene.component.role`,
52+
`bmff:scene.component.metadata_policy`, and
5153
`bmff:scene.component.multi_image_policy` are emitted as normal `bmff_field`
52-
entries, so host baselines can verify container-graph transfer policy evidence
53-
without a separate decoder-specific dump format.
54+
entries, so host baselines can verify container-graph evidence without a
55+
separate decoder-specific dump format.
5456

5557
Metadata entry lines include:
5658

docs/development.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ model should stay compact:
1717
| Area | Purpose | Readiness |
1818
| --- | --- | --- |
1919
| Decoding | Find metadata carriers and decode EXIF, XMP, IPTC, ICC, Photoshop IRB, JUMBF/C2PA, EXR, and related blocks into `MetaStore` entries. | High, about 98-100% for the current target scope. |
20-
| Interpretation | Normalize names and values, group entries by meaning, and classify source-bound data such as RAW crop, exposure adjustment, color/profile/source-color-transform evidence, RAW curves/linearity metadata with descriptor-backed compressed-storage applicability, lens-correction, sensor, BMFF brand/item-property associations and rollups including `avio` AVIF brands, item groups, item semantic counts, whole-scene policy hints, graph-component and per-component summaries, `container_graph` concepts, primary item properties, primary metadata-carrier flags, primary sidecar and scene summaries, and display-transform summaries, JUMBF labels, Photoshop IRB embedded carriers plus fixed-layout, XML/text, working-path and numbered clipping-path records, byte-count, descriptor-header, simple descriptor-item, enum, and bounded nested list/object summaries, EXIF 3.1 correction/noise labels, version/firmware-style value formatting for selected EXIF/Nikon/Olympus/native RAF contexts, selected Sony ILCE-7RM6 correction-offset routing, Fujifilm flash white-balance naming, Apple/FLIR/JVC/GE/Reconyx/Microsoft/Nintendo/Sanyo scalar MakerNote labels, current Canon RF/Nikon Z lens labels, an ambiguous Pentax Sigma/Samsung/Tokina lens-family label, EXIF/XMP GPS timestamp composites, computational, thermal, stitch/panorama capture state, and vendor-private fields. | Medium-high, about 97%. |
20+
| Interpretation | Normalize names and values, group entries by meaning, and classify source-bound data such as RAW crop, exposure adjustment, color/profile/source-color-transform evidence, RAW curves/linearity metadata with descriptor-backed compressed-storage applicability, lens-correction, sensor, BMFF brand/item-property associations and rollups including `avio` AVIF brands, item groups, item semantic counts, whole-scene policy hints, graph-component summaries with per-component roles, member item IDs, semantic composition and typed relation counts, `container_graph` concepts, primary item properties, primary metadata-carrier flags, primary sidecar and scene summaries, and display-transform summaries, JUMBF labels, Photoshop IRB embedded carriers plus fixed-layout, XML/text, working-path and numbered clipping-path records, byte-count, descriptor-header, simple descriptor-item, enum, and bounded nested list/object summaries, EXIF 3.1 correction/noise labels, version/firmware-style value formatting for selected EXIF/Nikon/Olympus/native RAF contexts, selected Sony ILCE-7RM6 correction-offset routing, Fujifilm flash white-balance naming, Apple/FLIR/JVC/GE/Reconyx/Microsoft/Nintendo/Sanyo scalar MakerNote labels, current Canon RF/Nikon Z lens labels, an ambiguous Pentax Sigma/Samsung/Tokina lens-family label, EXIF/XMP GPS timestamp composites, computational, thermal, stitch/panorama capture state, and vendor-private fields. | Medium-high, about 97%. |
2121
| Query | Find entries by name, fuzzy term, or semantic group, then expose normalized query candidates, structured interpretation records, bounded cross-family concept resolutions, transfer hints, and conflict flags for crop/border/active-area, exposure/gain, color/WB/profile/source-color-transform, orientation, date/time, GPS, lens-correction, computational/thermal/stitch, and RAW/source-processing fields across standard and vendor metadata. | Medium-high, about 88-93%. |
2222
| Creation | Build fresh metadata entries from host-provided values. | Medium, about 55-65%. |
2323
| Editing | Modify existing logical metadata entries while preserving valid surrounding structure. | Medium, about 60-70%. |
@@ -739,6 +739,11 @@ This policy surface is intentionally marked draft and may be refined.
739739
`scene.graph_multi_image_component_count`,
740740
`scene.graph_content_bound_metadata_component_count`,
741741
`scene.graph_observed_edge_count`,
742+
per-component rows (`scene.component.index`, `scene.component.role`,
743+
`scene.component.item_id`, known/unknown and semantic `*_node_count`
744+
fields, `scene.component.isolated`, typed auxiliary/derived/thumbnail/
745+
content-description `*_edge_count` fields, and alpha/depth/disparity/matte
746+
auxiliary edge counts),
742747
`scene.primary_graph_component_node_count`,
743748
`scene.primary_graph_component_*_node_count`,
744749
`scene.primary_graph_component_edge_count`,

0 commit comments

Comments
 (0)