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.