public interface IVideoContentSourceTurns the address in a VideoClip into bytes to demux.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
A seam rather than a dependency, and the dependency graph is the reason. Nothing in Core/ references Vixen.Assets — the asset system is a leaf that a game and the tools use, not something the modules underneath it are built on — so a video module that called AssetManager.Load would be the first, and would make every game that plays a sting link the addressables system to do it.
⚠ The stream has to be seekable. A demuxer looks for the segment's cues at the end of the file and comes back, and every seek — including the one a loop is — moves it. A forward-only stream is legal to hand over and fails on the first of those, which is at MatroskaDemuxer's construction rather than at playback, so it fails early and says so.
The two implementations here need nothing: FileVideoContentSource for a video that shipped as a file, which is how a video usually ships, and DelegatedVideoContentSource for everything else. An addressable one is three lines over AssetManager.Open and belongs to whoever has both.
Methods (2)
Stream Open(string address)Opens a video's bytes.
bool Exists(string address)Whether there is anything at an address, without opening it.
Used by (3)
- DelegatedVideoContentSourceVixen.Video
- FileVideoContentSourceVixen.Video
- VideoPlaybackVixen.Video