I’ve have a test library that now works well on one device (occulus quest/android 7) but not others (e.g. Galaxy S7/Android 8 and Galaxy S8/android 9) it’s very quiet and distorted (glitchy)
This is logcat from the S7
2019-07-25 12:02:28.719 4514-4683/com.blah.droidtest D/OboeAudio: AAudioLoader(): dlopen(libaaudio.so) returned 0xf26f8d53
2019-07-25 12:02:28.720 4514-4683/com.blah.droidtest I/JUCE: Preparing Oboe stream with params:
AAudio supported = 1
API = Unspecified
DeviceId = -1
Direction = Output
SharingMode = Shared
ChannelCount = 2
Format = Float
SampleRate = 48000
PerformanceMode = LowLatency
2019-07-25 12:02:28.720 4514-4683/com.blah.droidtest D/OboeAudio: openStream() OUTPUT -------- OboeVersion1.2.0 --------
2019-07-25 12:02:28.720 4514-4683/com.blah.droidtest I/OboeAudio: AudioStreamOpenSLES::open(chans:2, rate:48000)
2019-07-25 12:02:28.721 4514-4683/com.blah.droidtest D/OboeAudio: AudioStreamOpenSLES(): mFramesPerCallback = 240
2019-07-25 12:02:28.721 4514-4683/com.blah.droidtest D/OboeAudio: AudioStreamOpenSLES(): mBytesPerCallback = 1920
2019-07-25 12:02:28.722 4514-4683/com.blah.droidtest D/OboeAudio: SetConfiguration(SL_ANDROID_KEY_PERFORMANCE_MODE, SL 1) called
2019-07-25 12:02:28.728 4514-4683/com.blah.droidtest D/OboeAudio: FifoProcessor: capacityInFrames = 3840, bytesPerFrame = 8
2019-07-25 12:02:28.728 4514-4683/com.blah.droidtest I/JUCE: Building Oboe stream with result: OK
Stream state = Open
2019-07-25 12:02:28.728 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): requestPause() called
2019-07-25 12:02:28.728 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): setPlayState_l() called
2019-07-25 12:02:28.728 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): requestPause() returning 0
2019-07-25 12:02:28.733 4514-4683/com.blah.droidtest I/JUCE: Requested Oboe stream close with result: OK
2019-07-25 12:02:28.738 4514-4683/com.blah.droidtest I/JUCE: Preparing Oboe stream with params:
AAudio supported = 1
API = Unspecified
DeviceId = 1
Direction = Output
SharingMode = Exclusive
ChannelCount = 2
Format = Float
SampleRate = 48000
PerformanceMode = LowLatency
2019-07-25 12:02:28.738 4514-4683/com.blah.droidtest D/OboeAudio: openStream() OUTPUT -------- OboeVersion1.2.0 --------
2019-07-25 12:02:28.738 4514-4683/com.blah.droidtest I/OboeAudio: AudioStreamOpenSLES::open(chans:2, rate:48000)
2019-07-25 12:02:28.738 4514-4683/com.blah.droidtest D/OboeAudio: AudioStreamOpenSLES(): mFramesPerCallback = 240
2019-07-25 12:02:28.738 4514-4683/com.blah.droidtest D/OboeAudio: AudioStreamOpenSLES(): mBytesPerCallback = 1920
2019-07-25 12:02:28.739 4514-4683/com.blah.droidtest D/OboeAudio: SetConfiguration(SL_ANDROID_KEY_PERFORMANCE_MODE, SL 1) called
2019-07-25 12:02:28.744 4514-4683/com.blah.droidtest W/OboeAudio: Failed to set buffer size to 480. Error was ErrorUnimplemented
2019-07-25 12:02:28.744 4514-4683/com.blah.droidtest I/JUCE: Building Oboe stream with result: OK
Stream state = Open
2019-07-25 12:02:28.744 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): requestStart() called
2019-07-25 12:02:28.744 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): setPlayState_l() called
2019-07-25 12:02:28.746 4514-4683/com.blah.droidtest D/OboeAudio: AudioStream::fireDataCallback() scheduler = SCHED_OTHER
2019-07-25 12:02:28.748 4514-4683/com.blah.droidtest D/OboeAudio: AudioOutputStreamOpenSLES(): requestStart() returning 0
2019-07-25 12:02:28.748 4514-4683/com.blah.droidtest I/JUCE: Requested Oboe stream start with result: OK
2019-07-25 12:02:28.748 4514-4683/com.blah.droidtest I/JUCE: Starting Oboe stream with result: OK
2019-07-25 12:02:28.748 4514-5139/com.blah.droidtest D/OboeAudio: AudioStream::fireDataCallback() scheduler = SCHED_FIFO
2019-07-25 12:02:28.748 4514-4683/com.blah.droidtest I/JUCE: Starting Oboe stream with result: OK
2019-07-25 12:02:34.796 4514-4683/com.blah.droidtest I/Unity: get string: Android Oboe
So, my questions about this
-
how do I get the
stream
so I can change settings ? -
although it says
AAudio supported = 1
- I am assuming that 1 means true - this errorFailed to set buffer size to 480. Error was ErrorUnimplemented
I understand is from OpenSL ES… why isn’t it using AAudio? How can I get it to default to AAudio? -
why is that
API = Unspecified
?
also, it is not reporting any underruns, which I would expect when it is distorting etc
any thoughts and answers to my questions gratefully sought, thx
maybe @Don_Turner has a view?
i’m running the tip of oboe/master and the tip of juce/develop
just to add here, if we remove some DSP processes we have running it plays the audio, so it is glitching but not reporting underruns - is that right for Oboe?
also, seems odd that a 7.1.1 device will play something that 8.0.0 and 9.0.0 device wont play