Commit 4499e5bcc6f26ccc4926e0e956fab21cc138373f

Ryan C. Gordon 2016-08-06T03:45:45

disk audio: Make default i/o delay match what device is meant to be running at.

diff --git a/src/audio/disk/SDL_diskaudio.c b/src/audio/disk/SDL_diskaudio.c
index af03573..a2dd482 100644
--- a/src/audio/disk/SDL_diskaudio.c
+++ b/src/audio/disk/SDL_diskaudio.c
@@ -41,7 +41,6 @@
 #define DISKENVR_INFILE         "SDL_DISKAUDIOFILEIN"
 #define DISKDEFAULT_INFILE      "sdlaudio-in.raw"
 #define DISKENVR_IODELAY      "SDL_DISKAUDIODELAY"
-#define DISKDEFAULT_IODELAY   150
 
 /* This function waits until it is possible to write a full sound buffer */
 static void
@@ -140,7 +139,11 @@ DISKAUD_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
     }
     SDL_zerop(this->hidden);
 
-    this->hidden->io_delay = (envr) ? SDL_atoi(envr) : DISKDEFAULT_IODELAY;
+    if (envr != NULL) {
+        this->hidden->io_delay = SDL_atoi(envr);
+    } else {
+        this->hidden->io_delay = ((this->spec.samples * 1000) / this->spec.freq);
+    }
 
     /* Open the audio device */
     this->hidden->io = SDL_RWFromFile(fname, iscapture ? "rb" : "wb");