The WAVEFORMAT structure describes the format of waveform data. Only format information common to all waveform data formats is included in this structure. For formats that require additional information, this structure is included as a field in another data structure along with the additional information.
typedef struct waveformat_tag {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
} WAVEFORMAT;
The WAVEFORMAT structure has the following fields:
wFormatTag
Specifies the format type. Currently defined format types are as follows:
WAVE_FORMAT_PCM
Waveform data is PCM.
nChannels
Specifies the number of channels in the waveform data. Mono data uses 1 channel and stereo data uses 2 channels.
nSamplesPerSec
Specifies the sample rate in samples per second.
nAvgBytesPerSec
Specifies the required average data transfer rate in bytes per second.
nBlockAlign
Specifies the block alignment in bytes. The block alignment is the minimum atomic unit of data.
For PCM data, the block alignment is the number of bytes used by a single sample, including data for both channels if the data is stereo. For example, the block alignment for 16-bit stereo PCM is 4 bytes (2 channels, 2 bytes per sample).
PCMWAVEFORMAT