onemediaDocs
onemedia docs
Everything about OneMedia: getting started, how MP4 and Matroska files are read, tags, the common view and capture facts, codec headers, the OneAudio adapter, and how each claim is checked. OneMedia is a preview, 0.1.0-preview.1. It reads containers and decodes nothing.
Start
Getting startedInstall OneMedia 0.1.0-preview.1 for .NET 10, open an MP4 or a Matroska file, and read its tracks, codecs, tags and capture facts. OneMedia reads media containers in managed code with no dependency beyond .NET.OverviewThe goal is the depth of libavformat, GPAC, mkvtoolnix, MediaInfo and ExifTool in one library you can call from C#: demux and mux, lossless tag editing, evidence-backed capture time and place, subtitles and captions, repair, and HLS/DASH packaging. It never decodes or encodes…
Containers
MP4, MOV and 3GPHow RecursiveAI.OneMedia.IsoBmff reads these files. Specifications: ISO/IEC 14496-12 (clause numbers in the code comments), the QuickTime File Format specification for the atom differences, 3GPP TS 26.244 for 3GP. Codec configuration boxes (avcC, hvcC, esds, …) are carried as…Matroska and WebMHow RecursiveAI.OneMedia.Matroska reads these files and how the result is compared with other implementations. Specifications: RFC 8794 (EBML), RFC 9559 (Matroska); section numbers are in the code comments. WebM is Matroska with DocType webm; both go through the same reader.Codec headersBehaviour of RecursiveAI.OneMedia.Codecs.*: header parsing and repackaging only. No sample is decoded or encoded.
Tags and facts
Tags and capture factsHow RecursiveAI.OneMedia.Tags and RecursiveAI.OneMedia.Metadata read the tags of ISO base media files (MP4, MOV, 3GP) and Matroska/WebM, and what the common view and the basic facts are built from. Writing tags is a later feature; the models are shaped so a writer can…Tag mappingHow the common tag view picks values from the native tag systems. The table is the one the code reads (TagMappingTable.Rows); this page is generated from it, and a test fails when they differ.
How it is checked
Differential and I/O harnessHow the readers are checked against reference tools, and how probe cost is measured. The code is the console app tools/OneMedia.Oracles plus the scripts under tools/oracles and tools/corpus. None of it ships in a package.Benchmarksbench/OneMedia.Bench measures OneMedia against managed comparators and prints the ratio, allocations and memory for each row. It is a console app, not packed, and the only project that references the comparator packages.Speed run: x64The 0.1 speed run on x64 (AMD Ryzen 9 7950X3D, Linux): every file, implementation, median time, ratio, allocations and memory, the reference tools’ wall times, and the rows against the bar.Speed run: arm64The 0.1 speed run on arm64 (Apple M2, macOS): every file, implementation, median time, ratio, allocations and memory, the reference tools’ wall times, and the rows against the bar.