Skip to content

Fix Oboe build error and implement ultra-low latency optimizations - #121

Merged
winnerspiros merged 1 commit into
masterfrom
fix-android-oboe-ultra-low-latency-v2-final-4972304964030669687
Mar 30, 2026
Merged

Fix Oboe build error and implement ultra-low latency optimizations#121
winnerspiros merged 1 commit into
masterfrom
fix-android-oboe-ultra-low-latency-v2-final-4972304964030669687

Conversation

@google-labs-jules

Copy link
Copy Markdown

This PR fixes a build failure in the Oboe audio bridge caused by file corruption and introduces several high-performance optimizations for low-latency audio on Android.

Native Changes (oboe_bridge.cpp/.h)

  • Fixed git merge conflict markers that were accidentally committed.
  • Enabled ADPF (Android Dynamic Performance Framework) for dynamic CPU scaling.
  • Added CPU affinity pinning to 'Gold' cores to reduce scheduling jitter.
  • Tuned buffer size to 2x burst for improved stability on high-end devices like the S23 Ultra.
  • Added callback work duration reporting to the kernel.

Managed Changes (osu.Android)

  • Refactored OboeAudioRedirector to use a static [UnmanagedCallersOnly] provider, eliminating delegate marshalling overhead.
  • Removed BASS-internal buffering latency by omitting the BASS_MIXER_BUFFER flag.
  • Synchronized BASS initialization with the hardware sample rate detected at runtime.
  • Updated P/Invoke signatures for better platform compatibility and performance.

PR created automatically by Jules for task 4972304964030669687 started by @winnerspiros

- Restored `oboe_bridge.cpp` from corruption caused by git merge diff markers.
- Implemented ultra-low latency Oboe bridge with:
    - Android Dynamic Performance Framework (ADPF) work duration reporting.
    - CPU affinity pinning to high-performance cores.
    - 2x burst buffer stability tuning for modern devices (e.g. S23 Ultra).
- Optimized managed audio redirection:
    - Replaced managed delegate provider with `[UnmanagedCallersOnly]` static callback to eliminate marshalling overhead.
    - Synchronized BASS master mixer with native hardware sample rate.
    - Removed BASS-internal buffering latency (`BASS_MIXER_BUFFER`).
- Improved JNI/PInvoke safety with `intptr_t` and `IntPtr` for pointer handles.
@google-labs-jules

Copy link
Copy Markdown
Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@winnerspiros
winnerspiros merged commit f0b8385 into master Mar 30, 2026
0 of 14 checks passed
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.

1 participant