Kernel-mode audio processing modules
First Claim
Patent Images
1. One or more computer-readable media having stored thereon a module including a plurality of instructions for execution in kernel-mode that, when executed in kernel-mode by one or more processors of a computer, causes the one or more processors to perform acts including:
- receiving a data packet including audio data;
determining a difference between a current reference time and a presentation time of the data packet, wherein the current reference time is used by the module and at least one other module stored on the computer-readable media to maintain synchronization between the module and the at least one other module, and wherein the presentation time indicates a time that the audio data is to be played back;
recording the determined difference;
rendering the data packet if the presentation time is equal to or earlier than the current reference time; and
queuing the data packet until the presentation time is equal to the current reference time if the presentation time is later than the current reference time.
1 Assignment
0 Petitions
Accused Products
Abstract
Multiple kernel-mode audio processing modules or filters are combined to form a module or filter graph. The graph is implemented in kernel-mode, reducing latency and jitter when handling audio data (e.g., MIDI data) by avoiding transfers of the audio data to user-mode applications for processing. A variety of different audio processing modules can be used to provide various pieces of functionality when processing audio data.
-
Citations
9 Claims
-
1. One or more computer-readable media having stored thereon a module including a plurality of instructions for execution in kernel-mode that, when executed in kernel-mode by one or more processors of a computer, causes the one or more processors to perform acts including:
-
receiving a data packet including audio data; determining a difference between a current reference time and a presentation time of the data packet, wherein the current reference time is used by the module and at least one other module stored on the computer-readable media to maintain synchronization between the module and the at least one other module, and wherein the presentation time indicates a time that the audio data is to be played back; recording the determined difference; rendering the data packet if the presentation time is equal to or earlier than the current reference time; and queuing the data packet until the presentation time is equal to the current reference time if the presentation time is later than the current reference time. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method comprising:
-
receiving at a module a data packet including audio data; determining a difference between a current reference time and a presentation time of the data packet, wherein the current reference time is used by the module and at least one other module to maintain synchronization between the module and the at least one other module, and wherein the presentation time indicates a time that the audio data is to be played back; recording the determined difference; rendering the data packet if the presentation time is equal to or earlier than the current reference time; and queuing the data packet until the presentation time is equal to the current reference time if the presentation time is later than the current reference time. - View Dependent Claims (5, 6)
-
-
7. A computing device comprising:
-
a processor; and one or more computer-readable media coupled to the processor and having stored thereon a module including a plurality of instructions for execution in kernel-mode that, when executed in kernel-mode by the processor, causes the processor to perform acts including; receiving at the module a data packet including audio data; determining a difference between a current reference time and a presentation time of the data packet, wherein the current reference time is used by the module and at least one other module to maintain synchronization between the module and the at least one other module, and wherein the presentation time indicates a time that the audio data is to be played back; recording the determined difference; rendering the data packet if the presentation time is equal to or earlier than the current reference time; and queuing the data packet until the presentation time is equal to the current reference time if the presentation time is later than the current reference time. - View Dependent Claims (8, 9)
-
Specification