diff --git a/miniaudio.h b/miniaudio.h index 5cca5c4b..d2ff102e 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -16483,6 +16483,11 @@ static ma_result ma_device_audio_thread__default_read_write(ma_device* pDevice) } } + /* Make sure we don't get stuck in the inner loop. */ + if (capturedDeviceFramesProcessed == 0) { + break; + } + totalCapturedDeviceFramesProcessed += capturedDeviceFramesProcessed; } } break; @@ -16506,6 +16511,11 @@ static ma_result ma_device_audio_thread__default_read_write(ma_device* pDevice) break; } + /* Make sure we don't get stuck in the inner loop. */ + if (framesProcessed == 0) { + break; + } + ma_device__send_frames_to_client(pDevice, framesProcessed, capturedDeviceData); framesReadThisPeriod += framesProcessed; @@ -16533,6 +16543,11 @@ static ma_result ma_device_audio_thread__default_read_write(ma_device* pDevice) break; } + /* Make sure we don't get stuck in the inner loop. */ + if (framesProcessed == 0) { + break; + } + framesWrittenThisPeriod += framesProcessed; } } break;