Skip to content

v1.2.0

Latest

Choose a tag to compare

@darui3018823 darui3018823 released this 25 Jun 02:33
· 11 commits to main since this release
26e4bd2

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). DecodeFEC reconstructs
    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