mirror of https://github.com/LIJI32/SameBoy.git
Fixed GB_audio_get_queue_length to actually be the length rather than size, fixed XAudio2.7 audio overflow crash, changed the maximum lag limit to 1/8s rather than 1/4s. Closes #473
This commit is contained in:
parent
d31f34cab4
commit
a856566b54
|
@ -52,7 +52,7 @@ static unsigned _audio_get_frequency(void)
|
|||
|
||||
static size_t _audio_get_queue_length(void)
|
||||
{
|
||||
return SDL_GetQueuedAudioSize(device_id);
|
||||
return SDL_GetQueuedAudioSize(device_id) / sizeof(GB_sample_t);
|
||||
}
|
||||
|
||||
static void _audio_queue_sample(GB_sample_t *sample)
|
||||
|
|
|
@ -23,23 +23,23 @@ static WAVEFORMATEX wave_format = {
|
|||
.cbSize = 0
|
||||
};
|
||||
|
||||
static inline HRESULT XAudio2Create(IXAudio2 **ppXAudio2,
|
||||
static inline HRESULT XAudio2Create(IXAudio2 **out,
|
||||
UINT32 Flags,
|
||||
XAUDIO2_PROCESSOR XAudio2Processor)
|
||||
{
|
||||
IXAudio2 *pXAudio2;
|
||||
IXAudio2 *xaudio2;
|
||||
LoadLibraryEx("xaudio2_7.dll", NULL, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
|
||||
|
||||
HRESULT hr = CoCreateInstance(&CLSID_XAudio2, NULL, CLSCTX_INPROC_SERVER, &IID_IXAudio2, (void**)&pXAudio2);
|
||||
HRESULT hr = CoCreateInstance(&CLSID_XAudio2, NULL, CLSCTX_INPROC_SERVER, &IID_IXAudio2, (void **)&xaudio2);
|
||||
if (SUCCEEDED(hr)) {
|
||||
hr = pXAudio2->lpVtbl->Initialize(pXAudio2, Flags, XAudio2Processor);
|
||||
hr = xaudio2->lpVtbl->Initialize(xaudio2, Flags, XAudio2Processor);
|
||||
}
|
||||
|
||||
if (SUCCEEDED(hr)) {
|
||||
*ppXAudio2 = pXAudio2;
|
||||
*out = xaudio2;
|
||||
}
|
||||
else if (pXAudio2) {
|
||||
pXAudio2->lpVtbl->Release(pXAudio2);
|
||||
else if (xaudio2) {
|
||||
xaudio2->lpVtbl->Release(xaudio2);
|
||||
}
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -523,7 +523,7 @@ static void gb_audio_callback(GB_gameboy_t *gb, GB_sample_t *sample)
|
|||
}
|
||||
}
|
||||
|
||||
if (GB_audio_get_queue_length() / sizeof(*sample) > GB_audio_get_frequency() / 4) {
|
||||
if (GB_audio_get_queue_length() > GB_audio_get_frequency() / 8) { // Maximum lag of 0.125s
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue