diff --git a/src/client/voice/VoiceConnection.js b/src/client/voice/VoiceConnection.js index a270e1039..1f1c7a18a 100644 --- a/src/client/voice/VoiceConnection.js +++ b/src/client/voice/VoiceConnection.js @@ -439,8 +439,11 @@ class VoiceConnection extends EventEmitter { * @property {number} [passes=1] How many times to send the voice packet to reduce packet loss * @property {number} [plp] Expected packet loss percentage * @property {boolean} [fec] Enabled forward error correction - * @property {number|string} [bitrate=96] The bitrate (quality) of the audio in kbps + * @property {number|string} [bitrate=96] The bitrate (quality) of the audio in kbps. * If set to 'auto', the voice channel's bitrate will be used + * @property {number} [highWaterMark=8] The maximum number of opus packets to make and store before they are + * actually needed. See https://nodejs.org/en/docs/guides/backpressuring-in-streams/. Setting this value to + * 1 means that changes in volume will be more instant. */ /** diff --git a/src/client/voice/dispatcher/StreamDispatcher.js b/src/client/voice/dispatcher/StreamDispatcher.js index 0c8639634..84500bcce 100644 --- a/src/client/voice/dispatcher/StreamDispatcher.js +++ b/src/client/voice/dispatcher/StreamDispatcher.js @@ -29,8 +29,11 @@ nonce.fill(0); * @extends {stream.Writable} */ class StreamDispatcher extends Writable { - constructor(player, { seek = 0, volume = 1, passes = 1, fec, plp, bitrate = 96 } = {}, streams) { - const streamOptions = { seek, volume, passes, fec, plp, bitrate }; + constructor( + player, + { seek = 0, volume = 1, passes = 1, fec, plp, bitrate = 96, highWaterMark = 8 } = {}, + streams) { + const streamOptions = { seek, volume, passes, fec, plp, bitrate, highWaterMark }; super(streamOptions); /** * The Audio Player that controls this dispatcher