FrameSequencerOptions
Defined in: sequencer.ts:52
Options for createFrameSequencer.
Properties
Section titled “Properties”catchUpAfterUs?
Section titled “catchUpAfterUs?”catchUpAfterUs?: number;Defined in: sequencer.ts:86
Signal a catch-up when frames keep arriving late with none delivered: from the first frame dropped as late to the
latest is at least this long, in microseconds of the clock’s local time. Late means past the late-drop limit
(frame grouping) or the target latency (keyframe grouping), as when a relay holds a growing backlog for this
subscriber. The poll after that frame returns catchUp: true, once, until a frame is delivered again; whoever owns
the subscription then replaces it at the live edge (a supervised subscriber’s catchUp(key)), which drops the
relay’s backlog, and restarts the sequencer. Set it below the clock’s target latency, or a resync re-anchors on
the late frames first. Default: never. Positive and finite.
clock: PlayoutClock;Defined in: sequencer.ts:54
The broadcast’s playout clock. It holds the target latency and is where lateness is measured.
grouping?
Section titled “grouping?”grouping?: "keyframe" | "frame";Defined in: sequencer.ts:59
'keyframe' (default): a keyframe opens each group and later objects depend on it, as video. 'frame': every
group is independently decodable, as audio.
lateDropUs?
Section titled “lateDropUs?”lateDropUs?: number;Defined in: sequencer.ts:67
Frame grouping only: how far behind the clock’s position a frame may still be delivered, in microseconds. Default:
the clock’s lateDropUs, which every track on the clock shares. A listener set to drop late audio sets it near
its playout target; a reader that wants every frame, such as speech-to-text, sets Infinity. Not negative.
reorderWindowUs?
Section titled “reorderWindowUs?”reorderWindowUs?: number;Defined in: sequencer.ts:76
Frame grouping only: how long, in microseconds of the clock’s local time, a frame waits for an earlier group that has not arrived, counted from when the frame arrived. Default 0: frames go out at once and an earlier group that arrives after a later one is dropped as behind. A frame that turns late while it waits is dropped as late. For a reader that wants every frame of a talker, set it to at least the publisher’s delivery timeout: a group the publisher’s transport is still resending can arrive that long after the group that follows it. Finite, not negative.
timestampPlayout?
Section titled “timestampPlayout?”timestampPlayout?: | boolean | TimestampPlayoutOptions;Defined in: sequencer.ts:99
Frame grouping only: hold frames that arrive early and release each at its timestamp, for a talker that sends
faster than real time, such as a text-to-speech agent handing over a reply in bursts. Without it, a frame more than
the clock’s target latency ahead of the position makes the sequencer resync forward, as after a stall, which drops
what the player holds and re-anchors on the newest frame. With it, a frame is held until its timestamp is within
leadUs of the position, and only a frame more than horizonUs ahead resyncs forward. While the clock has no
position, the first frame anchors one of the sequencer’s own on the clock’s local time, which gives way to the
clock’s once the player reports. Late drop, resyncs and catch-up are unchanged, so a live talker’s frames, which
are never early, play as without it. Delay that underruns added (the clock fell behind local time while a queue
built) is given back: held frames go out early by it, less 40 ms, so the jitter buffer trims it, as without this
option. true takes the defaults of TimestampPlayoutOptions. Default off.
trackProperties?
Section titled “trackProperties?”trackProperties?: readonly KeyValuePair[];Defined in: sequencer.ts:61
The track properties from SUBSCRIBE_OK, which may declare the Timescale.