will remove ogv.js
This commit is contained in:
parent
7d099ae9c9
commit
03e433789e
@ -14,6 +14,7 @@
|
|||||||
"fast-sha256": "^1.3.0",
|
"fast-sha256": "^1.3.0",
|
||||||
"libsodium": "^0.7.9",
|
"libsodium": "^0.7.9",
|
||||||
"libsodium-wrappers": "^0.7.9",
|
"libsodium-wrappers": "^0.7.9",
|
||||||
|
"pcm-player": "^0.0.11",
|
||||||
"ts-proto": "^1.101.0",
|
"ts-proto": "^1.101.0",
|
||||||
"wasm-feature-detect": "^1.2.11",
|
"wasm-feature-detect": "^1.2.11",
|
||||||
"zstddec": "^0.0.2"
|
"zstddec": "^0.0.2"
|
||||||
|
@ -42,11 +42,11 @@ export async function loadVp9(callback) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function loadOpus(callback) {
|
export function loadOpus(callback, channels, rate) {
|
||||||
window.OGVLoader.loadClass(
|
window.OGVLoader.loadClass(
|
||||||
"OGVDecoderAudioOpusW",
|
"OGVDecoderAudioOpusW",
|
||||||
(audioCodecClass) => {
|
(audioCodecClass) => {
|
||||||
audioCodecClass({ audioFormat: {} }).then((decoder) => {
|
audioCodecClass({ audioFormat: { channels, rate } }).then((decoder) => {
|
||||||
decoder.init(() => {
|
decoder.init(() => {
|
||||||
callback(decoder);
|
callback(decoder);
|
||||||
})
|
})
|
||||||
|
@ -25,6 +25,7 @@ export default class Connection {
|
|||||||
_firstFrame: Boolean | undefined;
|
_firstFrame: Boolean | undefined;
|
||||||
_videoDecoder: any;
|
_videoDecoder: any;
|
||||||
_audioDecoder: any;
|
_audioDecoder: any;
|
||||||
|
_audioPlayer: any;
|
||||||
_password: Uint8Array | undefined;
|
_password: Uint8Array | undefined;
|
||||||
_options: any;
|
_options: any;
|
||||||
_videoTestSpeed: number[];
|
_videoTestSpeed: number[];
|
||||||
@ -58,7 +59,6 @@ export default class Connection {
|
|||||||
}
|
}
|
||||||
}, 1);
|
}, 1);
|
||||||
this.loadVideoDecoder();
|
this.loadVideoDecoder();
|
||||||
this.loadAudioDecoder();
|
|
||||||
const uri = getDefaultUri();
|
const uri = getDefaultUri();
|
||||||
const ws = new Websock(uri, true);
|
const ws = new Websock(uri, true);
|
||||||
this._ws = ws;
|
this._ws = ws;
|
||||||
@ -242,7 +242,13 @@ export default class Connection {
|
|||||||
} else if (msg?.misc) {
|
} else if (msg?.misc) {
|
||||||
this.handleMisc(msg?.misc);
|
this.handleMisc(msg?.misc);
|
||||||
} else if (msg?.audio_frame) {
|
} else if (msg?.audio_frame) {
|
||||||
//
|
const dec = this._audioDecoder;
|
||||||
|
dec.processAudio(msg?.audio_frame.data.slice(0).buffer, (res: any) => {
|
||||||
|
// ogv.js bug here, audioBuffer always empty
|
||||||
|
// and ogv.js vpx version is very old (2015), to-do: discard ogv
|
||||||
|
// let samples = dec.audioBuffer;
|
||||||
|
// console.log(res, dec);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,7 +267,6 @@ export default class Connection {
|
|||||||
clearInterval(this._interval);
|
clearInterval(this._interval);
|
||||||
this._ws?.close();
|
this._ws?.close();
|
||||||
this._videoDecoder?.close();
|
this._videoDecoder?.close();
|
||||||
this._audioDecoder?.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
refresh() {
|
refresh() {
|
||||||
@ -423,7 +428,9 @@ export default class Connection {
|
|||||||
|
|
||||||
handleMisc(misc: message.Misc) {
|
handleMisc(misc: message.Misc) {
|
||||||
if (misc.audio_format) {
|
if (misc.audio_format) {
|
||||||
//
|
this._audioDecoder?.destroy();
|
||||||
|
// this._audioPlayer = globals.newAudioPlayer(misc.audio_format.channels, misc.audio_format.sample_rate);
|
||||||
|
this.loadAudioDecoder(misc.audio_format.channels, misc.audio_format.sample_rate);
|
||||||
} else if (misc.chat_message) {
|
} else if (misc.chat_message) {
|
||||||
globals.pushEvent("chat", misc.chat_message.text);
|
globals.pushEvent("chat", misc.chat_message.text);
|
||||||
} else if (misc.permission_info) {
|
} else if (misc.permission_info) {
|
||||||
@ -648,12 +655,12 @@ export default class Connection {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
loadAudioDecoder() {
|
loadAudioDecoder(channels: number, sample_rate: number) {
|
||||||
this._audioDecoder?.close();
|
this._audioDecoder?.close();
|
||||||
loadOpus((decoder: any) => {
|
loadOpus((decoder: any) => {
|
||||||
this._audioDecoder = decoder;
|
this._audioDecoder = decoder;
|
||||||
console.log("opus loaded");
|
console.log("opus loaded");
|
||||||
});
|
}, channels, sample_rate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import { CursorData } from "./message";
|
|||||||
import { loadOpus, loadVp9 } from "./codec";
|
import { loadOpus, loadVp9 } from "./codec";
|
||||||
import { checkIfRetry, version } from "./gen_js_from_hbb";
|
import { checkIfRetry, version } from "./gen_js_from_hbb";
|
||||||
import { initZstd, translate } from "./common";
|
import { initZstd, translate } from "./common";
|
||||||
|
import PCMPlayer from "pcm-player";
|
||||||
|
|
||||||
var currentFrame = undefined;
|
var currentFrame = undefined;
|
||||||
var events = [];
|
var events = [];
|
||||||
@ -301,3 +302,12 @@ export function getPeers() {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function newAudioPlayer(channels, sampleRate) {
|
||||||
|
return new PCMPlayer({
|
||||||
|
encoding: '16bitInt',
|
||||||
|
channels,
|
||||||
|
sampleRate,
|
||||||
|
flushingTime: 2000
|
||||||
|
});
|
||||||
|
}
|
@ -249,6 +249,11 @@ path-parse@^1.0.7:
|
|||||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||||
|
|
||||||
|
pcm-player@^0.0.11:
|
||||||
|
version "0.0.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/pcm-player/-/pcm-player-0.0.11.tgz#1dd0e37d8e1238c10b153079939b1fc88958a9ff"
|
||||||
|
integrity sha512-+FmX62jiqZa7wDCqSRQ1g3DuU6JNgpymgOLCWhmiE/Lj/M+rOUNqgNwVQX509LdA9dtBtVD3EQQUSp9JqU6upw==
|
||||||
|
|
||||||
picocolors@^1.0.0:
|
picocolors@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user