Patent ID: 7577940

Claim:
A method of supporting and dynamically managing media pipeline topology changes during a media application session to facilitate seamless presentation of media during dynamic changes, the method comprising: accessing a highest priority time source as a main presentation clock to which all clock-aware components synchronize; receiving a partial media pipeline topology that defines how data flows through a plurality of nodes in the partial media pipeline topology including at least a first media source node and at least a first media sink node; retrieving a cached media pipeline topology when the partial media pipeline topology is not sufficient to permit presentation to further define how data flows through a plurality of nodes in the partial media pipeline topology including at least a second media source node, at least a second media sink node, and at least one transform node; cloning one or more nodes including state information from the cached media pipeline topology to the partial media pipeline topology during the media application session thus creating a full media pipeline topology to facilitate the seamless presentation of media; maintaining a data table that correlates one or more decoders or encoders in the cached media pipeline topology with one or more source nodes or destination nodes in the cached media pipeline topology; associating a source node with a same instance of a decoder and requiring that the same decoder be used if a media source node is re-used in a subsequent topology or a destination node with a same instance of an encoder and requiring that the same encoder be used if a media destination node is re-used in a subsequent topology; facilitating the seamless presentation of media by pre-rolling, the pre-rolling comprising receiving data from the first media source node at the first media sink node before the first media sink node starting a presentation clock synchronized with the main presentation clock; and executing the seamless presentation of media by a computing device.