Skip to content

Commit 0047d6b

Browse files
Copilotwinnerspiros
andcommitted
Fix Oboe native sample rate, add audio routing hints, tighten CMake symbol visibility
Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com> Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/9d78b417-3621-444c-923d-84058d554f4b
1 parent aa50738 commit 0047d6b

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

osu.Android/Native/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ project(osu_native LANGUAGES CXX)
44
set(CMAKE_CXX_STANDARD 17)
55

66
# Release build optimizations for low-latency performance.
7-
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -flto -DNDEBUG")
8-
set(CMAKE_C_FLAGS_RELEASE "-O2 -flto -DNDEBUG")
7+
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -flto -fvisibility=hidden -DNDEBUG")
8+
set(CMAKE_C_FLAGS_RELEASE "-O2 -flto -fvisibility=hidden -DNDEBUG")
99

1010
find_package(oboe REQUIRED CONFIG)
1111
find_library(vulkan-lib vulkan)

osu.Android/Native/oboe_bridge.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,13 @@ bool OboeBridge::open() {
2727
->setSharingMode(oboe::SharingMode::Exclusive)
2828
->setFormat(oboe::AudioFormat::Float)
2929
->setChannelCount(oboe::ChannelCount::Stereo)
30-
->setSampleRate(48000)
30+
// Let Oboe pick the device's native sample rate.
31+
// Hardcoding (e.g. 48000) would force Android's SRC resampler when the
32+
// device native rate differs, adding measurable latency.
33+
->setSampleRate(oboe::kUnspecified)
34+
// Semantic hints help Android route through the optimal audio path.
35+
->setContentType(oboe::ContentType::Music)
36+
->setUsage(oboe::Usage::Game)
3137
->setCallback(this)
3238
// Prefer AAudio for lowest latency (available on Android 8.1+).
3339
// Falls back to OpenSL ES automatically on older devices.

0 commit comments

Comments
 (0)