Giter Club home page Giter Club logo

cjopus's Introduction

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

cjopus's People

Contributors

izy521 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.