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 time stamps in order
to synchronize the data streams, and then instructs queried filters to adjust their
output timestamps in accordance with its adjustment computations.