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