I’m working with the Push-to-Talk (PTT) framework and observing a consistent delay when starting audio capture.
Scenario:
- A PTT call is already active
- The AVAudioSession is fully configured
- I request beginTransmission on the PTT channel
- I start my Audio Unit for recording (AudioOutputUnitStart)
Observed behavior:
- AudioOutputUnitStart takes ~500 ms
- This happens whether I start the Audio Unit:
- after didBeginTransmission, or
- after AVAudioSession didActivate
Comparison:
- Using the same Audio Unit, same format, and same configuration
- Without the PTT framework, AudioOutputUnitStart takes ~200 ms
Additional notes:
- I am not modifying or reconfiguring AVAudioSession when requesting beginTransmission
- The audio session is already set up when the PTT call starts
- There are no interruptions or route changes at the time of starting the Audio Unit
Impact: This extra latency is significant for Push-to-Talk use cases where fast transmit start is critical.
AudioOutputUnitStart takes ~500 ms
I messaged the engineer who owns the PTT framework about this, but my initial reaction is that this is about what I'd expect. Activating the PTT session is inherently slower than direct activation, as it requires both significantly more IPC than standard activation (as the request goes through callservicesd and then the audio system) and the system needs to play the recording alert tone before turning control to your app.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware