From 1f720e46e554ac278e25e3d80b771844ddb1dae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82az=CC=87ej=20Pankowski?= <86720177+pblazej@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:37:57 +0100 Subject: [PATCH 1/3] Move engine checks --- Sources/LiveKit/Audio/MixerEngineObserver.swift | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Sources/LiveKit/Audio/MixerEngineObserver.swift b/Sources/LiveKit/Audio/MixerEngineObserver.swift index df4422056..038e8d5ce 100644 --- a/Sources/LiveKit/Audio/MixerEngineObserver.swift +++ b/Sources/LiveKit/Audio/MixerEngineObserver.swift @@ -206,6 +206,13 @@ extension MixerEngineObserver { // Capture appAudio and apply conversion automatically suitable for internal audio engine. public func capture(appAudio inputBuffer: AVAudioPCMBuffer) { + guard let converter = converter(for: inputBuffer.format) else { + log("Failed to get converter for input buffer format: \(inputBuffer.format)", .warning) + return + } + + let buffer = converter.convert(from: inputBuffer) + let (isConnected, appNode) = _state.read { ($0.isInputConnected, $0.appNode) } @@ -215,12 +222,6 @@ extension MixerEngineObserver { return } - // Create or update the converter if needed - let converter = converter(for: inputBuffer.format) - - guard let converter else { return } - - let buffer = converter.convert(from: inputBuffer) appNode.scheduleBuffer(buffer) if !appNode.isPlaying { From bda70d30b4818575fc063aeaeac3f9a9bdf12deb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82az=CC=87ej=20Pankowski?= <86720177+pblazej@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:39:08 +0100 Subject: [PATCH 2/3] Change --- .changes/broadcast-crash | 1 + 1 file changed, 1 insertion(+) create mode 100644 .changes/broadcast-crash diff --git a/.changes/broadcast-crash b/.changes/broadcast-crash new file mode 100644 index 000000000..c334bb724 --- /dev/null +++ b/.changes/broadcast-crash @@ -0,0 +1 @@ +patch type="fixed" "Crash when moving apps to background during broadcast" From 01f9dd60fa15d34e0d2070dff7d389753fe55cbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C5=82az=CC=87ej=20Pankowski?= <86720177+pblazej@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:42:45 +0100 Subject: [PATCH 3/3] Double check --- Sources/LiveKit/Audio/MixerEngineObserver.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/LiveKit/Audio/MixerEngineObserver.swift b/Sources/LiveKit/Audio/MixerEngineObserver.swift index 038e8d5ce..7ae8d8f66 100644 --- a/Sources/LiveKit/Audio/MixerEngineObserver.swift +++ b/Sources/LiveKit/Audio/MixerEngineObserver.swift @@ -224,7 +224,7 @@ extension MixerEngineObserver { appNode.scheduleBuffer(buffer) - if !appNode.isPlaying { + if !appNode.isPlaying, let engine = appNode.engine, engine.isRunning { appNode.play() } }