1.3 KiB
iOS broadcast-audio ring format
The ReplayKit extension or iOS 27 ScreenCaptureKit host producer exchanges audio with the
managed host consumer through broadcast_audio.ring in the group.me.iamtalon.voicecat App
Group. Only one producer is active at a time. Version 1 is a 64-byte little-endian header
followed by 96,000 signed 16-bit PCM samples (one second of stereo at 48 kHz).
| Offset | Type | Meaning |
|---|---|---|
| 0 | uint32 |
Magic 0x56434252 (VCBR) |
| 4 | uint32 |
Version, currently 1 |
| 8 | uint32 |
Channel count; active writers use 2 |
| 12 | uint32 |
Sample rate; active writers use 48000 |
| 16 | uint32 |
Active flag (0 or 1) |
| 20 | 4 bytes | Reserved, zero |
| 24 | uint64 |
Monotonic producer/write sample index |
| 32 | uint64 |
Monotonic consumer/read sample index |
| 40 | 24 bytes | Reserved, zero |
The payload starts at byte 64 and contains interleaved little-endian int16 PCM. The aligned
indices are single-producer/single-consumer counters; producer and consumer publish their owned
index with a release barrier and read the other index with an acquire barrier. A writer drops a
whole input chunk when it cannot fit. Changing this layout requires a new version and compatible
readers; offsets in version 1 must never be repurposed.