]> Sergey Matveev's repositories - go-opus.git/commitdiff
docs: add clear list of features and non-features
authorHraban Luyat <hraban@0brg.net>
Wed, 2 Mar 2022 20:19:21 +0000 (15:19 -0500)
committerHraban Luyat <hraban@0brg.net>
Wed, 2 Mar 2022 22:09:29 +0000 (17:09 -0500)
README.md

index f615e84972611534e0a79042c2cdc89fa508482d..eb7ddbaedf16abcc89c25a01e71fe7c84e77e172 100644 (file)
--- 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