Mechanism for retrieval of previously captured audio
AssigneeApple Inc.
InventorsJeffrey C. Moore, Richard M. Powell, Alexander C. Powers, Anthony J. Guetta
Life of this patent
Estimating the term…
Abstract
In one aspect a device-side audio handling input/output unit (DIO) of a hardware device writes audio data generated by the hardware device within a ring buffer. An input provided by a user for activation of a software program is received, and a notification that the software program is ready to accept the audio data is generated. A system-side audio handling input/output unit (SIO) additionally provides past audio data from the ring buffer to the software program. Other aspects also are described.
Claims20
A method performed by an audio unit, the method comprising:
- writing, by a device-side audio handling input/output unit (DIO) for a hardware device, audio data generated by the hardware device at a DIO position into a ring buffer;
- providing past audio data from the ring buffer to a system-side audio handling input/output unit (SIO) of a portable device, over a wired or wireless connection with the portable device, wherein the past audio data starts from an SIO position that is behind the DIO position in the ring buffer,
- wherein the SIO puts a client thread of a software program to sleep until the DIO position is ahead of the SIO position by at least a client-side offset, and when the DIO position is ahead of the SIO position by at least the client-side offset the SIO awakens the client thread of the software program;
- and
- after providing the past audio data and catching up to real-time audio data being written into the ring buffer, providing real-time audio data from the ring buffer to the SIO of the portable device, over the wired or wireless connection, and the SIO provides the real-time audio data to the software program.
A portable device comprising
- a wired or wireless communications transceiver and
- one or more processors configured to:
- obtain access to a wired or wireless connection with an audio unit via the transceiver, wherein the audio unit has a hardware device, a ring buffer, and a device-side input/output unit (DIO) for the hardware device, wherein the DIO writes audio data generated by the hardware device at a DIO position within the ring buffer;
- receive a request from a software program executed by the portable device to consume past audio data;
- receive past audio data from the ring buffer in the audio unit, over the wired or wireless connection, wherein the received past audio data starts from a system side input/output unit (SIO) position which is behind the DIO position within the ring buffer, and provide the received past audio data to the software program;
- after providing the received past audio data to the software program, put a client thread of the software program to sleep until the DIO position is ahead of the SIO position by at least a client-side offset;
- and
- when the DIO position is ahead of the SIO position by at least the client-side offset, awaken the client thread of the software program, receive real-time audio data starting from the SIO position in the ring buffer of the audio unit, and provide the real-time audio data to the software program.
An audio unit comprising:
- a wired or wireless communications transceiver and
- one or more processors configured to:
- write, by a device-side input/output unit (DIO) for a hardware device, audio data generated by the hardware device at a DIO position into a ring buffer;
- provide past audio data from the ring buffer to a system-side input/output unit (SIO) of a portable device, over a wired or wireless connection with the portable device through the transceiver, wherein the past audio data starts from an SIO position that is behind the DIO position in the ring buffer,
- wherein the SIO puts a client thread of a software program to sleep until the DIO position is ahead of the SIO position by at least a client-side offset, and when the DIO position is ahead of the SIO position by at least the client-side offset the SIO awakens the client thread of the software program;
- and
- after providing the past audio data, providing real-time audio data from the ring buffer to the SIO of the portable device, over the wired or wireless connection, and the SIO provides the real-time audio data to the software program.
Dependencies are inferred from the claim text.