Synchronization of independent output streams
First Claim
Patent Images
1. A system for synchronizing independent output streams, comprising:
- at least one non-transitory storage medium storing instructions; and
at least one processing unit that executes the instructions stored in the at least one non-transitory storage medium to;
determine to render at least two output streams that are to be synchronized using at least first and second independent renderers;
provide the first and second independent renderers a shared synchronization object when instructing the first and second independent renderers to render a respective one of the at least two output streams;
determine, from the shared synchronization object, a render time when all of the first and second independent renderers can render based on a latest of a first time and a second time; and
begin rendering the at least two output streams at the render time utilizing the first and second independent renderers;
whereinthe shared synchronization object includes the first time and the second time;
the first time is added to the shared synchronization object by the first independent renderer;
the second time is added to the shared synchronization object by the second independent renderer;
the first time indicates when the first independent renderer can first render a first respective buffer; and
the second time indicates when the second independent renderer can first render a second respective buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
A system determines to use at least two independent renderers to render at least two output streams that are to be synchronized. The independent renderers are provided with a shared synchronization object when instructed to render the respective output stream. A time when all of the independent renderers can render a respective first buffer of the respective output stream is determined from the shared synchronization object. Rendering of the output streams utilizing the independent renderers is begun at the determined time. In this way, rendering of the output streams may be synchronized.
41 Citations
20 Claims
-
1. A system for synchronizing independent output streams, comprising:
-
at least one non-transitory storage medium storing instructions; and at least one processing unit that executes the instructions stored in the at least one non-transitory storage medium to;
determine to render at least two output streams that are to be synchronized using at least first and second independent renderers;provide the first and second independent renderers a shared synchronization object when instructing the first and second independent renderers to render a respective one of the at least two output streams; determine, from the shared synchronization object, a render time when all of the first and second independent renderers can render based on a latest of a first time and a second time; and begin rendering the at least two output streams at the render time utilizing the first and second independent renderers;
whereinthe shared synchronization object includes the first time and the second time; the first time is added to the shared synchronization object by the first independent renderer; the second time is added to the shared synchronization object by the second independent renderer; the first time indicates when the first independent renderer can first render a first respective buffer; and the second time indicates when the second independent renderer can first render a second respective buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for synchronizing independent output streams, the method comprising:
-
determining to render at least two output streams that are to be synchronized using at least first and second independent renderers; providing the first and second independent renderers a shared synchronization object when instructing the first and second independent renderers to render a respective one of the at least two output streams; determining, from the shared synchronization object, a render time when all of the first and second independent renderers can render based on a latest of a first time and a second time; and beginning rendering the at least two output streams at the render time utilizing the first and second independent renderers;
whereinthe shared synchronization object includes the first time and the second time; the first time is added to the shared synchronization object by the first independent renderer; the second time is added to the shared synchronization object by the second independent renderer; the first time indicates when the first independent renderer can first render a first respective buffer; and the second time indicates when the second independent renderer can first render a second respective buffer.
-
-
20. A computer program product, tangibly embodied in at least one non-transitory storage medium, comprising:
-
a first set of instructions, stored in at least one non-transitory storage medium, executable by at least one processing unit to determine to render at least two output streams that are to be synchronized using at least first and second independent renderers; a second set of instructions, stored in the at least one non-transitory storage medium, executable by the at least one processing unit to provide the first and second independent renderers a shared synchronization object when instructing the first and second independent renderers to render a respective one of the at least two output streams; a third set of instructions, stored in the at least one non-transitory storage medium, executable by the at least one processing unit to determine, from the shared synchronization object, a render time when all of the first and second independent renderers can render based on a latest of a first time and the second time; and a fourth set of instructions, stored in the at least one non-transitory storage medium, executable by the at least one processing unit to begin rendering the at least two output streams at the render time utilizing the first and second independent renderers;
whereinthe shared synchronization object includes the first time and the second time; the first time is added to the shared synchronization object by the first independent renderer; the second time is added to the shared synchronization object by the second independent renderer; the first time indicates when the first independent renderer can first render a first respective buffer; and the second time indicates when the second independent renderer can first render a second respective buffer.
-
Specification