System for synchronization with nonstreaming device controller and a streaming data handler each supplying current location for synchronizing slave data and master data flow
First Claim
1. An apparatus for synchronizing the presentation of streaming and non-streaming data within at least one output device, said apparatus comprising:
- comparison means for comparing a current temporal location of non-streaming data being transferred to said at least one output device with a current temporal location of streaming data being transferred to said at least one output device to determine a synchronization-mismatch value, wherein one of said non-streaming data and said streaming data comprises a master data flow and the other of said non-streaming data and said streaming-data comprises a slave data flow;
synchronization means for synchronizing said current temporal location of said slave data flow with said current temporal location of said master data flow based on said synchronization-mismatch value, wherein said synchronization means includes a non-streaming device controller that controls a rate at which said non-streaming data is transferred to said at least one output device and supplies information indicative of said current temporal location of said non-streaming data to said comparison means;
a streaming data handler, wherein said streaming data handler receives said streaming data from at least one streaming data source and outputs said streaming data to said at least one output device, and wherein said streaming data handler supplies information indicative of said current temporal location of said streaming data to said comparison means, said streaming data handler including;
at least one data buffer;
an output device driver;
first transfer means for loading said streaming data into said at least one data buffer as a first data stream; and
second transfer means for extracting said streaming data from said data buffer as a second data stream and for transferring said streaming data to said output device driver, said first and second transfer means interoperating to ensure a continuous queue of streaming data in said data buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed are apparatus and methods for synchronized presentation of analog and digital data by applying a common synchronization scheme to both types of data. Digital data is "streamed" by transferring the data in blocks from a source to a series of memory buffers, where it accumulates for subsequent transfer to an output device driver. The control module responsible for data streaming periodically reports a temporal location within the presentation represented by the data. A supervisory module designates one of the control modules a "master", and periodically compares the values reported by the various other control modules against that reported by the master. If a comparison exceeds a threshold tolerance value associated with each control module, a sync pulse is delivered to that control module, causing it to correct the synchronization mismatch.
This approach is applied to analog sources through the use of control modules that behave in a manner consistent with the digital control modules, but which are capable of directing the operation of analog devices and re-establishing their synchronization with other data sources despite limited modes of device control. Specifically, the control modules that handle analog information also periodically report a presentation location based solely on temporal information, react to sync pulses by altering the playback rate of the analog devices they control within user-tolerable limits, and can act as master control modules.
-
Citations
15 Claims
-
1. An apparatus for synchronizing the presentation of streaming and non-streaming data within at least one output device, said apparatus comprising:
-
comparison means for comparing a current temporal location of non-streaming data being transferred to said at least one output device with a current temporal location of streaming data being transferred to said at least one output device to determine a synchronization-mismatch value, wherein one of said non-streaming data and said streaming data comprises a master data flow and the other of said non-streaming data and said streaming-data comprises a slave data flow; synchronization means for synchronizing said current temporal location of said slave data flow with said current temporal location of said master data flow based on said synchronization-mismatch value, wherein said synchronization means includes a non-streaming device controller that controls a rate at which said non-streaming data is transferred to said at least one output device and supplies information indicative of said current temporal location of said non-streaming data to said comparison means; a streaming data handler, wherein said streaming data handler receives said streaming data from at least one streaming data source and outputs said streaming data to said at least one output device, and wherein said streaming data handler supplies information indicative of said current temporal location of said streaming data to said comparison means, said streaming data handler including; at least one data buffer; an output device driver; first transfer means for loading said streaming data into said at least one data buffer as a first data stream; and second transfer means for extracting said streaming data from said data buffer as a second data stream and for transferring said streaming data to said output device driver, said first and second transfer means interoperating to ensure a continuous queue of streaming data in said data buffer. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A presentation system that synchronizes the presentation of streaming and non-streaming data, said presentation system comprising:
-
a streaming data source that produces streaming data and a non-streaming data source that produces non-streaming data; at least one output device for presenting said streaming and said non-streaming data; comparison means for comparing a current temporal location of said non-streaming data with a current temporal location of streaming data to determine a synchronization-mismatch value, wherein one of said non-streaming data and said streaming data comprises a master data flow and the other of said non-streaming data and said streaming-data comprises a slave data flow; synchronization means for synchronizing said current temporal location of said slave data flow with said current temporal location of said master data flow based on said synchronization-mismatch value, wherein said synchronization means includes a non-streaming device controller that controls a rate at which said non-streaming data is transferred to said at least one output device and supplies information indicative of said current temporal location of said non-streaming data to said comparison means; a streaming data handler, wherein said streaming data handler receives said streaming data from at least one streaming data source and outputs said streaming data to said at least one output device, and wherein said streaming data handler supplies information indicative of said current temporal location of said streaming data to said comparison means, said streaming data handler including; at least one data buffer; an output device driver; first transfer means for loading said streaming data into said at least one data buffer as a first data stream; and second transfer means for extracting said streaming data from said data buffer as a second data stream and for transferring said streaming data to said output device driver, said first and second transfer means interoperating to ensure a continuous queue of streaming data in said data buffer. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product for use with a data processing system having at least one output device and sources of streaming and non-streaming data, said computer program product comprising:
-
comparison instruction code for causing said data processing system to compare a current temporal location of non-streaming data being transferred to said at least one output device with a current temporal location of streaming data being transferred to said at least one output device to determine a synchronization-mismatch value, wherein one of said non-streaming data and said streaming data comprises a master data flow and the other of said non-streaming data and said streaming-data comprises a slave data flow; synchronization instruction code for causing said data processing system to synchronize said current temporal location of said slave data flow with said current temporal location of said master data flow based on said synchronization-mismatch value, wherein said synchronization instruction code includes a non-streaming device controller that controls a rate at which said non-streaming data is transferred to said at least one output device and supplies information indicative of said current temporal location of said non-streaming data to said comparison instruction code; a streaming data handler, wherein said streaming data handler receives said streaming data from at least one streaming data source and outputs said streaming data to said at least one output device, and wherein said streaming data handler supplies information indicative of said current temporal location of said streaming data to said comparison instruction code, said streaming data handler including; an output device driver; first transfer means for loading said streaming data into a data buffer as a first data stream; and second transfer means for extracting said streaming data from said data buffer as a second data stream and for transferring said streaming data to said output device driver, said first and second transfer means interoperating to ensure a continuous queue of streaming data in the data buffer; and signal bearing media bearing said comparison instruction code, said synchronization instruction code, and said streaming data handler. - View Dependent Claims (12, 13, 14, 15)
-
Specification