opus-codec 0.0.49 → 0.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -0
- package/opus/Decoder.js +6 -5
- package/package.json +1 -1
- package/runtime/index.d.ts +0 -1
- package/runtime/index.js +1 -3
- package/runtime/Pointer.d.ts +0 -10
- package/runtime/Pointer.js +0 -21
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# opus-codec
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
yarn add opus-codec
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import native from '../native';
|
|
13
|
+
export default async () => {
|
|
14
|
+
const runtime = new Runtime(await native());
|
|
15
|
+
const enc = new opus.Encoder(
|
|
16
|
+
runtime,
|
|
17
|
+
48000,
|
|
18
|
+
1,
|
|
19
|
+
opus.constants.OPUS_APPLICATION_VOIP,
|
|
20
|
+
10000,
|
|
21
|
+
frameSizeInBytes
|
|
22
|
+
);
|
|
23
|
+
const frameSizeInSamples = 2880;
|
|
24
|
+
enc.setBitrate(16000);
|
|
25
|
+
console.log(enc.getBitrate()); // 16000
|
|
26
|
+
onreceivesamples = (samples: Float32Array) => {
|
|
27
|
+
const encodedSamples = enc.encodeFloat(
|
|
28
|
+
samples,
|
|
29
|
+
frameSizeInSamples,
|
|
30
|
+
10000
|
|
31
|
+
);
|
|
32
|
+
console.log(
|
|
33
|
+
'encoded buffer: %o',
|
|
34
|
+
enc.encoded().subarray(0, encodedSamples)
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
```
|
package/opus/Decoder.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const runtime_1 = require("../runtime");
|
|
4
4
|
class Decoder {
|
|
5
|
-
#errorPointer;
|
|
6
5
|
#error;
|
|
7
6
|
#decoder;
|
|
8
7
|
#holder;
|
|
@@ -14,16 +13,16 @@ class Decoder {
|
|
|
14
13
|
this.#runtime = runtime;
|
|
15
14
|
this.#holder = new runtime_1.ResourcesHolder();
|
|
16
15
|
this.#error = new runtime_1.Integer(runtime);
|
|
17
|
-
this.#errorPointer = new runtime_1.Pointer(runtime, this.#error);
|
|
18
16
|
/**
|
|
19
17
|
* holder
|
|
20
18
|
*/
|
|
21
19
|
this.#holder.add(this.#error);
|
|
22
|
-
this.#holder.add(this.#errorPointer);
|
|
23
20
|
/**
|
|
24
21
|
* create decoder
|
|
25
22
|
*/
|
|
26
|
-
this.#decoder = runtime
|
|
23
|
+
this.#decoder = runtime
|
|
24
|
+
.originalRuntime()
|
|
25
|
+
._opus_decoder_create(sampleRate, channels, this.#error.offset());
|
|
27
26
|
if (!this.#decoder || this.#error.value() < 0) {
|
|
28
27
|
throw new Error('Failed to create decoder');
|
|
29
28
|
}
|
|
@@ -55,7 +54,9 @@ class Decoder {
|
|
|
55
54
|
/**
|
|
56
55
|
* decode float data
|
|
57
56
|
*/
|
|
58
|
-
const decodedSamples = this.#runtime
|
|
57
|
+
const decodedSamples = this.#runtime
|
|
58
|
+
.originalRuntime()
|
|
59
|
+
._opus_decode_float(this.#decoder, data.offset(), value.byteLength, this.#pcm.offset(), this.#frameSize, decodeFec);
|
|
59
60
|
if (decodedSamples < 0) {
|
|
60
61
|
throw new Error('Failed to decode float');
|
|
61
62
|
}
|
package/package.json
CHANGED
package/runtime/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { default as Integer } from './Integer';
|
|
2
|
-
export { default as Pointer } from './Pointer';
|
|
3
2
|
export { default as Runtime } from './Runtime';
|
|
4
3
|
export { default as Buffer } from './Buffer';
|
|
5
4
|
export { default as ResourcesHolder, IResource } from './ResourcesHolder';
|
package/runtime/index.js
CHANGED
|
@@ -3,11 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ResourcesHolder = exports.Buffer = exports.Runtime = exports.
|
|
6
|
+
exports.ResourcesHolder = exports.Buffer = exports.Runtime = exports.Integer = void 0;
|
|
7
7
|
var Integer_1 = require("./Integer");
|
|
8
8
|
Object.defineProperty(exports, "Integer", { enumerable: true, get: function () { return __importDefault(Integer_1).default; } });
|
|
9
|
-
var Pointer_1 = require("./Pointer");
|
|
10
|
-
Object.defineProperty(exports, "Pointer", { enumerable: true, get: function () { return __importDefault(Pointer_1).default; } });
|
|
11
9
|
var Runtime_1 = require("./Runtime");
|
|
12
10
|
Object.defineProperty(exports, "Runtime", { enumerable: true, get: function () { return __importDefault(Runtime_1).default; } });
|
|
13
11
|
var Buffer_1 = require("./Buffer");
|
package/runtime/Pointer.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import Integer from "./Integer";
|
|
2
|
-
import { IResource } from "./ResourcesHolder";
|
|
3
|
-
import Runtime from "./Runtime";
|
|
4
|
-
export default class Pointer implements IResource {
|
|
5
|
-
#private;
|
|
6
|
-
constructor(runtime: Runtime, value: Integer);
|
|
7
|
-
offset(): number;
|
|
8
|
-
destroy(): void;
|
|
9
|
-
value(): number;
|
|
10
|
-
}
|
package/runtime/Pointer.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Pointer {
|
|
4
|
-
#offset;
|
|
5
|
-
#runtime;
|
|
6
|
-
constructor(runtime, value) {
|
|
7
|
-
this.#runtime = runtime;
|
|
8
|
-
this.#offset = runtime.malloc(runtime.originalRuntime()._size_of_void_ptr());
|
|
9
|
-
this.#runtime.view().setUint32(this.#offset, value.offset(), true);
|
|
10
|
-
}
|
|
11
|
-
offset() {
|
|
12
|
-
return this.#offset;
|
|
13
|
-
}
|
|
14
|
-
destroy() {
|
|
15
|
-
this.#runtime.free(this.#offset);
|
|
16
|
-
}
|
|
17
|
-
value() {
|
|
18
|
-
return this.#runtime.view().getUint32(this.#offset, true);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.default = Pointer;
|