mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	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.
This commit is contained in:
		| @@ -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; | ||||||
|   | |||||||
| @@ -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) { | ||||||
|   | |||||||
| @@ -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; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sam Lantinga
					Sam Lantinga