From c3636a45b97f1705248f2855ccccb5b46dce0916 Mon Sep 17 00:00:00 2001 From: David Reid Date: Sun, 9 May 2021 10:30:50 +1000 Subject: [PATCH] PulseAudio: Try fixing a divide by zero error. Public issue https://github.com/mackron/miniaudio/pull/308 --- miniaudio.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/miniaudio.h b/miniaudio.h index 42b2b159..c5870bca 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -22623,11 +22623,21 @@ static void ma_device_on_read__pulse(ma_pa_stream* pStream, size_t byteCount, vo { ma_device* pDevice = (ma_device*)pUserData; ma_uint32 bpf; + ma_uint32 deviceState; ma_uint64 frameCount; ma_uint64 framesProcessed; MA_ASSERT(pDevice != NULL); + /* + Don't do anything if the device isn't initialized yet. Yes, this can happen because PulseAudio + can fire this callback before the stream has even started. Ridiculous. + */ + deviceState = ma_device_get_state(pDevice); + if (deviceState != MA_STATE_STARTING && deviceState != MA_STATE_STARTED) { + return; + } + bpf = ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); MA_ASSERT(bpf > 0);