OGG
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Symphonia Audio Decode.
At a glance
| Original creator | The Xiph.Org open-source project |
| Purpose | A container for Vorbis audio and other Xiph audio and video streams. |
| Extensions | .m4a, .flac, .oga, .ogg, .opus, .spx, .alac, .wavpack, .tak, .aif, .aiff, .wma, .wmapro, .asf, .atrac, .at3, .m4b |
| Poka parser | poka-symphonia |
| Viewer | none: the parser draws its own preview |
| Depth tier | Standalone parser (see Depth tiers) |
| Breadth tier | B5 Identification (see Breadth tiers) |
How much Poka reads
B5 Identification. The format is recognised and a few properties are shown (name, size, version string). Nothing of the content is decoded.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: .ogg and .oga are aliases of poka-symphonia, whose preview_bytes returns the POKA_MEDIA|audio marker by extension alone, without checking the OggS magic. The browser plays the original file (web/tests/audio.spec.js plays tos.ogg). Corpus has tos.ogg, Turdus_merula_2.ogg and chained-meta*.ogg; no test reads their structure. poka-opus (.opus-info only) walks Ogg pages for Opus, but no Ogg or Vorbis card exists and .ogg does not reach poka-opus. Judgement: B5 because Poka reads nothing; playback is delegated. Covers Ogg version 0 files.
What Poka does not read
- Ogg pages and logical streams are not read (serial numbers, chaining, granule positions)
- codec is not identified (Vorbis, Opus, FLAC, Speex, Theora)
- Vorbis comment tags and cover art are not shown
- duration, sample rate and channels are not shown
- chained and multiplexed streams are left to the browser
- no check that the file is Ogg at all
- files the browser cannot play show only an unsupported note
Background
The Library of Congress calls Ogg a wrapper for Vorbis sound data and other bitstreams, and the Xiph site calls it a container and an encapsulation format (version 0). Poka does not decode Ogg itself: the module hands the original file to the frontend, which plays it in the browser's audio element, without checking the file first.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| Ogg encapsulation format, version 0 (RFC 3533) | OggS |
Not recorded | Played by the browser, so the codecs that play are the browser's. |
Derived and related formats
- Ogg audio (
.oga): Has its own row in FILE_FORMATS.csv. - Opus in Ogg (
.opus): Has its own row in FILE_FORMATS.csv. - Speex in Ogg (
.spx): Has its own row in FILE_FORMATS.csv.
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- symphonia (used; MPL-2.0; Rust)
- lewton (candidate; Apache-2.0 OR MIT; Rust; https://github.com/RustAudio/lewton) — Pure Rust Vorbis decoder, no unsafe code; does not cover Opus or FLAC-in-Ogg
- ogg (RustAudio) (candidate; BSD-3-Clause; Rust; https://github.com/RustAudio/ogg) — Container demux/mux only; no codec decoding
Sources
- https://loc.gov/preservation/digital/formats/fdd/fdd000026.shtml
- https://www.rfc-editor.org/rfc/rfc3533
- https://en.wikipedia.org/wiki/Ogg
- parsers/poka-symphonia/src/main.rs