@4players/odin-plugin-web 1.0.0-alpha.9 → 1.0.1
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 +1 -1
- package/cmake/dependencies.cmake +31 -0
- package/cmake/options.cmake +53 -0
- package/esbuild.config.ts +49 -0
- package/lib/plugin/index.d.ts +42 -49
- package/lib/plugin/index.js +1 -292
- package/lib/worker/shared.js +1 -0
- package/lib/worker/unshared.js +1 -0
- package/package.json +34 -29
- package/lib/plugin/audioController.d.ts +0 -107
- package/lib/plugin/audioController.js +0 -488
- package/lib/plugin/config.d.ts +0 -10
- package/lib/plugin/config.js +0 -10
- package/lib/plugin/connectionPool.d.ts +0 -16
- package/lib/plugin/connectionPool.js +0 -110
- package/lib/plugin/mainConnection.d.ts +0 -39
- package/lib/plugin/mainConnection.js +0 -293
- package/lib/plugin/roomConnection.d.ts +0 -36
- package/lib/plugin/roomConnection.js +0 -303
- package/lib/plugin/rpcConnection.d.ts +0 -48
- package/lib/plugin/rpcConnection.js +0 -234
- package/lib/plugin/token.d.ts +0 -17
- package/lib/plugin/token.js +0 -78
- package/lib/wasm/index.d.ts +0 -97
- package/lib/worker/buffers.d.ts +0 -42
- package/lib/worker/buffers.js +0 -79
- package/lib/worker/common.d.ts +0 -45
- package/lib/worker/common.js +0 -7
- package/lib/worker/config.d.ts +0 -8
- package/lib/worker/config.js +0 -11
- package/lib/worker/index.d.ts +0 -3
- package/lib/worker/index.js +0 -1
- package/lib/worker/memory.d.ts +0 -9
- package/lib/worker/memory.js +0 -29
- package/lib/worker/messages.d.ts +0 -14
- package/lib/worker/messages.js +0 -15
- package/lib/worker/packet.d.ts +0 -11
- package/lib/worker/packet.js +0 -59
- package/lib/worker/shared/capture.d.ts +0 -28
- package/lib/worker/shared/capture.js +0 -63
- package/lib/worker/shared/index.d.ts +0 -3
- package/lib/worker/shared/index.js +0 -148
- package/lib/worker/shared/messages.d.ts +0 -67
- package/lib/worker/shared/messages.js +0 -64
- package/lib/worker/shared/playback.d.ts +0 -21
- package/lib/worker/shared/playback.js +0 -78
- package/lib/worker/unshared/capture.d.ts +0 -28
- package/lib/worker/unshared/capture.js +0 -66
- package/lib/worker/unshared/index.d.ts +0 -3
- package/lib/worker/unshared/index.js +0 -171
- package/lib/worker/unshared/messages.d.ts +0 -81
- package/lib/worker/unshared/messages.js +0 -80
- package/lib/worker/unshared/playback.d.ts +0 -23
- package/lib/worker/unshared/playback.js +0 -83
package/lib/wasm/index.d.ts
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
export declare namespace OdinWasm {
|
|
2
|
-
function _malloc(size: number): number;
|
|
3
|
-
function _free(ptr: number): void;
|
|
4
|
-
|
|
5
|
-
const ready: Promise<typeof OdinWasm>;
|
|
6
|
-
|
|
7
|
-
const HEAP8: Int8Array;
|
|
8
|
-
const HEAPU8: Uint8Array;
|
|
9
|
-
const HEAP16: Int16Array;
|
|
10
|
-
const HEAPU16: Uint16Array;
|
|
11
|
-
const HEAP32: Int32Array;
|
|
12
|
-
const HEAPU32: Uint32Array;
|
|
13
|
-
const HEAPF32: Float32Array;
|
|
14
|
-
const HEAPF64: Float64Array;
|
|
15
|
-
|
|
16
|
-
interface BindInfo {
|
|
17
|
-
count: {
|
|
18
|
-
value: number;
|
|
19
|
-
};
|
|
20
|
-
ptr: number;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
class Encoder {
|
|
24
|
-
'$$': BindInfo;
|
|
25
|
-
|
|
26
|
-
constructor(
|
|
27
|
-
sample_rate: number,
|
|
28
|
-
fec_packet_loss: number,
|
|
29
|
-
voip: boolean,
|
|
30
|
-
vad_preload: number
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
complexity: number;
|
|
34
|
-
|
|
35
|
-
readonly speech_probability: boolean;
|
|
36
|
-
readonly rms_dbfs: boolean;
|
|
37
|
-
readonly active: boolean;
|
|
38
|
-
set_speech_detection(
|
|
39
|
-
enabled: boolean,
|
|
40
|
-
going_active: number,
|
|
41
|
-
going_inactive: number
|
|
42
|
-
): void;
|
|
43
|
-
|
|
44
|
-
set_volume_gate(
|
|
45
|
-
enabled: boolean,
|
|
46
|
-
going_active: number,
|
|
47
|
-
going_inactive: number
|
|
48
|
-
): void;
|
|
49
|
-
|
|
50
|
-
push(samples: number, information: number): void;
|
|
51
|
-
pop(bytes: number, bytes_length: number): number;
|
|
52
|
-
|
|
53
|
-
delete(): void;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
class Decoder {
|
|
57
|
-
'$$': BindInfo;
|
|
58
|
-
|
|
59
|
-
constructor();
|
|
60
|
-
|
|
61
|
-
volume: number;
|
|
62
|
-
|
|
63
|
-
readonly packets_seen: number;
|
|
64
|
-
readonly packets_invalid: number;
|
|
65
|
-
readonly packets_too_late: number;
|
|
66
|
-
readonly packets_too_early: number;
|
|
67
|
-
readonly packets_repeated: number;
|
|
68
|
-
readonly packets_processed: number;
|
|
69
|
-
readonly packets_lost: number;
|
|
70
|
-
readonly rewinds: number;
|
|
71
|
-
readonly cache_length: number;
|
|
72
|
-
|
|
73
|
-
push(
|
|
74
|
-
sequence_number: number,
|
|
75
|
-
timestamp: number,
|
|
76
|
-
is_end_of_spurt: boolean,
|
|
77
|
-
payload: number,
|
|
78
|
-
length: number
|
|
79
|
-
): number;
|
|
80
|
-
|
|
81
|
-
pop(samples: number): boolean;
|
|
82
|
-
|
|
83
|
-
delete(): void;
|
|
84
|
-
isDeleted(): boolean;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
function pop_many(
|
|
88
|
-
decoders: number,
|
|
89
|
-
activities: number,
|
|
90
|
-
count: number,
|
|
91
|
-
samples: number
|
|
92
|
-
): boolean;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
declare function LoadOdinWasm(): typeof OdinWasm;
|
|
96
|
-
|
|
97
|
-
export default LoadOdinWasm;
|
package/lib/worker/buffers.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { OdinWasm } from '../../lib/wasm';
|
|
2
|
-
export interface SampleBuffer {
|
|
3
|
-
readonly headers: Int32Array;
|
|
4
|
-
readonly samples: Float32Array;
|
|
5
|
-
readonly length: number;
|
|
6
|
-
readonly sampleRate: number;
|
|
7
|
-
readonly stereo: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface SampleBufferHeader {
|
|
10
|
-
id: number;
|
|
11
|
-
}
|
|
12
|
-
export declare function createSampleBuffer(wasm: typeof OdinWasm, sampleRate: number, length: number, stereo: boolean): SampleBuffer;
|
|
13
|
-
export declare function freeSampleBuffer(wasm: typeof OdinWasm, buffer: SampleBuffer): void;
|
|
14
|
-
export declare function samplesPerEntry(buffer: {
|
|
15
|
-
sampleRate: number;
|
|
16
|
-
stereo: boolean;
|
|
17
|
-
}): number;
|
|
18
|
-
export declare function getSamples(buffer: SampleBuffer, index: number): Float32Array;
|
|
19
|
-
export declare function getHeader(buffer: SampleBuffer, index: number): SampleBufferHeader;
|
|
20
|
-
export declare function setHeader(buffer: SampleBuffer, index: number, header: SampleBufferHeader): void;
|
|
21
|
-
export interface DecoderInformationBuffer {
|
|
22
|
-
readonly values: Float32Array;
|
|
23
|
-
readonly length: number;
|
|
24
|
-
}
|
|
25
|
-
export declare function createDecoderInformationBuffer(wasm: typeof OdinWasm, length: number): DecoderInformationBuffer;
|
|
26
|
-
export declare function freeDecoderInformationBuffer(wasm: typeof OdinWasm, buffer: DecoderInformationBuffer): void;
|
|
27
|
-
export declare function getGlobalDecoderVolume(buffer: DecoderInformationBuffer): number;
|
|
28
|
-
export declare function setGlobalDecoderVolume(buffer: DecoderInformationBuffer, value: number): void;
|
|
29
|
-
export declare function getDecoderRmsDBFS(buffer: DecoderInformationBuffer, index: number): number;
|
|
30
|
-
export declare function setDecoderRmsDBFS(buffer: DecoderInformationBuffer, index: number, value: number): void;
|
|
31
|
-
export declare function getDecoderVolume(buffer: DecoderInformationBuffer, index: number): number;
|
|
32
|
-
export declare function setDecoderVolume(buffer: DecoderInformationBuffer, index: number, value: number): void;
|
|
33
|
-
export interface EncoderInformationBuffer {
|
|
34
|
-
readonly values: Float32Array;
|
|
35
|
-
}
|
|
36
|
-
export declare function createEncoderInformationBuffer(wasm: typeof OdinWasm): EncoderInformationBuffer;
|
|
37
|
-
export declare function freeEncoderInformationBuffer(wasm: typeof OdinWasm, buffer: EncoderInformationBuffer): void;
|
|
38
|
-
export declare function getEncoderActive(buffer: EncoderInformationBuffer): boolean;
|
|
39
|
-
export declare function getEncoderSpeechProbability(buffer: EncoderInformationBuffer): number;
|
|
40
|
-
export declare function getEncoderRmsDBFS(buffer: EncoderInformationBuffer): number;
|
|
41
|
-
export declare function getEncoderVolume(buffer: EncoderInformationBuffer): number;
|
|
42
|
-
export declare function setEncoderVolume(buffer: EncoderInformationBuffer, value: number): number;
|
package/lib/worker/buffers.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { free, malloc } from './memory';
|
|
2
|
-
export function createSampleBuffer(wasm, sampleRate, length, stereo) {
|
|
3
|
-
return {
|
|
4
|
-
headers: malloc(wasm, 'i32', length),
|
|
5
|
-
samples: malloc(wasm, 'f32', length * samplesPerEntry({ sampleRate, stereo })),
|
|
6
|
-
length,
|
|
7
|
-
sampleRate,
|
|
8
|
-
stereo,
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
export function freeSampleBuffer(wasm, buffer) {
|
|
12
|
-
free(wasm, buffer.headers);
|
|
13
|
-
free(wasm, buffer.samples);
|
|
14
|
-
}
|
|
15
|
-
export function samplesPerEntry(buffer) {
|
|
16
|
-
return buffer.sampleRate * 0.02 * (buffer.stereo ? 2 : 1);
|
|
17
|
-
}
|
|
18
|
-
export function getSamples(buffer, index) {
|
|
19
|
-
const size = samplesPerEntry(buffer);
|
|
20
|
-
const begin = size * index;
|
|
21
|
-
const end = begin + size;
|
|
22
|
-
return buffer.samples.subarray(begin, end);
|
|
23
|
-
}
|
|
24
|
-
export function getHeader(buffer, index) {
|
|
25
|
-
return { id: buffer.headers[index] };
|
|
26
|
-
}
|
|
27
|
-
export function setHeader(buffer, index, header) {
|
|
28
|
-
buffer.headers[index] = header.id;
|
|
29
|
-
}
|
|
30
|
-
export function createDecoderInformationBuffer(wasm, length) {
|
|
31
|
-
return {
|
|
32
|
-
values: malloc(wasm, 'f32', 1 + length * 2),
|
|
33
|
-
length,
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export function freeDecoderInformationBuffer(wasm, buffer) {
|
|
37
|
-
free(wasm, buffer.values);
|
|
38
|
-
}
|
|
39
|
-
export function getGlobalDecoderVolume(buffer) {
|
|
40
|
-
return buffer.values[0];
|
|
41
|
-
}
|
|
42
|
-
export function setGlobalDecoderVolume(buffer, value) {
|
|
43
|
-
buffer.values[0] = value;
|
|
44
|
-
}
|
|
45
|
-
export function getDecoderRmsDBFS(buffer, index) {
|
|
46
|
-
return buffer.values[1 + index * 2];
|
|
47
|
-
}
|
|
48
|
-
export function setDecoderRmsDBFS(buffer, index, value) {
|
|
49
|
-
buffer.values[1 + index * 2] = value;
|
|
50
|
-
}
|
|
51
|
-
export function getDecoderVolume(buffer, index) {
|
|
52
|
-
return buffer.values[1 + index * 2 + 1];
|
|
53
|
-
}
|
|
54
|
-
export function setDecoderVolume(buffer, index, value) {
|
|
55
|
-
buffer.values[1 + index * 2 + 1] = value;
|
|
56
|
-
}
|
|
57
|
-
export function createEncoderInformationBuffer(wasm) {
|
|
58
|
-
return {
|
|
59
|
-
values: malloc(wasm, 'f32', 4),
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
export function freeEncoderInformationBuffer(wasm, buffer) {
|
|
63
|
-
free(wasm, buffer.values);
|
|
64
|
-
}
|
|
65
|
-
export function getEncoderActive(buffer) {
|
|
66
|
-
return buffer.values[0] !== 0;
|
|
67
|
-
}
|
|
68
|
-
export function getEncoderSpeechProbability(buffer) {
|
|
69
|
-
return buffer.values[1];
|
|
70
|
-
}
|
|
71
|
-
export function getEncoderRmsDBFS(buffer) {
|
|
72
|
-
return buffer.values[2];
|
|
73
|
-
}
|
|
74
|
-
export function getEncoderVolume(buffer) {
|
|
75
|
-
return buffer.values[3];
|
|
76
|
-
}
|
|
77
|
-
export function setEncoderVolume(buffer, value) {
|
|
78
|
-
return (buffer.values[3] = value);
|
|
79
|
-
}
|
package/lib/worker/common.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export interface Activity {
|
|
2
|
-
isSilent: boolean;
|
|
3
|
-
rmsDBFS: number;
|
|
4
|
-
}
|
|
5
|
-
export declare const Silence: Activity;
|
|
6
|
-
export interface VadConfig {
|
|
7
|
-
volumeGate?: {
|
|
8
|
-
attackThreshold: number;
|
|
9
|
-
releaseThreshold: number;
|
|
10
|
-
};
|
|
11
|
-
voiceActivity?: {
|
|
12
|
-
attackThreshold: number;
|
|
13
|
-
releaseThreshold: number;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export type CaptureSink = (connectionId: number, packet: Uint8Array) => void;
|
|
17
|
-
export interface CaptureWorker {
|
|
18
|
-
readonly worklet: AudioWorkletNode;
|
|
19
|
-
readonly worker: Worker;
|
|
20
|
-
get context(): BaseAudioContext;
|
|
21
|
-
get activity(): Activity;
|
|
22
|
-
get speechProbability(): number;
|
|
23
|
-
setMedias(connections: Array<{
|
|
24
|
-
id: number;
|
|
25
|
-
mediaIds: number[];
|
|
26
|
-
}>): void;
|
|
27
|
-
setVolume(value: number): void;
|
|
28
|
-
setVad(config: VadConfig): void;
|
|
29
|
-
close(): void;
|
|
30
|
-
}
|
|
31
|
-
export interface PlaybackWorker {
|
|
32
|
-
readonly audioContext: AudioContext;
|
|
33
|
-
receivePacket(connectionId: number, packet: Uint8Array): void;
|
|
34
|
-
addMedias(connectionId: number, mediaIds: number[]): void;
|
|
35
|
-
removeMedias(connectionId: number, mediaIds: number[]): void;
|
|
36
|
-
getActivity(id: PlaybackId): Activity | undefined;
|
|
37
|
-
setGlobalVolume(value: number): void;
|
|
38
|
-
setVolume(id: PlaybackId, value: number): void;
|
|
39
|
-
close(): void;
|
|
40
|
-
}
|
|
41
|
-
export interface PlaybackId {
|
|
42
|
-
connectionId: number;
|
|
43
|
-
mediaId: number;
|
|
44
|
-
}
|
|
45
|
-
export declare function mergeIds(id: PlaybackId): number;
|
package/lib/worker/common.js
DELETED
package/lib/worker/config.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare const AdditionalPlaybackBlocks = 3;
|
|
2
|
-
export declare const AdditionalCaptureBlocks = 3;
|
|
3
|
-
export declare const PlaybackPreload = 3;
|
|
4
|
-
export declare const DefaultRefreshRate = 250;
|
|
5
|
-
export declare const VadPreload = 3;
|
|
6
|
-
export declare const MaxNumberOfDecoders = 512;
|
|
7
|
-
export declare const RenderQuantumSize = 128;
|
|
8
|
-
export declare const MinDBFs = -758.596;
|
package/lib/worker/config.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// shared
|
|
2
|
-
export const AdditionalPlaybackBlocks = 3;
|
|
3
|
-
export const AdditionalCaptureBlocks = 3;
|
|
4
|
-
// unshared
|
|
5
|
-
export const PlaybackPreload = 3;
|
|
6
|
-
export const DefaultRefreshRate = 250;
|
|
7
|
-
// both
|
|
8
|
-
export const VadPreload = 3;
|
|
9
|
-
export const MaxNumberOfDecoders = 512;
|
|
10
|
-
export const RenderQuantumSize = 128;
|
|
11
|
-
export const MinDBFs = -758.596;
|
package/lib/worker/index.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { CaptureSink, CaptureWorker, PlaybackWorker } from './common';
|
|
2
|
-
export declare function createCaptureWorker(context: AudioContext, sink: CaptureSink, refreshRate?: number): Promise<CaptureWorker>;
|
|
3
|
-
export declare function createPlaybackWorker(audioContext: AudioContext, refreshRate?: number): Promise<PlaybackWorker>;
|