Re: [hatari-devel] SDL1 vs. SDL2 sound pausing |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Am Sat, 10 Sep 2016 18:32:05 +0200
schrieb Nicolas Pomarède <npomarede@xxxxxxxxxxxx>:
> Le 10/09/2016 à 17:45, Thomas Huth a écrit :
> > 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++)
> > {
>
> Hi
>
> I was thinking at a similar patch, but I think we should completely
> remove the case that mirror half of the data if we don't have enough
> sample ; I'm not sure that duplicating previous data will give better
> audio result if we don't fill Buffer fast enough, we should as well
> just put 0 bytes in Buffer to complete it
Not sure, but in case there are just some few samples missing, I think
the memset-to-zero will cause audible disturbing noises, while the
duplication might hide the missing samples quite well...
I guess this needs some tests to be done to see what's the best
approach here... any volunteers?
Thomas