SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


Change the input and output formats of an audio stream.

Header File

Defined in <SDL3/SDL_audio.h>


int SDL_SetAudioStreamFormat(SDL_AudioStream *stream,
                         const SDL_AudioSpec *src_spec,
                         const SDL_AudioSpec *dst_spec);

Function Parameters

SDL_AudioStream * stream the stream the format is being changed.
const SDL_AudioSpec * src_spec the new format of the audio input; if NULL, it is not changed.
const SDL_AudioSpec * dst_spec the new format of the audio output; if NULL, it is not changed.

Return Value

(int) Returns 0 on success, or -1 on error.


Future calls to and SDL_GetAudioStreamAvailable and SDL_GetAudioStreamData will reflect the new format, and future calls to SDL_PutAudioStreamData must provide data in the new input formats.

Data that was previously queued in the stream will still be operated on in the format that was current when it was added, which is to say you can put the end of a sound file in one format to a stream, change formats for the next sound file, and start putting that new data while the previous sound file is still queued, and everything will still play back correctly.

Thread Safety

It is safe to call this function from any thread, as it holds a stream-specific mutex while running.


This function is available since SDL 3.0.0.

See Also

CategoryAPI, CategoryAPIFunction, CategoryAudio

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.