Creates and registers MoqSourceState the moment a source with a MoQ resource is added,
rather than waiting for MoqManifestPlaybackTechnologyTask's instantiate (itself only resolved
once ChainResolver picks MoQ as the technology, some delay after the source is added). Every
input createMoqSourceStateAtom needs (relay/namespace/overrides from the Resource, the rest
from MoqConfig) is available synchronously here - there's no network round-trip to wait for.
This is what lets MoqSourceState be declared as a real dependency everywhere it's read (see
MoqApiPackage, MoqManifestPlaybackTechnologyTask) instead of a deliberately-unlisted key
requiring a widened as unknown as cast at each read site.
MoqSourceState.package
Creates and registers MoqSourceState the moment a source with a MoQ resource is added, rather than waiting for MoqManifestPlaybackTechnologyTask's instantiate (itself only resolved once ChainResolver picks MoQ as the technology, some delay after the source is added). Every input createMoqSourceStateAtom needs (relay/namespace/overrides from the Resource, the rest from MoqConfig) is available synchronously here - there's no network round-trip to wait for.
This is what lets MoqSourceState be declared as a real dependency everywhere it's read (see MoqApiPackage, MoqManifestPlaybackTechnologyTask) instead of a deliberately-unlisted key requiring a widened
as unknown ascast at each read site.MoqSourceStatePackage Dependency Graph