Skip to content

Commit 06c0529

Browse files
committed
Normalize and promote legacy Adobe XMP children
Add normalization and promotion for legacy Adobe structured XMP child prefixes and nested grandchild prefixes. Introduces helpers to recognize stRef/stDim/stJob/stFnt/stMfs/stVer/stEvt and xmpG components, map malformed Adobe child paths to canonical sType prefixes, and resolve existing structured/nested components to portable names. Treat xmpDM:Tracks as a Bag and canonicalize its structured children (e.g. trackName, markers/name) while avoiding duplicate promotion when explicit portable entries exist. Update xmp_dump header docs and add unit tests covering promotion of legacy prefixes and canonicalization of xmpDM Tracks.
1 parent 035e517 commit 06c0529

5 files changed

Lines changed: 1253 additions & 63 deletions

File tree

src/include/openmeta/xmp_dump.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ struct XmpPortableOptions final {
102102
/// `beatSpliceParams/riseInTimeDuration/scale`,
103103
/// `markers/cuePointParams/key`,
104104
/// `contributedMedia[1]/duration/scale`,
105+
/// `Tracks[1]/trackName`,
106+
/// `Tracks[1]/markers/name`,
105107
/// `resampleParams/quality`,
106108
/// `startTimecode/timeValue`,
107109
/// `timeScaleParams/quality`,
@@ -121,6 +123,10 @@ struct XmpPortableOptions final {
121123
/// `Creator[1]/Name` and `Creator[1]/Role` are also promoted into the
122124
/// canonical `lang-alt` or indexed shapes when no explicit canonical
123125
/// child entries already exist.
126+
/// Known malformed Adobe structured child paths like
127+
/// `DerivedFrom/documentID`, `JobRef[1]/id`,
128+
/// `Manifest[1]/reference/filePath`, and `Versions[1]/event/action`
129+
/// are likewise promoted into their canonical qualified child prefixes.
124130
/// The same bounded promotion applies to known second-level standard
125131
/// shapes like `CreatorContactInfo/CiAdrRegion/ProvinceName` and
126132
/// `CreatorContactInfo/CiAdrRegion/ProvinceCode`.

0 commit comments

Comments
 (0)