Methods and systems for synchronizing data streams
First Claim
1. A method comprising:
- providing at least one time-stamped data stream that is to be rendered in accordance with data stream timestamps; and
synchronizing said at least one time-stamped data stream relative to a reference by adjusting one or more timestamps of said at least one time-stamped data stream.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems are provided for synchronizing various time-stamped data streams. The data streams can be synchronized to another data stream or to a point of reference such as a reference clock. In one embodiment, synchronization processing takes place in association with a filter graph comprising multiple filters. The filter graph is configured to process multiple timestamped data streams for rendering the data streams in accordance with data stream timestamps. A synchronization module is provided and is associated with the filter graph queries individual filters of the filter graph to ascertain input timestamp-to-output timestamp mappings. The module computes adjustments that are to be made to output timestamps in order to synchronize the data streams, and then instructs queried filters to adjust their output timestamps in accordance with its adjustment computations.
120 Citations
46 Claims
-
1. A method comprising:
-
providing at least one time-stamped data stream that is to be rendered in accordance with data stream timestamps; and
synchronizing said at least one time-stamped data stream relative to a reference by adjusting one or more timestamps of said at least one time-stamped data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
providing a filter graph comprising multiple filters, the filter graph being configured to process multiple timestamped data streams for rendering the data streams in accordance with data stream timestamps; and
synchronizing said at least one time-stamped data stream relative to a reference by adjusting one or more timestamps of said at least one time-stamped data stream. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
-
providing a filter graph comprising multiple filters, the filter graph being configured to process multiple timestamped data streams for rendering the data streams in accordance with data stream timestamps;
providing a synchronization module associated with the filter graph, the synchronization module being configured to;
query individual filters of the filter graph to ascertain input timestamp-to-output timestamp mappings, compute adjustments that are to be made to output timestamps in order to synchronize the data streams, and instruct individual queried filters to adjust their output timestamps in accordance with computed adjustments;
querying individual filters of the filter graph, using the synchronization module, to ascertain input timestamp-to-output timestamp mappings;
computing, based on the ascertained input timestamp-to-output timestamp mappings, adjustments that are to be made to output timestamps in order to synchronize the data streams; and
synchronizing the data streams by instructing one or more of the queried filters to adjust their output timestamps in accordance with the computed adjustments. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. An architecture comprising:
-
a filter graph comprising multiple filters, the filter graph being configured to process multiple timestamped data streams for rendering the data streams in accordance with data stream timestamps; and
a synchronization module associated with the filter graph, the synchronization module being configured to;
query individual filters of the filter graph to ascertain input timestamp-to-output timestamp mappings, compute adjustments that are to be made to output timestamps in order to synchronize the data streams, and instruct the queried filters to adjust their output timestamps in accordance with its adjustment computations. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. One or more computer-readable media having computer-readable instructions thereon which, when executed by one or more processors, cause the one or more processors to:
-
query one or more filters configured to process timestamped data streams for each filter'"'"'s input timestamp-to-output timestamp mapping;
receive responses from the queried filters;
extrapolate one or more lines characterizing an individual mapping to a selected input timestamp value;
calculate a skip value for one or more of the lines, a skip value representing a value by which the output timestamps for a given filter are to be corrected; and
provide instructions to one or more of the filters to adjust their output timestamps in accordance with an associated skip value. - View Dependent Claims (36, 37, 38, 39, 40)
-
-
41. One or more computer-readable media having computer-readable instructions thereon which, when executed by one or more processors, cause the one or more processors to:
-
define a skip value tolerance that can be used to ascertain when synchronization processing of multiple data streams should take place;
ascertain whether any input timestamp-to-output timestamp mappings associated with any of the multiple data streams meet or exceed the skip value tolerance; and
synchronize the multiple data streams if any input timestamp-to-output timestamp mappings meet or exceed the skip value tolerance. - View Dependent Claims (42, 43, 44, 45, 46)
-
Specification