How thefocusman/videobrowser works
Video Browser is a lightweight MP4 metadata and sample-location reader that works on a stream rather than loading the whole file. The documented user flow is to provide a video stream, validate and parse MP4 metadata, then inspect tracks and enumerate or decode samples. The diagram follows the sampled parser and its format structures; the test/benchmark harness is excluded. README capability coverage is limited to MP4, the only format it documents. Unsampled internals are represented only where supported by the source index.
Main entry points: MP4Reader.cs MP4 Reader · MP4Reader.Containers.cs Container Parser · MP4Reader.TracksExplorer.cs Track Explorer · MP4BoxStructure.cs Box Structures
Components 11
Stream Entry
- MP4 Reader
VideoBrowser/MP4Reader.cs - Header Contract
VideoBrowser/IFileHeader.cs
MP4 Parsing
- Container Parser
VideoBrowser/MP4Reader.Containers.cs - Diagnostics
VideoBrowser/Logger.cs
Track Samples
- Track Explorer
VideoBrowser/MP4Reader.TracksExplorer.cs - AVC Description
VideoBrowser/MP4Reader.DescriptionEntry.cs
Binary Format
- Box Structures
VideoBrowser/MP4BoxStructure.cs - FourCC Tags
VideoBrowser/FourCC.cs - Endian Values
VideoBrowser/Endianness.cs - Stream Reads
VideoBrowser/StreamExtentions.cs
Other components
- Stream Client
Connections 14
- Stream Client → MP4 Reader: creates reader
VideoBrowser/MP4Reader.cs - MP4 Reader → Header Contract: validates header
VideoBrowser/MP4Reader.cs - MP4 Reader → Container Parser: parses moov
VideoBrowser/MP4Reader.cs - Container Parser → Box Structures: reads box layouts
VideoBrowser/MP4Reader.Containers.cs - Container Parser → FourCC Tags: matches box tags
VideoBrowser/MP4Reader.Containers.cs - MP4 Reader → Box Structures: reads MP4 boxes
VideoBrowser/MP4Reader.cs - MP4 Reader → FourCC Tags: checks format tags
VideoBrowser/MP4Reader.cs - MP4 Reader → Track Explorer: exposes track queries
VideoBrowser/MP4Reader.TracksExplorer.cs - Track Explorer → AVC Description: decodes samples
VideoBrowser/MP4Reader.TracksExplorer.cs - Track Explorer → Stream Reads: reads sample data
- MP4 Reader → Stream Reads: reads stream values
- Container Parser → Diagnostics: logs box details
VideoBrowser/MP4Reader.Containers.cs - MP4 Reader → Diagnostics: logs parse status
VideoBrowser/MP4Reader.cs - Box Structures → Endian Values: uses endian fields