A catalog update might contain incremental changes. This is a useful property if many tracks may be initially declared but then there are small changes to a subset of tracks. The producer can issue a delta update to describe these changes. Changes are described incrementally, meaning that a delta update can itself modify a prior delta update.
A restricted set of operations are allowed with each delta update: * Add a new track that has not previously been declared. * Add a new track by cloning a previously declared track. * Remove a track that has been previously declared.
The following rules are to be followed in constructing and processing delta updates:
-
A delta update MUST include the Delta Update Section 5.1.6 field with at least one operation. It MUST NOT contain an instance of a Tracks Section 5.1.4 field or an MSF version Section 5.1.1 field.
-
Operations are applied sequentially in the order they appear in the deltaUpdate array. Each operation is applied to the target document; the resulting document becomes the target of the next operation. Evaluation continues until all operations are successfully applied.
-
The tuple of Track Namespace and Track Name defines a fixed set of Track attributes which MUST NOT be modified after being declared. To modify any attribute, a new track with a different Namespace|Name tuple is created by Adding or Cloning and then the old track is removed.
-
Producers that publish frequent delta updates SHOULD periodically publish a new independent catalog in a new MOQT Group in order to bound the amount of delta processing required for joining subscribers.