Low latency real-time audio streaming
AssigneeMicrosoft Corporation
InventorFrank Berreth
Life of this patent
Estimating the term…
Abstract
Systems and methods for audio streaming in a computing device are described. In one aspect an interface to an adapter driver is provided. The adapter driver is associated with an audio device. The adapter driver and a wave real-time (WaveRT) port driver associated with the computing device use the interface to configure direct access by a client of the computing device and by the audio device to a cyclic buffer. The direct access is for rendering and/or capturing an audio stream. The direct access is independent of any copying by a port driver on the computer system of the audio stream to any buffer.
Claims20
A computing device comprising:
- configuring means to configure, by an adapter driver associated with an audio device and a wave real-time port driver associated with the computing device, direct access by a client of the computing device and by the audio device to a cyclic buffer for rendering and/or capturing an audio stream;
- requesting means to map a play position register that includes a play position register value to a virtual memory address that is accessible in user mode;
- and
- monitoring means to monitor hardware position register values that include the play position value to determine latency between a write position and a play position in the cyclic buffer without transitioning between the user mode and kernel mode by accessing the play position register via the virtual memory address in the user mode.
A method for audio streaming in a computing device comprising:
- configuring, by an adapter driver associated with an audio device and a wave real-time port driver associated with the computing device, direct access by a client of the computing device and by the audio device to a cyclic buffer for rendering and/or capturing an audio stream;
- mapping a play position register that includes a play position register value to a virtual memory address that is accessible in user mode;
- and
- monitoring hardware position register values that include the play position value to determine latency between a write position and a play position in the cyclic buffer without transitioning between the user mode and kernel mode by accessing the play position register via the virtual memory address in the user mode.
A computer-readable medium having stored thereon computer-program instructions for audio streaming in a computing device, the computer-program instructions being executable by a processor, the computer-program instructions comprising instructions for:
- configuring, by an adapter driver associated with an audio device and a wave real-time port driver associated with the computing device, direct access by a client of the computing device and by the audio device to a cyclic buffer for rendering and/or capturing an audio stream;
- monitoring hardware position register values to determine latency between a write position and a play position in the cyclic buffer, the monitoring not requiring a transition from kernel-mode;
- obtaining clock register values;
- and
- synchronizing audio streams between the audio device and a second audio device as a function of the clock register values, the first and second audio devices having respective and unsynchronized hardware clock registers.
Dependencies are inferred from the claim text.