OpenMetaΒΆ
OpenMeta is a C++ library for reading metadata safely across common image and media containers.
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.
OpenMeta treats metadata as untrusted input and applies explicit limits and sanitization to reduce memory and output attack surface.
- Build and Install
- Developer Notes
- Interop API
- EXR Metadata Contract
- Testing
- Security
- API Reference
openmeta::AppendPreparedJpegJumbfOptionsopenmeta::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::MetaKey::Dataopenmeta::MetaKeyView::Dataopenmeta::MetaValue::Dataopenmeta::EditOpopenmeta::EmittedBmffItemSummaryopenmeta::EmittedBmffPropertySummaryopenmeta::EmittedExrAttributeSummaryopenmeta::EmittedJp2BoxSummaryopenmeta::EmittedJpegMarkerSummaryopenmeta::EmittedJxlBoxSummaryopenmeta::EmittedPngChunkSummaryopenmeta::EmittedTiffTagSummaryopenmeta::EmittedWebpChunkSummaryopenmeta::EmitTransferOptionsopenmeta::EmitTransferResultopenmeta::Entryopenmeta::ExecutePreparedTransferFileOptionsopenmeta::ExecutePreparedTransferFileResultopenmeta::ExecutePreparedTransferOptionsopenmeta::ExecutePreparedTransferResultopenmeta::ExifDecodeLimitsopenmeta::ExifDecodeOptionsopenmeta::ExifDecodeResultopenmeta::ExifIfdRefopenmeta::ExifIfdTokenPolicyopenmeta::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::ExrTransferEmitteropenmeta::MetaKey::Data::GeotiffKeyopenmeta::MetaKeyView::Data::GeotiffKeyopenmeta::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::MappedFileopenmeta::MetadataSinkopenmeta::MetaEditopenmeta::MetaKeyopenmeta::MetaKeyViewopenmeta::MetaStoreopenmeta::MetaValueopenmeta::OcioAdapterOptionsopenmeta::OcioAdapterRequestopenmeta::OcioMetadataNodeopenmeta::OiioAdapterOptionsopenmeta::OiioAdapterRequestopenmeta::OiioAttributeopenmeta::OiioTransferPackageReplayCallbacksopenmeta::OiioTransferPackageReplayResultopenmeta::OiioTransferPackageViewopenmeta::OiioTransferPayloadopenmeta::OiioTransferPayloadBatchopenmeta::OiioTransferPayloadReplayCallbacksopenmeta::OiioTransferPayloadReplayResultopenmeta::OiioTransferPayloadViewopenmeta::OiioTypedAttributeopenmeta::OiioTypedValueopenmeta::OpenMetaResourcePolicyopenmeta::Originopenmeta::PayloadLimitsopenmeta::PayloadOptionsopenmeta::PayloadResultopenmeta::PersistPreparedTransferFileOptionsopenmeta::PersistPreparedTransferFileResultopenmeta::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::ScanResultopenmeta::SimpleMetaDecodeOptionsopenmeta::SimpleMetaResultopenmeta::SpanTransferByteWriteropenmeta::SRationalopenmeta::TiffEditPlanopenmeta::TiffTransferEmitteropenmeta::TimePatchSlotopenmeta::TimePatchUpdateopenmeta::TimePatchViewopenmeta::TransferAdapterSinkopenmeta::TransferByteWriteropenmeta::TransferProfileopenmeta::TransferTimePatchInputopenmeta::URationalopenmeta::ValidateIssueopenmeta::ValidateOptionsopenmeta::ValidatePreparedC2paSignResultopenmeta::ValidateResultopenmeta::WebpTransferEmitteropenmeta::WireTypeopenmeta::XmpDecodeLimitsopenmeta::XmpDecodeOptionsopenmeta::XmpDecodeResultopenmeta::XmpDumpLimitsopenmeta::XmpDumpOptionsopenmeta::XmpDumpResultopenmeta::XmpPortableOptionsopenmeta::MetaKey::Data::XmpPropertyopenmeta::MetaKeyView::Data::XmpPropertyopenmeta::XmpSidecarOptionsopenmeta::XmpSidecarRequestopenmeta