mirror of
https://github.com/discordjs/discord.js.git
synced 2026-06-16 03:18:20 +00:00
8716702b59
* Add FEC and PLP support for Opus encoding * Silently fail if the Opus engine doesn't support CTL * Fixed inversed max/min functions
37 lines
740 B
JavaScript
37 lines
740 B
JavaScript
const OpusEngine = require('./BaseOpusEngine');
|
|
|
|
let opus;
|
|
|
|
class NodeOpusEngine extends OpusEngine {
|
|
constructor(player) {
|
|
super(player);
|
|
try {
|
|
opus = require('node-opus');
|
|
} catch (err) {
|
|
throw err;
|
|
}
|
|
this.encoder = new opus.OpusEncoder(48000, 2);
|
|
super.init();
|
|
}
|
|
|
|
setFEC(enabled) {
|
|
this.encoder.applyEncoderCTL(this.ctl.FEC, enabled ? 1 : 0);
|
|
}
|
|
|
|
setPLP(percent) {
|
|
this.encoder.applyEncoderCTL(this.ctl.PLP, Math.min(100, Math.max(0, percent * 100)));
|
|
}
|
|
|
|
encode(buffer) {
|
|
super.encode(buffer);
|
|
return this.encoder.encode(buffer, 1920);
|
|
}
|
|
|
|
decode(buffer) {
|
|
super.decode(buffer);
|
|
return this.encoder.decode(buffer, 1920);
|
|
}
|
|
}
|
|
|
|
module.exports = NodeOpusEngine;
|