Back to results
US 7,774,077 B1Granted
Sequence grabber for audio content
AssigneeApple Inc.
InventorBradley D. Ford
Life of this patent
Estimating the term…
Abstract
An audio context object gathers multiple channels of audio data from an audio device and stores each channel of data separately in a ring buffer. Clients of the audio context can request any number of channels of data at any interval from the audio context. Multiple clients can share the same audio device. The ring buffer used by the audio context object stores the channels of audio data in a two-dimensional array such that each channel of audio data is stored in contiguous memory.
Claims25
A method of providing selected channels of audio data to clients, the method comprising:
- receiving an audio stream comprising multiple channels of audio data, wherein the multiple channels of audio data, when combined, constitute an overall audio composition;
- wherein receiving said audio stream comprises:
- receiving, at a first time, a first push of audio data comprising audio data of each channel of the multiple channels, and
- receiving, at a second time after said first time, a second push of audio data comprising audio data of each channel of the multiple channels;
- storing each channel of the audio stream in a separate section of a buffer;
- wherein the buffer comprises a plurality of sections;
- wherein each section of the plurality of sections stores audio data of only one channel of the multiple channels;
- wherein each channel of the multiple channels is stored in only one section of the plurality of sections;
- wherein storing each channel of the audio stream in a separate section of the buffer comprises:
- for each audio data of each channel from the first push of audio data, storing a copy of the each audio data in the section of buffer that stores audio data of the each channel, and
- for each audio data of each channel from the second push of audio data, storing a copy of the each audio data in the section of the buffer that stores audio data of the each channel;
- receiving a first request from a first client for audio data of a requested channel of the multiple channels;
- receiving a second request from a second client for audio data of the requested channel of the multiple channels;
- wherein the first client is different from the second client;
- wherein the first request and the second request are distinct requests received at distinct times;
- and
- for the first request, providing, to the first client, audio data of the requested channel from:
- (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and
- (b) the copy of the audio data of the requested channel from the second push of audio data stored in the section of the buffer in which audio data for the requested channel is stored;
- for the second request, providing, to the second client, audio data of the requested channel from:
- (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and
- (b) the copy of the audio data of the requested channel from the second push of audio data stored in the section of the buffer in which audio data for the requested channel is stored;
- wherein the method is performed by one or more computing devices.
20 more elements
A computer apparatus comprising:
- a memory;
- and
- one or more processors coupled to the memory and configured to execute one or more sequence of instructions for providing audio to multiple clients, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
- receiving an audio stream comprising multiple channels of audio data, wherein the multiple channels of audio data, when combined, constitute an overall audio composition;
- wherein receiving said audio stream comprises:
- receiving, at a first time, a first push of audio data comprising audio data of each channel of the multiple channels, and
- receiving, at a second time after said first time, a second push of audio data comprising audio data of each channel of the multiple channels;
- storing each channel of the audio stream in a separate section of a buffer;
- wherein the buffer comprises a plurality of sections;
- wherein each section of the plurality of sections stores audio data of only one channel of the multiple channels;
- wherein each channel of the multiple channels is stored in only one section of the plurality of sections;
- wherein storing each channel of the audio stream in a separate section of the buffer comprises:
- for each audio data of each channel from the first push of audio data, storing a copy of the each audio data in the section of buffer that stores audio data of the each channel, and
- for each audio data of each channel from the second push of audio data, storing a copy of the each audio data in the section of the buffer that stores audio data of the each channel;
- receiving a first request from a first client for audio data of a requested channel of the multiple channels;
- receiving a second request from a second client for audio data of the requested channel of the multiple channels;
- wherein the first client is different from the second client;
- wherein the first request and the second request are distinct requests received at distinct times;
- and
- for the first request, providing, to the first client, audio data of the requested channel from:
- (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and
- (b) the copy of the audio data of the requested channel from the second push of audio data stored in from the section of the buffer in which audio data for the requested channel is stored;
- for the second request, providing, to the second client, audio data of the requested channel from:
- (a) the copy of the audio data of the requested channel from the first push of audio data stored in the section of the buffer in which audio data for the requested channel is stored, and
- (b) the copy of the audio data of the requested channel from the second push of audio data stored in the section of the buffer in which audio data for the requested channel is stored.
22 more elements
Dependencies are inferred from the claim text.