[package]
name = "ropus"
version = "0.12.6"
edition = "2024"
rust-version = "1.88"
description = "Rust port of the xiph Opus audio codec (fixed-point), bit-exact against the reference."
license = "BSD-3-Clause"
repository = "https://github.com/0x4D44/ropus"
readme = "README.md"
keywords = ["opus", "audio", "codec", "dsp"]
categories = ["multimedia::audio", "multimedia::encoding"]
authors = ["Martin Davidson <martingdavidson@gmail.com>"]
include = [
    "src/**/*",
    "examples/**/*",
    "build.rs",
    "build/**/*",
    "Cargo.toml",
    "README.md",
    "LICENSE",
]

[features]
default = []
# Phase B encode-side trace tuples for Cluster A stage 2b. Emits
# `(boundary_id, channel, ec_tell, rng, target_rate_bps, n_bits_exceeded,
# curr_n_bits_used_lbrr, n_bits_used_lbrr, mid_only_flag,
# prev_decode_only_middle)` records at the 7 boundary points enumerated
# in the encoder-state-accumulation HLD §2.3. Off by default; the
# diagnostic binary `fuzz_repro_diff` opts in. No production code path
# has trace-emit calls outside this gate.
trace-silk-encode = []

[dependencies]
wide = "0.7"

[build-dependencies]
# Used by build.rs only to compile + run a tiny weight-blob generator
# when the xiph reference sources are present. Builds without a C
# toolchain still succeed — the blob is emitted empty in that case.
cc = "1"

[dev-dependencies]
proptest = "1"
ogg = "0.9"
