OpenMetaΒΆ
OpenMeta is a C++ library for reading metadata across common image and media containers. It does not decode, decompress, demosaic, or render image pixels.
What it does today:
Scans files to locate metadata blocks (EXIF, XMP, ICC, IPTC, Photoshop IRB, MPF, comments, JUMBF/C2PA hints, and BMFF item-graph metadata).
Extracts and optionally decompresses block payloads (size-limited).
Decodes common blocks into a typed, normalized in-memory model: EXIF/TIFF-IFD tags, XMP properties, IPTC-IIM datasets, ICC profile header/tag tables, Photoshop IRB (8BIM) resource blocks, BMFF derived fields, and EXR header attributes.
Exposes sidecar dump paths (lossless and portable) and validation APIs/tools (metavalidate) with machine-readable issue codes for CI gating.
Read-path coverage snapshot:
Tracked HEIC/HEIF, CR3, and mixed RAW EXIF compare gates are passing.
EXR header metadata compare gate is passing for the documented contract.
MakerNote support is broad and baseline-gated; unknown tags remain lossless.
RAW read-depth gaps are tracked by family in RAW Read Parity Plan.
Camera RAW support refers to metadata carrier discovery and documented metadata interpretation. It does not imply RAW pixel decoding, complete vendor private-table interpretation, or native camera RAW writing.
OpenMeta is designed to treat metadata as untrusted input and provides explicit limits and sanitization controls. See Security for current known limitations. The optional C2PA verification scaffold is diagnostic only and must not be used as an asset-authenticity or trust gate.
- Quick Start
- Host Integration
- Pick the integration path
- Adapter classes
- Read and query
- Random-access source foundation
- Generic host metadata traversal
- EXR attribute batches
- Host-owned JPEG or JXL output
- Edit an existing target file
- Query runtime capabilities
- Optional Adobe DNG SDK bridge
- Phase One RAW Processing Metadata
- Vendor RAW Processing Metadata
- Related pages
- Host Adoption Profile
- Random-Access Input
- API Stability
- FlatHost Mapping Contract
- Compatibility Dump Contract
- XMP Sync And Writeback Policy
- Writer Target Contract
- Interpretation Status
- Fuzzy Search
- Metadata Creation
- Metadata Editing
- RAW Read Parity Plan
- Build and Install
- Shared Library Contract
- Developer Notes
- Interop API
- EXR Metadata Contract
- Testing
- Security
- API Reference
openmeta::AppendPreparedJpegJumbfOptionsopenmeta::ApplyDngSdkMetadataFileOptionsopenmeta::ApplyDngSdkMetadataFileResultopenmeta::ApplyTimePatchOptionsopenmeta::ApplyTimePatchResultopenmeta::BlockInfoopenmeta::BlockSpanopenmeta::MetaKey::Data::BmffFieldopenmeta::MetaKeyView::Data::BmffFieldopenmeta::BmffTransferEmitteropenmeta::BuildExrAttributeBatchFileOptionsopenmeta::BuildExrAttributeBatchFileResultopenmeta::BuildInfoopenmeta::BuildPreparedC2paBindingResultopenmeta::ByteArenaopenmeta::ByteSpanopenmeta::CcmFieldopenmeta::CcmIssueopenmeta::CcmQueryLimitsopenmeta::CcmQueryOptionsopenmeta::CcmQueryResultopenmeta::MetaKey::Data::Commentopenmeta::MetaKeyView::Data::Commentopenmeta::ContainerBlockRefopenmeta::ContainerRandomAccessScanResultopenmeta::ContainerRandomAccessScratchopenmeta::MetaKey::Dataopenmeta::MetaKeyView::Dataopenmeta::MetaValue::Dataopenmeta::DngSdkAdapterOptionsopenmeta::DngSdkAdapterResultopenmeta::EditOpopenmeta::EmittedBmffItemSummaryopenmeta::EmittedBmffPropertySummaryopenmeta::EmittedExrAttributeSummaryopenmeta::EmittedJp2BoxSummaryopenmeta::EmittedJpegMarkerSummaryopenmeta::EmittedJxlBoxSummaryopenmeta::EmittedPngChunkSummaryopenmeta::EmittedTiffTagSummaryopenmeta::EmittedWebpChunkSummaryopenmeta::EmitTransferOptionsopenmeta::EmitTransferResultopenmeta::Entryopenmeta::ExecutePreparedTransferBundleOptionsopenmeta::ExecutePreparedTransferFileOptionsopenmeta::ExecutePreparedTransferFileResultopenmeta::ExecutePreparedTransferOptionsopenmeta::ExecutePreparedTransferResultopenmeta::ExecutePreparedTransferSnapshotOptionsopenmeta::ExifDecodeLimitsopenmeta::ExifDecodeOptionsopenmeta::ExifDecodeResultopenmeta::ExifIfdRefopenmeta::ExifIfdTokenPolicyopenmeta::ExifOrientationInterpretationopenmeta::ExifRandomAccessDecodeResultopenmeta::ExifRandomAccessScratchopenmeta::MetaKey::Data::ExifTagopenmeta::MetaKeyView::Data::ExifTagopenmeta::ExportItemopenmeta::ExportOptionsopenmeta::ExrAdapterAttributeopenmeta::ExrAdapterBatchopenmeta::ExrAdapterOptionsopenmeta::ExrAdapterPartSpanopenmeta::ExrAdapterPartViewopenmeta::ExrAdapterReplayCallbacksopenmeta::ExrAdapterReplayResultopenmeta::ExrAdapterResultopenmeta::MetaKey::Data::ExrAttributeopenmeta::MetaKeyView::Data::ExrAttributeopenmeta::ExrDecodeLimitsopenmeta::ExrDecodeOptionsopenmeta::ExrDecodeResultopenmeta::ExrPreparedAttributeopenmeta::ExrPreparedAttributeViewopenmeta::ExrRandomAccessDecodeResultopenmeta::ExrRandomAccessScratchopenmeta::ExrTransferEmitteropenmeta::FlatHostImportItemopenmeta::FlatHostImportOptionsopenmeta::FlatHostImportResultopenmeta::FlatHostImportValueopenmeta::MetaKey::Data::GeotiffKeyopenmeta::MetaKeyView::Data::GeotiffKeyopenmeta::HostAdoptionProfileopenmeta::IccDecodeLimitsopenmeta::IccDecodeOptionsopenmeta::IccDecodeResultopenmeta::MetaKey::Data::IccHeaderFieldopenmeta::MetaKeyView::Data::IccHeaderFieldopenmeta::MetaKey::Data::IccTagopenmeta::MetaKeyView::Data::IccTagopenmeta::IccTagInterpretationopenmeta::IccTagInterpretLimitsopenmeta::IccTagInterpretOptionsopenmeta::InteropSafetyErroropenmeta::MetaKey::Data::IptcDatasetopenmeta::MetaKeyView::Data::IptcDatasetopenmeta::IptcIimDecodeLimitsopenmeta::IptcIimDecodeOptionsopenmeta::IptcIimDecodeResultopenmeta::Jp2TransferEmitteropenmeta::JpegEditPlanopenmeta::JpegTransferEmitteropenmeta::MetaKey::Data::JumbfCborKeyopenmeta::MetaKeyView::Data::JumbfCborKeyopenmeta::JumbfDecodeLimitsopenmeta::JumbfDecodeOptionsopenmeta::JumbfDecodeResultopenmeta::MetaKey::Data::JumbfFieldopenmeta::MetaKeyView::Data::JumbfFieldopenmeta::JumbfStructureEstimateopenmeta::JxlTransferEmitteropenmeta::KeySpanopenmeta::LibRawFlipToExifOptionsopenmeta::LibRawFlipToExifResultopenmeta::LibRawOrientationFileOptionsopenmeta::LibRawOrientationFileResultopenmeta::LibRawOrientationOptionsopenmeta::LibRawOrientationResultopenmeta::MappedFileopenmeta::MetadataCapabilityopenmeta::MetadataCompatibilityDumpOptionsopenmeta::MetadataConceptCandidateopenmeta::MetadataConceptResolutionopenmeta::MetadataConceptResultopenmeta::MetadataCreationFieldopenmeta::MetadataCreationLimitsopenmeta::MetadataCreationRequestopenmeta::MetadataCreationResultopenmeta::MetadataEditingLimitsopenmeta::MetadataEditingOperationopenmeta::MetadataEditingRequestopenmeta::MetadataEditingResultopenmeta::MetadataFuzzySearchMatchopenmeta::MetadataFuzzySearchOptionsopenmeta::MetadataFuzzySearchResultopenmeta::MetadataInterpretationRecordopenmeta::MetadataInterpretationResultopenmeta::MetadataQueryCandidateopenmeta::MetadataQueryMatchopenmeta::MetadataQueryResultopenmeta::MetadataRawDataDescriptoropenmeta::MetadataSinkopenmeta::MetaEditopenmeta::MetaKeyopenmeta::MetaKeyViewopenmeta::MetaStoreopenmeta::MetaValueopenmeta::OcioAdapterOptionsopenmeta::OcioAdapterRequestopenmeta::OcioMetadataNodeopenmeta::OpenMetaResourcePolicyopenmeta::Originopenmeta::PayloadLimitsopenmeta::PayloadOptionsopenmeta::PayloadRandomAccessResultopenmeta::PayloadRandomAccessScratchopenmeta::PayloadResultopenmeta::PersistPreparedTransferFileOptionsopenmeta::PersistPreparedTransferFileResultopenmeta::PhaseOneRawGeometryopenmeta::PhaseOneRawGeometryResultopenmeta::PhaseOneRawProcessingInfoopenmeta::PhaseOneRawProcessingResultopenmeta::MetaKey::Data::PhotoshopIrbopenmeta::MetaKeyView::Data::PhotoshopIrbopenmeta::PhotoshopIrbDecodeLimitsopenmeta::PhotoshopIrbDecodeOptionsopenmeta::PhotoshopIrbDecodeResultopenmeta::MetaKey::Data::PhotoshopIrbFieldopenmeta::MetaKeyView::Data::PhotoshopIrbFieldopenmeta::PlanJpegEditOptionsopenmeta::PlanTiffEditOptionsopenmeta::MetaKey::Data::PngTextopenmeta::MetaKeyView::Data::PngTextopenmeta::PngTransferEmitteropenmeta::PreparedBmffEmitOpopenmeta::PreparedBmffEmitPlanopenmeta::PreparedExrEmitOpopenmeta::PreparedExrEmitPlanopenmeta::PreparedJp2EmitOpopenmeta::PreparedJp2EmitPlanopenmeta::PreparedJpegEmitOpopenmeta::PreparedJpegEmitPlanopenmeta::PreparedJxlEmitOpopenmeta::PreparedJxlEmitPlanopenmeta::PreparedJxlEncoderHandoffopenmeta::PreparedJxlEncoderHandoffIoResultopenmeta::PreparedJxlEncoderHandoffViewopenmeta::PreparedPngEmitOpopenmeta::PreparedPngEmitPlanopenmeta::PreparedTiffEmitOpopenmeta::PreparedTiffEmitPlanopenmeta::PreparedTransferAdapterOpopenmeta::PreparedTransferAdapterViewopenmeta::PreparedTransferArtifactInfoopenmeta::PreparedTransferArtifactIoResultopenmeta::PreparedTransferBlockopenmeta::PreparedTransferBundleopenmeta::PreparedTransferC2paHandoffPackageopenmeta::PreparedTransferC2paPackageIoResultopenmeta::PreparedTransferC2paRewriteChunkopenmeta::PreparedTransferC2paRewriteRequirementsopenmeta::PreparedTransferC2paSignedPackageopenmeta::PreparedTransferC2paSignerInputopenmeta::PreparedTransferC2paSignRequestopenmeta::PreparedTransferExecutionPlanopenmeta::PreparedTransferPackageBatchopenmeta::PreparedTransferPackageBlobopenmeta::PreparedTransferPackageChunkopenmeta::PreparedTransferPackageIoResultopenmeta::PreparedTransferPackagePlanopenmeta::PreparedTransferPackageReplayCallbacksopenmeta::PreparedTransferPackageReplayResultopenmeta::PreparedTransferPackageViewopenmeta::PreparedTransferPayloadopenmeta::PreparedTransferPayloadBatchopenmeta::PreparedTransferPayloadIoResultopenmeta::PreparedTransferPayloadReplayCallbacksopenmeta::PreparedTransferPayloadReplayResultopenmeta::PreparedTransferPayloadViewopenmeta::PreparedTransferPolicyDecisionopenmeta::PreparedWebpEmitOpopenmeta::PreparedWebpEmitPlanopenmeta::PrepareTransferFileOptionsopenmeta::PrepareTransferFileResultopenmeta::PrepareTransferRequestopenmeta::PrepareTransferResultopenmeta::PreviewCandidateopenmeta::PreviewExtractOptionsopenmeta::PreviewExtractResultopenmeta::PreviewScanLimitsopenmeta::PreviewScanOptionsopenmeta::PreviewScanResultopenmeta::PrintImDecodeLimitsopenmeta::PrintImDecodeResultopenmeta::MetaKey::Data::PrintImFieldopenmeta::MetaKeyView::Data::PrintImFieldopenmeta::RandomAccessIoResultopenmeta::RandomAccessReadLimitsopenmeta::RandomAccessReadStateopenmeta::RandomAccessReadWindowopenmeta::RandomAccessReadWindowOptionsopenmeta::RandomAccessSourceopenmeta::RandomAccessSourceRangeopenmeta::RandomAccessViewResultopenmeta::ReadTransferSourceDiagnosticopenmeta::ReadTransferSourceDiagnosticOptionsopenmeta::ReadTransferSourceDiagnosticsResultopenmeta::ReadTransferSourceSnapshotBytesResultopenmeta::ReadTransferSourceSnapshotFileOptionsopenmeta::ReadTransferSourceSnapshotFileResultopenmeta::ReadTransferSourceSnapshotRandomAccessOptionsopenmeta::ReadTransferSourceSnapshotRandomAccessResultopenmeta::ReadTransferSourceSnapshotRandomAccessScratchopenmeta::ScanResultopenmeta::SimpleMetaDecodeOptionsopenmeta::SimpleMetaResultopenmeta::SpanTransferByteWriteropenmeta::SRationalopenmeta::TiffEditPlanopenmeta::TiffTransferEmitteropenmeta::TimePatchSlotopenmeta::TimePatchUpdateopenmeta::TimePatchViewopenmeta::TransferAdapterSinkopenmeta::TransferByteWriteropenmeta::TransferCompatibilityDumpOptionsopenmeta::TransferConceptDiagnosticopenmeta::TransferConceptDiagnosticsopenmeta::TransferMakerNoteAuditopenmeta::TransferMakerNoteLayoutAuditopenmeta::TransferProfileopenmeta::TransferRawCarrierPassthroughAuditopenmeta::TransferRawCarrierPassthroughAuditOptionsopenmeta::TransferRawCarrierPassthroughDecisionopenmeta::TransferSafetyAuditopenmeta::TransferSourceRawCarrieropenmeta::TransferSourceSnapshotopenmeta::TransferSourceSnapshotIoOptionsopenmeta::TransferSourceSnapshotIoResultopenmeta::TransferTargetImageSpecopenmeta::TransferTimePatchInputopenmeta::URationalopenmeta::ValidateIssueopenmeta::ValidateOptionsopenmeta::ValidatePreparedC2paSignResultopenmeta::ValidateResultopenmeta::VendorRawProcessingSummaryopenmeta::WebpTransferEmitteropenmeta::WireTypeopenmeta::XmpDecodeLimitsopenmeta::XmpDecodeOptionsopenmeta::XmpDecodeResultopenmeta::XmpDumpLimitsopenmeta::XmpDumpOptionsopenmeta::XmpDumpResultopenmeta::XmpPortableOptionsopenmeta::MetaKey::Data::XmpPropertyopenmeta::MetaKeyView::Data::XmpPropertyopenmeta::XmpSidecarOptionsopenmeta::XmpSidecarRequestopenmetaOPENMETA_APIOPENMETA_PUBLIC_BEGINOPENMETA_PUBLIC_END