MediaStoreSourceGap

A source of a cut a player follows the live edge of dropped (the recorder lost its streams) while the recording session went on: every stream the cut reads, or some while the others went on. Where session_gap fills, playback holds and then fills from where the streams got to, in real time, and carries on as far behind the recording when they are back; streams that drop while others go on are filled alone, the others playing on as recorded. Sent as playback reaches the drop, and as the streams are back (ended). Elsewhere playback waits at the drop of every stream, and the hole then plays out as recorded; streams that drop while others go on are left out until they are back. The fill only starts once the recorder knows the source has gone: at once for a closed connection, but only after an input’s loss timeout for a feed that goes quiet, so a delay behind live shorter than that still waits at the drop for the difference. Waiting for the source counts towards live.await_next_session_ms.

Field

Type

Repeated

Description

cut_index

uint32

Which of the request’s cuts

session

uint32

The recording session the source dropped in

gap_start

google.protobuf.Timestamp

When the source stopped recording the cut’s streams

ended

bool

The source is back: gap_ms and treatment say how long it was gone, on the recording’s own times, and how playback bridged that

gap_ms

uint32

treatment

MediaStoreSessionJoin.Treatment

stream_keys

StreamKey

✅

The streams the drop took away (the player’s output streams)

Member of

Message

Description

MediaStorePlayerEvent