mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
1.4 KiB
1.4 KiB
status, date, definition
| status | date | definition |
|---|---|---|
| implemented | 2026-05-20 | sketched |
Buffer management
Buffer management is the segment-level policy between loading gates and MediaSource operations.
Implemented decisions
- Plan a bounded amount of media ahead of current time and evict old back-buffer data.
- Deduplicate work by media type, segment, and selected quality while still permitting gap repair and seek-back recovery.
- Continue useful in-flight work and preempt work that no longer serves the current plan.
- Stream media chunks to the buffer actor while treating initialization data atomically.
- Give each media type a shared loading gate derived from preload and source state.
- Keep planning policy separate from the SourceBuffer actor that serializes browser operations.
These choices make seeks, quality changes, and playback-rate changes inputs to the same planner rather than special loading pipelines.
Deferred scope
Rate- or network-aware buffer targets, learned quota policy, loop anticipation, cross-codec changeType(), and a public buffer-health model require separate evidence and design.
Current sources of truth
- Segment planner and loading behavior:
packages/spf/src/playback/behaviors/dom/load-segments.ts - Segment and SourceBuffer actors plus tests:
packages/spf/src/playback/actors/dom/ - Loading gates:
packages/spf/src/playback/behaviors/sync-preload.tsandpackages/spf/src/playback/behaviors/dom/track-load-triggers.ts