Wiki Page Content

Differences between revisions 14 and 15
Revision 14 as of 2013-08-08 05:14:52
Size: 2223
Editor: RyanGordon
Comment: style change
Revision 15 as of 2018-10-30 02:25:29
Size: 2243
Editor: RyanGordon
Comment: clarify that spec is an output value
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
||'''spec'''||an [[SDL_AudioSpec]] structure representing the desired output format|| ||'''spec'''||an [[SDL_AudioSpec]] structure that will be filled in with the wave file's format details||


Use this function to load a WAVE from the data source, automatically freeing that source if freesrc is non-zero.


SDL_AudioSpec* SDL_LoadWAV_RW(SDL_RWops*     src,
                              int            freesrc,
                              SDL_AudioSpec* spec,
                              Uint8**        audio_buf,
                              Uint32*        audio_len)

Function Parameters


the data source for the wave file; see the RWOPS interface() for more info


non-zero to automatically free the data source


an SDL_AudioSpec structure that will be filled in with the wave file's format details


the audio buffer


the length of the audio buffer in bytes

Return Value

This function, if successfully called, returns a pointer to an SDL_AudioSpec structure filled with the audio data format of the wave source data. audio_buf is filled with a pointer to an allocated buffer containing the audio data, and audio_len is filled with the length of that audio buffer in bytes.

This function returns NULL if the wave file cannot be opened, uses an unknown data format, or is corrupt; call SDL_GetError() for more information.

When the application is done with the data returned in audio_buf, it should call SDL_FreeWAV() to dispose of it.

Code Examples

extern SDL_RWops *myRWops;
SDL_AudioSpec wav_spec;
Uint32 wav_length;
Uint8 *wav_buffer;

/* Load the WAV */
if (SDL_LoadWAV_RW(myRWops, 1, &wav_spec, &wav_buffer, &wav_length) == NULL) {
    fprintf(stderr, "Could not open test.wav: %s\n", SDL_GetError());
} else {
    /* Do stuff with the WAV data, and then... */


Currently raw and MS-ADPCM WAVE files are supported.

You need to free the audio buffer with SDL_FreeWAV() when you are done with it.

CategoryAPI, CategoryAudio

None: SDL_LoadWAV_RW (last edited 2018-10-30 02:25:29 by RyanGordon)

Please include your contact information if you'd like to receive a reply.