Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 2.26 KB

hardware-constraints-on-sample-frequency.md

File metadata and controls

26 lines (16 loc) · 2.26 KB
title description keywords ms.date
Hardware Constraints on Sample Frequency
Hardware Constraints on Sample Frequency
sample frequency constraints WDK audio
constraining sample frequency WDK audio
hardware constraints WDK audio
frequency constraints WDK audio
data-intersection handlers WDK audio , sample frequency constraints
04/20/2017

Hardware Constraints on Sample Frequency

Some audio devices require that the sample frequency at the adapter filter's sink pin match the frequency of a digital output port or the input stream from a microphone. For example, Sound Blaster 16-compatible hardware typically has a single crystal, which constrains its input and output streams to run at the same clock rate. An adapter that can support more than one clock rate for its various on-board audio streams might still need to restrict the number of different clock rates to some small number.

For these reasons, an adapter driver might need to constrain the sample frequency on one on-board stream to match that of another on-board stream. For example, a Sound Blaster 16-compatible adapter might require that the sample frequency at the adapter's sink pin match the rate at which the latches are clocked at the output DACs.

As explained previously, KMixer is the system mixer in Windows Server 2003, Windows XP, Windows 2000, and Windows Me/98. When KMixer's source pin is connected to an adapter's sink pin, KMixer might need to call the adapter's SetFormat method (for example, see IMiniportWavePciStream::SetFormat) to adjust the sample frequency at the connection to match the highest sample frequency of the audio streams at its inputs. If the adapter is unable to change the frequency--perhaps because it is constrained by the clock rates of other on-board streams--it can fail the SetFormat call. In this case, KMixer will respond by making more SetFormat calls with successively lower sample frequencies until the call succeeds. Once KMixer has settled on a reduced sample frequency, it will sample-down its higher frequency input streams accordingly.