// SPDX-FileCopyrightText: © 2026 Jeffrey C. Ollie // SPDX-License-Identifier: MIT //! Matroska and WebM for Zig, with no I/O of its own. //! //! - `Demuxer` reads a stream pushed into it and reports the header, the //! tracks, every frame, the index, chapters, tags and attachments, asking //! the caller to seek rather than seeking. //! - `Muxer` writes frames to a `std.Io.Writer`, and returns as patches what //! the start of the file could not know until the end. //! - `io` drives both from `std.Io` files and readers, for when that is //! where the bytes are. //! - `ebml` is the encoding underneath (RFC 8794): a push tokenizer, an //! iterator over elements in memory, and an element writer. //! - `schema` is every element of the specification, generated from its //! own EBML schema. //! - `info`, `tracks`, `cues`, `seek_head`, `chapters`, `tags` and //! `attachments` are the metadata, each with a parser and a writer; //! `block` is the inside of a block and its lacing; `content` undoes //! content encodings; `webm` is the WebM profile. pub const schema = @import("schema.zig"); pub const ebml = @import("ebml.zig"); pub const block = @import("block.zig"); pub const info = @import("info.zig"); pub const tracks = @import("tracks.zig"); pub const cues = @import("cues.zig"); pub const seek_head = @import("seek_head.zig"); pub const chapters = @import("chapters.zig"); pub const tags = @import("tags.zig"); pub const attachments = @import("attachments.zig"); pub const content = @import("content.zig"); pub const Demuxer = @import("Demuxer.zig"); pub const Muxer = @import("Muxer.zig"); pub const webm = @import("webm.zig"); pub const io = @import("io.zig"); test { _ = schema; _ = ebml; _ = block; _ = info; _ = tracks; _ = cues; _ = seek_head; _ = chapters; _ = tags; _ = attachments; _ = content; _ = Demuxer; _ = Muxer; _ = webm; _ = io; }