Go wrapper for Opus. Fork of https://github.com/hraban/opus
Go to file
2015-07-12 11:08:13 +00:00
libopus@45cbdff36f Submodule libopus (official C libs from Xiph) 2015-02-18 16:50:51 +00:00
libopusfile@c00791b37e Libopusfile submodule 2015-07-05 10:43:32 +00:00
testdata Compare pre-decoded wav with decoded opus data 2015-07-12 11:08:13 +00:00
.gitignore .gitignore build directory 2015-07-05 21:04:03 +01:00
.gitmodules Libopusfile submodule 2015-07-05 10:43:32 +00:00
callback_proxy.c (untested) libopusfile simple decoder API 2015-07-05 20:28:08 +01:00
callback_proxy.h (untested) libopusfile simple decoder API 2015-07-05 20:28:08 +01:00
decoder.go .Init method for preallocated codecs 2015-07-05 14:42:05 +01:00
encoder.go (untested) libopusfile simple decoder API 2015-07-05 20:28:08 +01:00
errors.go Refactoring the tests, wip (but passing) 2015-07-12 10:22:25 +00:00
LICENSE MIT license 2015-03-09 12:31:24 +00:00
Makefile Don't delete submodule autogen.sh on make error 2015-07-05 11:52:36 +01:00
opus.go (untested) libopusfile simple decoder API 2015-07-05 20:28:08 +01:00
opus_test.go .Init method for preallocated codecs 2015-07-05 14:42:05 +01:00
README.md Extra note in README about installation 2015-07-05 15:01:20 +01:00
stream.go Refactoring the tests, wip (but passing) 2015-07-12 10:22:25 +00:00
stream_test.go Compare pre-decoded wav with decoded opus data 2015-07-12 11:08:13 +00:00

opus, by xiph.org

This package provides Go bindings for the C library libopus, by xiph.org. The library, that is, not the bindings. The bindings are by me, Hraban.

Build & installation

Installation is a bit of a mess right now but I'm working on simplifying it. Here's the summary:

make
go build

Now, here's the annoying part: the libopus.a and libopusfile.a files from the current directory must always be present in every directory you use this this package from. So if you create a new media player in Go and you include libopus, you must put those .a files in your media player project directory.

The advantage is that this puts the burden of managing libopus on the user of this go opus package (i.e. you), but not on the user of their program. In the media player example: you, the programmer, will have to manage the .a files, but the users of your media player can use those bundled .a files without having to apt-get or otherwise install anything related to opus. This is a worthwile trade-off as long as opus is not widely available for all major platforms, yet.

It can be changed (https://groups.google.com/d/msg/golang-nuts/lF5skXi7OD4/SjwQbgju91QJ) but that's on my TODO list for now, under "not worth the trouble until a lot of people actually use this."

License

The licensing terms for the Go bindings are found in the LICENSE file. The licensing terms for libopus and libopusfile are probably found in their respective source directories, which are checked out as git submodules as part of the build process.

However, because libopus and libopusfile are not (by source nor binaries) included in this package, this package, in source code form, is (should be?) unaffected by their licenses. That changes once you run make, which will download the Opus source code, and go build, which will link it.

Hraban

hraban@0brg.net