Implementing an Audio DSP Plug-in
[The feature associated with this page, Windows Media Player SDK, is a legacy feature. It has been superseded by MediaPlayer. MediaPlayer has been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer instead of Windows Media Player SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]
To create a Windows Media Player DSP plug-in that processes audio, you'll need to modify the sample code in the function named DoProcessOutput. DoProcessOutput is called each time Windows Media Player successfully calls IMediaObject::ProcessOutput. It is the function that performs the digital signal processing tasks that produce the audible result that the DSP plug-in is intended to produce.
Processing an audio stream is like handling a timed event. DoProcessOutput will be called repeatedly and at specific intervals. Each time your code executes, it will need to process a specific number of bytes of data. DoProcessOutput contains the following parameters:
Parameter | Description |
---|---|
pbOutputData | This is a BYTE pointer to the buffer where your implementation of DoProcessOutput must copy its processed data. |
pbInputData | This is a constant BYTE pointer to the buffer that contains the data to be processed. |
cbBytesToProcess | This is a DWORD value that contains a count of the number of bytes in the input buffer to be processed. |
The following sections provide details about how to modify the code generated by the Windows Media Player Plug-in Wizard to create your own audio DSP plug-in:
- Implementing DoProcessOutput
- Adding Properties to the Sample Audio DSP Plug-in
- Implementing the Property Page for a DSP Plug-in
- Changing the Sample Audio DSP Plug-in Property
- About Discontinuity
- About Allocating Streaming Resources
Related topics