LibMedia: Change demuxers to use IncrementallyPopulatedStream as input

Refactor the FFmpeg and Matroska demuxers to consume data through
`IncrementallyPopulatedStream::Cursor` instead of a pointer to fully
buffered.

This change establishes a new rule: each track must be initialized with
its own cursor. Data providers now explicitly create a per-track context
via `Demuxer::create_context_for_track(track, cursor)`, and own pointer
to that cursor. In the upcoming changes, holding the cursor in the
provider would allow to signal "cancel blocking reads" so an
in-flight seek can fail immediately when a newer seek request arrives.
This commit is contained in:
Aliaksandr Kalenik
2025-12-12 13:15:14 +01:00
committed by Gregory Bertilson
parent b9db157cea
commit c5d8cb5c47
Notes: github-actions[bot] 2025-12-16 08:44:38 +00:00
22 changed files with 304 additions and 294 deletions

View File

@@ -323,7 +323,7 @@ private:
GC::Ptr<TextTrackList> m_text_tracks;
// https://html.spec.whatwg.org/multipage/media.html#media-data
ByteBuffer m_media_data;
RefPtr<Media::IncrementallyPopulatedStream> m_media_data;
// https://html.spec.whatwg.org/multipage/media.html#can-autoplay-flag
bool m_can_autoplay { true };