We don't require the audio system to be initialized for audio format conversion

This is helpful for tools pipelines where audio devices are never used.
main
Sam Lantinga 2023-10-11 09:23:23 -07:00
parent 9a5f7b17c6
commit c552cc6847
3 changed files with 9 additions and 7 deletions

View File

@ -602,9 +602,6 @@ int SDL_InitAudio(const char *driver_name)
SDL_QuitAudio(); // shutdown driver if already running. SDL_QuitAudio(); // shutdown driver if already running.
} }
SDL_ChooseAudioConverters();
SDL_SetupAudioResampler();
SDL_RWLock *device_list_lock = SDL_CreateRWLock(); // create this early, so if it fails we don't have to tear down the whole audio subsystem. SDL_RWLock *device_list_lock = SDL_CreateRWLock(); // create this early, so if it fails we don't have to tear down the whole audio subsystem.
if (!device_list_lock) { if (!device_list_lock) {
return -1; return -1;

View File

@ -404,10 +404,8 @@ static int UpdateAudioStreamInputSpec(SDL_AudioStream *stream, const SDL_AudioSp
SDL_AudioStream *SDL_CreateAudioStream(const SDL_AudioSpec *src_spec, const SDL_AudioSpec *dst_spec) SDL_AudioStream *SDL_CreateAudioStream(const SDL_AudioSpec *src_spec, const SDL_AudioSpec *dst_spec)
{ {
if (!SDL_WasInit(SDL_INIT_AUDIO)) { SDL_ChooseAudioConverters();
SDL_SetError("Audio subsystem is not initialized"); SDL_SetupAudioResampler();
return NULL;
}
SDL_AudioStream *retval = (SDL_AudioStream *)SDL_calloc(1, sizeof(SDL_AudioStream)); SDL_AudioStream *retval = (SDL_AudioStream *)SDL_calloc(1, sizeof(SDL_AudioStream));
if (retval == NULL) { if (retval == NULL) {

View File

@ -481,6 +481,10 @@ static int audio_buildAudioStream(void *arg)
SDL_AudioSpec spec2; SDL_AudioSpec spec2;
int i, ii, j, jj, k, kk; int i, ii, j, jj, k, kk;
/* Call Quit */
SDL_QuitSubSystem(SDL_INIT_AUDIO);
SDLTest_AssertPass("Call to SDL_QuitSubSystem(SDL_INIT_AUDIO)");
/* No conversion needed */ /* No conversion needed */
spec1.format = SDL_AUDIO_S16LE; spec1.format = SDL_AUDIO_S16LE;
spec1.channels = 2; spec1.channels = 2;
@ -528,6 +532,9 @@ static int audio_buildAudioStream(void *arg)
} }
} }
/* Restart audio again */
audioSetUp(NULL);
return TEST_COMPLETED; return TEST_COMPLETED;
} }