Select the frame whose [mediaTime, endTime) interval contains the media
time. This is the default for interval annotations and timestamped sources.
Frame times must come from the media itself. Times reconstructed from a nominal frame rate drift against a clip whose real rate differs, and once that drift passes the half-millisecond selection tolerance a playhead landing on a frame boundary selects the previous frame's detections.
A frame that carries no endTime stays active until the next frame starts,
which bridges an index the source never produced.
DetectionFrameSelectionMode.NearestFrameIndex bounds each frame to
one grid step instead, so a missing index reads as no detections.
Select from a known inference frame grid using frameIndex and
frameRate. This is useful when inference was run on normalized frames and
playback should snap detections to that grid.
A frame speaks for one grid step starting at its own media time, and an index the source never produced selects nothing rather than a neighbour.
A frame carrying no frameIndex speaks for its step on the same terms,
reached by the time it starts at rather than by an index that names it. Its
endTime does not widen it past that step, so a source that labels only
part of what it writes cannot bridge the indexes it never produced.
How the renderer selects the active detection frame for a media timestamp.