AudioMixConfiguration
Configure an AudioMix Media Node.
Field |
Type |
Repeated |
Description |
id |
The Media Node Id |
||
sources |
✅ |
The audio sources to mix |
|
output_source_name |
The source name to use for the output stream |
||
sample_rate |
The sample rate that the mixer runs at |
||
channel_layout |
The channel layout that the mixer runs with |
||
block_on_inbound_context_change |
Stop at each change in the set of streams being mixed: send validated_context, and hold that context and the audio behind it until it is unblocked. For a client with something to do at that point; without it the mixer carries straight on and validated_context is never sent. |
||
max_queue_ms |
Opt-in bound on how long the mix waits for a pin that is behind. Unset, the mix waits for every pin (for up to 10 s), so it runs as late as its latest pin. Set, the mixer paces itself by a clock of its own that runs in real time (the engine’s clock, which the inputs' timestamps are on), and a pin more than this far behind it (or one that has sent nothing for that long) is left out of the mix, silent, until it catches up; the audio it sends for moments already mixed is discarded. A pin ahead of real time waits for the clock and is mixed when its timestamps come round (frames more than 10 s ahead are discarded); it does not make the others late. Costs up to this much latency (plus about a frame) whenever a pin is late, and a pin always further behind is never heard. The bound counts from when the audio was received by the engine, so it has to cover the time audio takes to reach the mixer (decoding, any jitter buffer on the way): set lower than that, every pin is late, and the mix is silent. |