Managing topology changes in media applications
First Claim
Patent Images
1. 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.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for resolving a partial topology are disclosed. In one embodiment a media engine includes a topology loader module that receives a partial topology from another module associated with the media engine. The topology loader implements logic operations that convert a partial topology into a full topology, which may be returned to the media engine for presentation of the media stream(s) to a user.
-
Citations
27 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
one or more computer-readable storage media; and a media engine embodied on the one or more computer-readable storage media and configured to communicatively interact with an application to facilitate seamless presentation of media; the media engine being configured to communicatively interact with the application to facilitate the seamless presentation of media by using; a highest priority time source as a main presentation clock to which all clock-aware components synchronize; a media session configured to; receive 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; and retrieve 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; and a topology loader configured to; clone one or more nodes including state information from the cached media pipeline topology to the partial media pipeline topology during a media application session thus creating a full media pipeline topology to facilitate the seamless presentation of media; maintain 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; associate 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; and facilitate 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 staffing a presentation clock synchronized with the main presentation clock. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. One or more computer-readable storage media storing computer executable instructions comprising instructions that, when executed on a computer, direct the computer to:
-
access a highest priority time source as a main presentation clock to which all clock-aware components synchronize; receive 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; retrieve 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; clone one or more nodes including state information from the cached media pipeline topology to the partial media pipeline topology during a media application session thus creating a full media pipeline topology to facilitate seamless presentation of media; maintain 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; associate 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; facilitate 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 execute the seamless presentation of media. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A topology loader module comprising computer executable instructions stored in computer-readable storage media that, when executed by a computer, provide:
-
means for accessing a highest priority time source as a main presentation clock to which all clock-aware components synchronize; means for 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; means for 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; means for cloning one or more nodes including state information from the cached media pipeline topology to the partial media pipeline topology during a media application session thus creating a full media pipeline topology to facilitate seamless presentation of media; means for 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; means for 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; means for 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 staffing a presentation clock synchronized with the main presentation clock; and means for executing the seamless presentation of media.
-
Specification