---
name: "SDL_AudioSpec"
section: "3"
platform: "linux"
package: "libsdl1.2-dev"
version: "1.2.15+dfsg2-8"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_AudioSpec"
---

# SDL\_AudioSpec(3)

Audio Specification Structure

## NAME

SDL\_AudioSpec - Audio Specification Structure

## STRUCTURE DEFINITION

```
typedef struct{
  int freq;
  Uint16 format;
  Uint8 channels;
  Uint8 silence;
  Uint16 samples;
  Uint32 size;
  void (*callback)(void *userdata, Uint8 *stream, int len);
  void *userdata;
} SDL_AudioSpec;
```

## STRUCTURE DATA

- **freq**

  Audio frequency in samples per second

- **format**

  Audio data format

- **channels**

  Number of channels: 1 mono, 2 stereo

- **silence**

  Audio buffer silence value (calculated)

- **samples**

  Audio buffer size in samples

- **size**

  Audio buffer size in bytes (calculated)

- **callback(..)**

  Callback function for filling the audio buffer

- **userdata**

  Pointer the user data which is passed to the callback function

## DESCRIPTION

The **SDL\_AudioSpec** structure is used to describe the format of some audio data. This structure is used by **SDL\_OpenAudio** and **SDL\_LoadWAV**. While all fields are used by **SDL\_OpenAudio** only **freq**, **format**, **samples** and **channels** are used by **SDL\_LoadWAV**. We will detail these common members here.

- **freq**

  The number of samples sent to the sound device every second. Common values are 11025, 22050 and 44100. The higher the better.

- **format**

  Specifies the size and type of each sample element

- **AUDIO\_U8**

  - **AUDIO\_S8**

  - **AUDIO\_U16** or **AUDIO\_U16LSB**

  - **AUDIO\_S16** or **AUDIO\_S16LSB**

  - **AUDIO\_U16MSB**

  - **AUDIO\_S16MSB**

  - **AUDIO\_U16SYS**

  - **AUDIO\_S16SYS**

  - **channels**

  The number of seperate sound channels. 1 is mono (single channel), 2 is stereo (dual channel).

- **samples**

  When used with **SDL\_OpenAudio** this refers to the size of the audio buffer in samples. A sample a chunk of audio data of the size specified in **format** mulitplied by the number of channels. When the **SDL\_AudioSpec** is used with **SDL\_LoadWAV** **samples** is set to 4096.

## SEE ALSO

**SDL\_OpenAudio**, **SDL\_LoadWAV**
