google / oboe

Oboe is a C++ library that makes it easy to build high-performance audio apps on Android.
Apache License 2.0
3.72k stars 571 forks source link

Oboe VNDK support #1638

Open DEgITx opened 2 years ago

DEgITx commented 2 years ago

Hi, I have a question about support of VNDK-like android images. My android 12 image builded as VNDK only:

BOARD_VNDK_VERSION := current

As far I see oboe using two variants of output, libOpenSLAS and libaaudio. Both of the libraries are marked as FWK-ONLY and not available under VNDK build for vendor apps. So the question is oboe will work in such configuration without them? Or maybe you know how to make them buildable to not break VNDK android structure? (Especially libOpenSLAS output).

philburk commented 2 years ago

@DEgITx - What are you writing that want to call libaaudio? Is it an app of an internal OS module?

libOpenSLAS and libaaudio. Both of the libraries are marked as FWK-ONLY

How did you determine this? That may be a bug. libaaudio should be a stable NDK API. https://source.android.com/docs/core/architecture/vndk

DEgITx commented 2 years ago

@philburk , I write internal vendor application that must be located in /vendor/bin/ (so it's targeted as OS vendor module). I have an options there to use libOpenSLES or use oboe.

So based on documentation (page 14 - "Some NDK libs not visible to vendor modules"): https://source.android.com/docs/core/architecture/images/vndk_design_android_o.pdf libaaudio.so and libOpenSLES.so both are marked with FWK-ONLY as unavailable for vendor modules. And I don't see both of them in the lib folder of VNDK android 12 build.

According to libaaudio master: https://android.googlesource.com/platform/frameworks/av/+/master/media/libaaudio/src/Android.bp - I don't see that libaaudio is marked with vendor_available: true

to be a vendor modules

https://android.googlesource.com/platform/frameworks/wilhelm/+/refs/heads/master/src/Android.bp and for libOpenSLES too.