Pure Go implementation of the Opus audio codec (RFC 6716 / RFC 8251). This is a
backward-compatible additive release over v1.1.1.
Public API expansion
- Multistream encoder/decoder APIs.
- Surround with standard channel mappings.
- Projection / Ambisonics (mapping families 2 and 3).
- Ogg Opus container (single logical stream).
- Packet extensions (RFC 8251 padding/extension parsing and generation).
- Repacketizer and packet padding helpers; packet-inspection helpers.
- 24-bit PCM (
Encode24/Decode24) and float32 encode/decode. - CELT phase-inversion controls; production codec controls, getters, and a
libopus-defaults profile; automatic/maximum bitrate; broadened voice-mode rate
policy.
In-band FEC (LBRR)
- SILK-only and hybrid in-band FEC encode and decode for mono and stereo
(SetInbandFEC+ non-zero packet-loss percentage).DecodeFECreconstructs
lost frames from the redundant copy; missing/inactive slots fall back to PLC.
SILK encoder quality
- Proper
silk_find_LPC_FLP-path NLSF target (Burg LPC + A2NLSF), active NLSF
interpolation, and voiced/unvoiced delayed-decision (trellis) NSQ. - Fixed a low-F0 first-frame pitch misdetection (16 kHz speech-harmonic peak
overshoot). On the AB scoreboard the encoder now matches or beats libopus on
all 15 sampled cells (8/12/16 kHz × silence/unvoiced/steady/harmonic/onset).
Decoder
- RFC 8251 official vector suite at 12/12 PASS; verified against libopus 1.6.1
via the opusref reference tests.
Hardening
- Expanded opusref interoperability CI, parser fuzz targets, PLC/FEC separation,
and assorted defensive fixes (PLC pitch-history update at 16 kHz, packet
padding overflow guard, content-hint reapply on encoder Reset).
Full changelog: v1.1.1...v1.2.0