diff mbox series

Fixed unknown audio format with SDL2

Message ID E1is9u1-0000BR-Th@eggs.gnu.org (mailing list archive)
State New, archived
Headers show
Series Fixed unknown audio format with SDL2 | expand

Commit Message

KJ Liew Jan. 16, 2020, 6:27 p.m. UTC
SDL2 (version >=2.0) prefers float32 audio format over integer audio format. QEMU sdlaudio.c does not handle any kind of AUDIO_F32 formats, but SDL_OpenAudio(req, obt) will return float32 audio format in obt and QEMU prints error about unknown format 33056 (0x8120).

The following simple patch fix the error by forcing SDL2 internal audio format conversion.
diff mbox series

Patch

diff -ru ../orig/qemu-4.2.0/audio/sdlaudio.c ../qemu-4.2.0/audio/sdlaudio.c
--- ../orig/qemu-4.2.0/audio/sdlaudio.c 2019-12-12 10:20:47.000000000 -0800
+++ ../qemu-4.2.0/audio/sdlaudio.c      2020-01-15 15:56:25.059841600 -0800
@@ -147,10 +147,11 @@ 
     }
 #endif

-    status = SDL_OpenAudio (req, obt);
+    status = SDL_OpenAudio (req, NULL);
     if (status) {
         sdl_logerr ("SDL_OpenAudio failed\n");
     }
+    memcpy(obt, req, sizeof(SDL_AudioSpec));

 #ifndef _WIN32
     err = pthread_sigmask (SIG_SETMASK, &old, NULL);