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_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.
if (!device_list_lock) {
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)
{
if (!SDL_WasInit(SDL_INIT_AUDIO)) {
SDL_SetError("Audio subsystem is not initialized");
return NULL;
}
SDL_ChooseAudioConverters();
SDL_SetupAudioResampler();
SDL_AudioStream *retval = (SDL_AudioStream *)SDL_calloc(1, sizeof(SDL_AudioStream));
if (retval == NULL) {

View File

@ -481,6 +481,10 @@ static int audio_buildAudioStream(void *arg)
SDL_AudioSpec spec2;
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 */
spec1.format = SDL_AUDIO_S16LE;
spec1.channels = 2;
@ -528,6 +532,9 @@ static int audio_buildAudioStream(void *arg)
}
}
/* Restart audio again */
audioSetUp(NULL);
return TEST_COMPLETED;
}