Opus-tools

From XiphWiki
Jump to navigation Jump to search

Opus-tools is a collection of tools for working with opus files currently under development.

Features

  • working build system

Encoder

  • Robust wav input (steal battle tested code from oggenc, e.g. float and multichannel works)
  • Resampling
  • bitrate selection
  • VBR/CBR/CVBR
  • Application selection (audio/voip)
  • Mode forcing
  • Metadata (emulate oggenc feature set)
  • Multichannel
  • Muxing delay control (naive usage of libogg will result in 5 second mux delay on silence)
  • Not needed in initial release:
    • Replay gain (but it's important as we want players to actually heed it)
    • LPC padding (code for this is very simple, see postfish) but needs some way of setting the prefill inside opus.
    • In CELT_ONLY Switch the last frame size to the smallest size that will fit the remaining samples (reduces padding overhead, makes sure mixed sizes get tested)
    • crop and/or track split arguments (if data outside of the encoded area is available, use that instead of the LPC padding)
    • Exposes all sanely exposable parts of the Opus API (important for testing, even if things are hidden)
    • Flac input (?; code for this is in oggenc)

Decoder

  • Resampling
  • Multichannel
  • metadata display
  • Wav output
  • audio playback (libao?) or omit and leave for ogg123
  • decodes chained files
  • Not needed for the initial release:
    • Lookahead limiter (copy from postfish)
    • Dither for 16 bit output