Skip to main content

ogg_core/
lib.rs

1//! Sans-IO Ogg page/packet mux and demux (RFC 3533) — no OS I/O, no Mediaway
2//! types.
3//!
4//! - [`Muxer`] writes one page per packet (simple, always spec-valid — see
5//!   crate-local ADR-0001 for what real-encoder features are deferred).
6//! - [`Demuxer`] is a true incremental `push_bytes`/`poll_packet` reader that
7//!   handles the general case: multiple packets per page, packets spanning
8//!   continuation pages, and CRC verification.
9//!
10//! `Codec::Opus` already exists in `iso-bmff`'s `Codec` enum (for ISOBMFF
11//! muxing) — this crate is the separate native Ogg transport (carries
12//! Opus/Vorbis/FLAC logical bitstreams), independent of ISOBMFF.
13
14#![forbid(unsafe_code)]
15
16mod crc;
17mod demux;
18mod error;
19mod mux;
20mod types;
21
22pub use demux::Demuxer;
23pub use error::Error;
24pub use mux::{MAX_SINGLE_PAGE_PAYLOAD, Muxer};
25pub use types::Packet;