Package Exports
- cjopus
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (cjopus) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
CJOpus
Emscripten (C++/JavaScript) bindings for libopus
A module to encode PCM data to and decode PCM data from Opus.
Using
The lib folder includes a pre-compiled version. Requiring the Opus.js entrypoint file should be enough.
OpusEncoder
//Tries to mimic `node-opus` in syntax.
var encoder = new OpusEncoder( 48000, 2 );OpusEncoder#encode(Buffer/TypedArray/Array)
var PCM = getPCMDataSomehow();
var encoded = encoder.encode( PCM );OpusEncoder#decode(Buffer/TypedArray/Array)
var OPUS = getOPUSDataSomehow();
var decoded = encoder.decode( OPUS );OpusEncoder#encodeUnsafe / OpusEncoder#decodeUnsafe
These two methods work just like the safe versions, however they don't do any error checking and they use .subarray() instead of .slice(). Because of this, it's a bit faster. It's relatively safe to use, just know that if an encoding error happens, it will return an empty Uint8Array (encode) or Int16Array (decode).
OpusEncoder#destroy()
encoder.destroy();Since this is an Emscripten module (that also has to malloc), the memory also needs to be freed manually when finished. It's a small program, perhaps under 30KB of dynamically allocated memory, but that can add up.
Building
The required packages for building (under Debian-based distros) are:
- git
- build-essential
- libtool
$ git clone --recursive https://github.com/izy521/CJOpus.git
$ cd CJOpus
$ make