RustyOpus.Quality (rusty_opus v0.3.3)

Copy Markdown View Source

Quality presets for encoding / re-encoding ("changing the quality").

Three presets tune bitrate, complexity, and VBR/CBR together:

  • :low — 24 kb/s, complexity 4
  • :medium — 48 kb/s, complexity 8
  • :high — 96 kb/s, complexity 10

Higher presets produce larger Opus packets with better fidelity. :target_bitrate overrides the preset's bitrate, and any other RustyOpus.Settings option can be passed as an override too.

Summary

Functions

The preset tables as a map of atom → settings keyword list.

Resolves a quality spec (preset atom or RustyOpus.Settings) plus overrides into validated settings.

Types

quality()

@type quality() :: :low | :medium | :high | RustyOpus.Settings.t()

Functions

presets()

@spec presets() :: %{required(atom()) => keyword()}

The preset tables as a map of atom → settings keyword list.

to_settings(quality, opts \\ [])

@spec to_settings(
  quality(),
  keyword()
) :: {:ok, RustyOpus.Settings.t()} | {:error, RustyOpus.Error.t()}

Resolves a quality spec (preset atom or RustyOpus.Settings) plus overrides into validated settings.

Options

:target_bitrate overrides :bitrate; any RustyOpus.Settings key may override the preset value.