AudioMixConfiguration

Configure an AudioMix Media Node.

Field

Type

Repeated

Description

id

MediaNodeId

The Media Node Id

sources

AudioMixSource

✅

The audio sources to mix

output_source_name

string

The source name to use for the output stream

sample_rate

SampleRate

The sample rate that the mixer runs at

channel_layout

ChannelLayout

The channel layout that the mixer runs with

block_on_inbound_context_change

bool

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

OptionalInt

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.

Member of

Message

Description

AudioMixMessage