Optional ReadonlyenabledPause playback while the requested detection window is unavailable. A
session with appendable detections turns this on by default, since a source
still being written is the case worth waiting for; playbackGate: false on
the session turns it off.
Optional ReadonlyrequiredDetection lead required ahead of the playback time before an enabled gate lets playback continue. Defaults to none, which asks only that the frame about to be presented is covered.
Optional ReadonlymaxHow long an enabled gate holds playback before it gives up and presents the
frame with whatever detections exist. Infinity waits indefinitely.
Inference can fail, fall behind, or be cancelled, and none of those look any different to the gate from a result still on its way. Once a wait is abandoned, a source that reports versions is not waited on again until it gains data, so a producer that has stopped costs one wait, not one a frame.
Detection-coverage playback gate, off unless
enabledsays otherwise.Off, annotations catch up to the picture and never hold it: a frame the buffered window does not cover presents without annotations. On, playback waits for the requested coverage before the next frame is presented, and the renderer reports buffering for as long as that wait lasts.
On a media source the renderer pulls samples from, that wait happens between pulling one decoded sample and drawing it. A source that presents its own frames runs the playhead itself, which covers the browser package's video-engine source,
openVideoEngineMediaSource. There the renderer stops the producer for the wait and starts it again afterwards, before playback begins and again at any frame the source cannot answer for yet.Either way the renderer reports
Bufferingfor as long as the wait lasts, andmaxWaitSecondsbounds it, so a producer that has stopped answering costs that wait once rather than stranding the picture.