Mix buffers and command queues for audio blocks
AssigneeMicrosoft Corporation
InventorsJohn A. Tardif, Brian Lloyd Schmidt, Sunil Kumar Vemula, Robert N. Heitkamp
Life of this patent
Estimating the term…
Abstract
The subject disclosure is directed towards a technology that may be used in an audio processing environment. Nodes of an audio flow graph are associated with virtual mix buffers. As the flow graph is processed, commands and virtual mix buffer data are provided to audio fixed-function processing blocks. Each virtual mix buffer is mapped to a physical mix buffer, and the associated command is executed with respect to the physical mix buffer. One physical mix buffer mix buffer may be used as an input data buffer for the audio fixed-function processing block, and another physical mix buffer as an output data buffer, for example.
Claims20
A method comprising, processing an allocation command corresponding to a virtual mix buffer associated with audio data to be processed, including allocating a physical mix buffer for the virtual mix buffer, providing an identifier of the physical mix buffer to an audio subsystem block, providing an audio processing-related command to the audio subsystem block, and using the physical mix buffer at the audio subsystem block for processing audio data based upon the audio processing-related command.
In a computing environment, a system comprising, a mix buffer component configured to receive an allocation command that corresponds to a node in an audio flow graph and a virtual mix buffer associated with that node, the mix buffer component further configured to allocate a physical buffer for the virtual mix buffer, and to provide access to the physical buffer to a fixed-function audio processing component of a set of one or more fixed-function audio processing components.
One or more computer-readable media having computer-executable instructions, which when executed perform steps, comprising:
- (a) receiving at an audio fixed-function processing block a command queue comprising a plurality of commands;
- (b) selecting a command from the queue as a selected command;
- (c) preparing to execute the selected command, including determining whether input audio data associated with the selected command is ready for processing by the audio fixed-function processing block, and determining whether an output buffer associated with the selected command is ready to receive processed data;
- (d) if the input data is not ready or the output buffer is not ready, selecting another command from the queue as the selected command and returning to step (c);
- and
- (e) executing the command, including processing the input data at the audio fixed-function processing block into output data for the output buffer.
Dependencies are inferred from the claim text.