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 |
Which of the request’s cuts |
||
session |
The recording session the source dropped in |
||
gap_start |
google.protobuf.Timestamp |
When the source stopped recording the cut’s streams |
|
ended |
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 |
|||
treatment |
|||
stream_keys |
✅ |
The streams the drop took away (the player’s output streams) |