Skip to content

Add RenderingEventCommand::bufferUnderrun#947

Open
sbooth wants to merge 4 commits into
mainfrom
buffer-underrun
Open

Add RenderingEventCommand::bufferUnderrun#947
sbooth wants to merge 4 commits into
mainfrom
buffer-underrun

Conversation

@sbooth

@sbooth sbooth commented Jun 22, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings June 22, 2026 15:32

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cpp-linter Review

Used clang-format v22.1.8

Click here for the full clang-format patch
diff --git a/Sources/CSFBAudioEngine/Player/AudioPlayer.mm b/Sources/CSFBAudioEngine/Player/AudioPlayer.mm
index f6073cf..653424a 100644
--- a/Sources/CSFBAudioEngine/Player/AudioPlayer.mm
+++ b/Sources/CSFBAudioEngine/Player/AudioPlayer.mm
@@ -1695 +1695,2 @@ OSStatus sfb::AudioPlayer::render(BOOL &isSilence, const AudioTimeStamp &timesta
-                                       timestamp.mHostTime, static_cast<uint32_t>(framesRead), static_cast<uint32_t>(frameCount))) {
+                                       timestamp.mHostTime, static_cast<uint32_t>(framesRead),
+                                       static_cast<uint32_t>(frameCount))) {
@@ -2147 +2148,2 @@ bool sfb::AudioPlayer::processBufferUnderrunEvent() noexcept {
-    os_log_error(log_, "Audio ring buffer underrun: %u/%u frames rendered for host time %lu", framesRendered, framesRequested, hostTime);
+    os_log_error(log_, "Audio ring buffer underrun: %u/%u frames rendered for host time %lu", framesRendered,
+                 framesRequested, hostTime);

Have any feedback or feature suggestions? Share it here.

Comment thread Sources/CSFBAudioEngine/Player/AudioPlayer.mm Outdated
Comment thread Sources/CSFBAudioEngine/Player/AudioPlayer.mm Outdated
@github-actions github-actions Bot dismissed their stale review June 22, 2026 15:36

outdated suggestion

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new rendering-event command to explicitly report audio ring-buffer underruns from the realtime render callback to the event-processing thread, enabling centralized handling/logging of underrun conditions.

Changes:

  • Emit RenderingEventCommand::bufferUnderrun when the ring buffer returns fewer frames than requested.
  • Extend rendering-event dispatch to handle bufferUnderrun and add processBufferUnderrunEvent().
  • Update the RenderingEventCommand enum and event-processing API surface in the header.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
Sources/CSFBAudioEngine/Player/AudioPlayer.mm Writes a new underrun event from render() and adds a handler to process/log it on the event thread.
Sources/CSFBAudioEngine/Player/AudioPlayer.h Adds the new RenderingEventCommand::bufferUnderrun and declares processBufferUnderrunEvent().

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +2147 to +2149
os_log_error(log_, "Audio ring buffer underrun: %u/%u frames rendered for host time %lu", framesRendered, framesRequested, hostTime);

return true;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants