Using a plurality of buffers to provide audio for synchronized playback to multiple audio devices having separate device clocks
US-9176706-B2 · Nov 3, 2015 · US
US9569169B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9569169-B2 |
| Application number | US-201514930601-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 2, 2015 |
| Priority date | Jun 25, 2004 |
| Publication date | Feb 14, 2017 |
| Grant date | Feb 14, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
According to one embodiment, a media system communicates with an aggregate device that includes multiple media output devices. When providing media data for presentation, the system adjusts for device clock drift by resampling the media data provided to a media output device based at least in part on a device clock rate difference between a device clock of one of the media output devices and a device clock of another of the media output devices.
Opening claim text (preview).
The invention claimed is: 1. A method comprising: reading, by a device-side audio handling input/output unit (DIO) of an audio playback device, audio data from a buffer at a DIO position of the buffer during playing back audio from the buffer; wrapping the DIO position to a start of the buffer upon reaching an end of the buffer; generating timestamp information usable by a system-side audio handling input/output unit (SIO) to estimate the DIO position, the timestamp information including a clock time of a central processing unit (CPU) clock of the SIO and an indication of which audio samples have been processed by the DIO; and providing the timestamp information by the DIO to the SIO. 2. The method of claim 1 , wherein the buffer is a ring buffer. 3. The method of claim 1 , wherein the SIO is an audio hardware abstraction layer provided in a core audio framework of an operating system. 4. The method of claim 1 , wherein generating the timestamp information occurs at time the DIO performs the wrapping. 5. The method of claim 1 , wherein the timestamp information is further usable by the SIO to determine an insertion point, the insertion point including a point at which to insert audio data with the buffer. 6. An audio playback device comprising: a device-side audio handling input/output unit (DIO); and a non-transitory computer-readable medium storing instructions operable to cause the DIO to perform operations comprising: reading audio data from a buffer at a DIO position of the buffer during playing back audio from the buffer; wrapping the DIO position to a start of the buffer upon reaching an end of the buffer; generating timestamp information usable by a system-side audio handling input/output unit (SIO) to estimate the DIO position, the timestamp information including a clock time of a central processing unit (CPU) clock of the SIO and an indication of which audio samples have been processed by the DIO; and providing the timestamp information by the DIO to the SIO. 7. The audio playback device of claim 6 , wherein the buffer is a ring buffer. 8. The audio playback device of claim 6 , wherein the SIO is an audio hardware abstraction layer provided in a core audio framework of an operating system. 9. The audio playback device of claim 6 , wherein generating the timestamp information occurs at time the DIO performs the wrapping. 10. The audio playback device of claim 6 , wherein the timestamp information is further usable by the SIO to determine an insertion point, the insertion point including a point at which to insert audio data with the buffer. 11. A non-transitory computer-readable medium storing instructions operable to cause a device-side audio handling input/output unit (DIO) to perform operations comprising: reading, by a device-side audio handling input/output unit (DIO) of an audio playback device, audio data from a buffer at a DIO position of the buffer during playing back audio from the buffer; wrapping the DIO position to a start of the buffer upon reaching an end of the buffer; generating timestamp information usable by a system-side audio handling input/output unit (SIO) to estimate the DIO position, the timestamp information including a clock time of a central processing unit (CPU) clock of the SIO and an indication of which audio samples have been processed by the DIO; and providing the timestamp information by the DIO to the SIO. 12. The non-transitory computer-readable medium of claim 11 , wherein the buffer is a ring buffer. 13. The non-transitory computer-readable medium of claim 11 , wherein the SIO is an audio hardware abstraction layer provided in a core audio framework of an operating system. 14. The non-transitory computer-readable medium of claim 11 , wherein generating the timestamp information occurs at time the DIO performs the wrapping. 15. The non-transitory computer-readable medium of claim 11 , wherein the timestamp information is further usable by the SIO to determine an insertion point, the insertion point including a point at which to insert audio data with the buffer.
involving video buffer management, e.g. video decoder buffer or video display buffer · CPC title
involving special audio data, e.g. different tracks for different languages · CPC title
in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title
{embedded in a} Personal Computer [PC] · CPC title
Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.