Re: [hatari-devel] SDL1 vs. SDL2 sound pausing

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Am Sat, 10 Sep 2016 17:03:16 +0200
schrieb Jerome Vernet <vernet.jerome@xxxxxxxxxx>:

> Le 10/09/2016 à 16:09, Nicolas Pomarède a écrit :
> > printf ( "audio cbk %d %d\n" , nGeneratedSamples ,
> > CompleteSndBufIdx )  
> You're right, nGeneratedSamples == 0 while in menus (or in other
> thing, before emulation can be paused), and CompleteSndBufIdx stay on
> the same value until the release the menu.

I guess we should simply mute audio completely if nGeneratedSamples is
0. Jerome, could you please try a patch like this:

diff -r b98a852e12f2 src/audio.c
--- a/src/audio.c	Sat Sep 10 17:39:20 2016 +0200
+++ b/src/audio.c	Sat Sep 10 17:43:52 2016 +0200
@@ -87,7 +87,13 @@
 		CompleteSndBufIdx += len;
 		nGeneratedSamples -= len;
 	}
-	else  /* Not enough samples available: */
+	else if (nGeneratedSamples == 0)
+	{
+		/* No samples - that could mean that the main thread has been
+		 * halted. Simply mute audio to avoid annoying audio loops */
+		memset(pBuffer, 0, len * 4);
+	}
+	else  /* Some, but not enough samples available: */
 	{
 		for (i = 0; i < nGeneratedSamples; i++)
 		{

 Thanks,
  Thomas



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/