mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 03:53:29 +01:00
Make FEC and PLP non-default (#1372)
I considered it might be useful to have something exposed that allows the end-user to set these if they want, but our current code doesn't allow for that. It'll remain an internal feature for the time being.
This commit is contained in:
@@ -1,20 +1,25 @@
|
|||||||
class BaseOpus {
|
class BaseOpus {
|
||||||
constructor(player) {
|
/**
|
||||||
this.player = player;
|
* @param {Object} [options] The options to apply to the Opus engine
|
||||||
|
* @param {boolean} [options.fec] Whether to enable forward error correction (defaults to false)
|
||||||
|
* @param {number} [options.plp] The expected packet loss percentage (0-1 inclusive, defaults to 0)
|
||||||
|
*/
|
||||||
|
constructor(options = {}) {
|
||||||
this.ctl = {
|
this.ctl = {
|
||||||
FEC: 4012,
|
FEC: 4012,
|
||||||
PLP: 4014,
|
PLP: 4014,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.options = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
try {
|
try {
|
||||||
// Enable FEC (forward error correction)
|
// Set FEC (forward error correction)
|
||||||
this.setFEC(true);
|
if (this.options.fec) this.setFEC(this.options.fec);
|
||||||
|
|
||||||
// Set PLP (expected packet loss percentage) to 15%
|
// Set PLP (expected packet loss percentage)
|
||||||
this.setPLP(0.15);
|
if (this.options.plp) this.setPLP(this.options.plp);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// Opus engine likely has no support for libopus CTL
|
// Opus engine likely has no support for libopus CTL
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ const list = [
|
|||||||
|
|
||||||
let opusEngineFound;
|
let opusEngineFound;
|
||||||
|
|
||||||
function fetch(Encoder) {
|
function fetch(Encoder, engineOptions) {
|
||||||
try {
|
try {
|
||||||
return new Encoder();
|
return new Encoder(engineOptions);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -17,9 +17,9 @@ exports.add = encoder => {
|
|||||||
list.push(encoder);
|
list.push(encoder);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetch = () => {
|
exports.fetch = engineOptions => {
|
||||||
for (const encoder of list) {
|
for (const encoder of list) {
|
||||||
const fetched = fetch(encoder);
|
const fetched = fetch(encoder, engineOptions);
|
||||||
if (fetched) return fetched;
|
if (fetched) return fetched;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user