From: Hraban Luyat Date: Wed, 2 Mar 2022 20:19:21 +0000 (-0500) Subject: docs: add clear list of features and non-features X-Git-Tag: v2.0.0~5 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=113388bc92a2c928bd74dbaa653473661e058bc7;p=go-opus.git docs: add clear list of features and non-features --- diff --git a/README.md b/README.md index f615e84..eb7ddba 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,23 @@ libopusfile. The C libraries and docs are hosted at https://opus-codec.org/. This package just handles the wrapping in Go, and is unaffiliated with xiph.org. +Features: + +- ✅ encode and decode raw PCM data to raw Opus data +- ✅ useful when you control the recording device, _and_ the playback +- ✅ decode .opus and .ogg files into raw audio data ("PCM") +- ✅ reuse the system libraries for opus decoding (libopus) +- ✅ works easily on Linux, Mac and Docker; needs libs on Windows +- ❌ does not _create_ .opus or .ogg files (but feel free to send a PR) +- ❌ does not work with .wav files (you need a separate .wav library for that) +- ❌ no self-contained binary (you need the xiph.org libopus lib, e.g. through a package manager) +- ❌ no cross compiling (because it uses CGo) + +Good use cases: + +- 👍 you are writing a music player app in Go, and you want to play back .opus files +- 👍 you record raw wav in a web app or mobile app, you encode it as Opus on the client, you send the opus to a remote webserver written in Go, and you want to decode it back to raw audio data on that server + ## Details This wrapper provides a Go translation layer for three elements from the