Comments (2)
Additional note: I am using a mutex in my audio callback. I lock it, read from a stream, then unlock. In the main thread, the mutex is locked, data is copied into the stream, and then it's unlocked. Time spent with the mutex locked in either thread (the main thread or the audio callback thread) is extremely minimal (i.e., as tight as I can make it.) All the same, is this bad? Is it bad because a mutex can "preempt" a thread? Does that mean, if the mutex blocks, the thread schedular will let some other thread run (for well over the time limit the audio callback had) before getting back to it?
I could try switching over to a lock-free queue and try that. However, this doesn't sound (pun intended) like a latency problem, because the audio is not being interrupted. It's just playing in slow motion. Or could slow-motion audio playback also be a symptom of using mutexes in the audio callback?
from oboe.
Never mind. I fixed the bug, and it was in my code. The audio now plays as expected.
from oboe.
Related Issues (20)
- Crash in AudioStreamAAudio::read HOT 8
- Phone volume buttons can't control the bluetooth with VoiceComm HOT 3
- Help to resolve Samsung devices support 3.5 mm headphones and Type C headphones. HOT 1
- How to set the microphone direction in Oboe similar to audioRecord.setPreferredMicrophoneDirection() HOT 1
- OboeTester: add DataPaths test to catch b/270535408, ch=3 and Effects HOT 1
- Normalized correlation should handle when both sides are zero HOT 1
- Flowgraph call count needs cleanup
- OboeTester automation buffer_bursts not updating BufferSize UI properly
- SampleRateConverter in flowgrap was reading out of bounds on first call
- Unit tests are using deprecated raw pointer, should use shared_ptr
- Will oboe use raw error callback when the client release shared pointer? HOT 3
- Unit tests failing in VerifyFullDuplexStream, callback count off
- OboeTester analyzer crashes with assertion "numSamples <= mMaxSamples" failed HOT 1
- FifoBuffer.getFullFramesAvailable() can be const
- AppCompat and other changes needed for google3 build HOT 1
- How to import iolib/parselib HOT 1
- Turn on Oboe sample rate conversion by default
- System properties like "aaudio.mmap_policy" going away, need fallback solution
- Time Stretching with Oboe and SoundTouch
- Oboe sometimes cannot play very short sounds HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oboe.