Extensible kernel-mode audio processing architecture
First Claim
Patent Images
1. A computer-readable medium having stored thereon a data structure, the data structure comprising:
- a presentation time portion indicating when audio data is to be rendered;
a data portion that can include audio data, a pointer to a data buffer, or a pointer to a chain of additional data structures that include the audio data;
an event byte count portion that identifies whether the data portion includes the audio data or the pointer to the data buffer; and
a flag portion that is set to indicate to a kernel-mode transform filter that the data portion includes the pointer to the chain of additional data structures rather than the audio data or the pointer to the data buffer.
1 Assignment
0 Petitions
Accused Products
Abstract
An extensible kernel-mode audio (e.g., MIDI) processing architecture is implemented using multiple modules that together comprise a module graph. The module graph is implemented in kernel-mode, reducing latency and jitter when handling audio data by avoiding transfers of the audio data to user-mode applications for processing. In one embodiment, the audio processing architecture is readily extensible. A graph builder can readily change the module graph, adding new modules, removing modules, or altering connections as necessary, all while the graph is running.
-
Citations
10 Claims
-
1. A computer-readable medium having stored thereon a data structure, the data structure comprising:
-
a presentation time portion indicating when audio data is to be rendered; a data portion that can include audio data, a pointer to a data buffer, or a pointer to a chain of additional data structures that include the audio data; an event byte count portion that identifies whether the data portion includes the audio data or the pointer to the data buffer; and a flag portion that is set to indicate to a kernel-mode transform filter that the data portion includes the pointer to the chain of additional data structures rather than the audio data or the pointer to the data buffer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of processing audio data in a privileged level module, the method comprising:
-
receiving a data packet, the data packet including; a presentation time portion indicating when audio data is to be rendered; a data portion that can include audio data, a pointer to a data buffer, or a pointer to a chain of additional data packets that include the audio data; an event byte count portion that identifies whether the data portion includes the audio data or the pointer to the data buffer; and a flag portion that is set to indicated to a kernel-mode transform filter that the data portion includes the pointer to the chain of additional data packets rather than the audio data or the pointer to the data buffer; and determining that the data portion includes a pointer to a chain of additional data packets based on the flag portion; and carrying out a programmed operation on each of the additional data packets. - View Dependent Claims (8)
-
-
9. A method of processing audio data in a kernel-mode transform filter, the method comprising:
-
passing, to another kernel-mode transform filter, a data packet, the data packet including; a presentation time portion indicating when audio data is to be rendered; a data portion that can include audio data, a pointer to a data buffer, or a pointer to a chain of additional data packets that include the audio data; an event byte count portion that identifies whether the data portion includes the audio data or the pointer to the data buffer; and a flag portion that is set to indicate to a kernel-mode transform filter that the data portion includes the pointer to the chain of additional data packets rather than the audio data or the pointer to the data buffer; and configuring the data portion to include a pointer to a chain of additional data packets that include audio data; and indicating that the data packet includes the pointer by setting a package event flag in the flag portion. - View Dependent Claims (10)
-
Specification