diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2022-04-29 05:49:15 +0300 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2022-08-31 14:05:20 +0300 |
commit | 9036b8879eddd3c36065d58469f1335a75c30fe4 (patch) | |
tree | 9c96f762db31dd5b9a51cedc7f88f88f371cf55b /src | |
parent | 841e158f0ad3a893c7db8178a46662f8954977d2 (diff) |
Disconnect received videos by toggling the video directly in Janus
Originally the HPB required a renegotiation to block the received
videos. However, besides the standard WebRTC way, Janus also supports
directly toggling on and off the video without any renegotiation. This
is now exposed by the signaling server through the "selectStream"
message, so the video is now blocked using that approach instead.
The previous code to block the video using a renegotiation is still
kept, though, as it could be used without HPB once all the clients
support renegotiations.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/utils/webrtc/simplewebrtc/peer.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/utils/webrtc/simplewebrtc/peer.js b/src/utils/webrtc/simplewebrtc/peer.js index df67298fd..fea3aa592 100644 --- a/src/utils/webrtc/simplewebrtc/peer.js +++ b/src/utils/webrtc/simplewebrtc/peer.js @@ -886,6 +886,19 @@ Peer.prototype.setRemoteVideoBlocked = function(remoteVideoBlocked) { return } + // If the HPB is used the remote video can be blocked through a standard + // WebRTC renegotiation or by toggling the video directly in Janus. The last + // one is preferred, as it requires less signaling messages to be exchanged + // and, besides that, the browser starts to decode the video faster once + // enabled again. + if (this.receiverOnly && this.parent.config.connection.hasFeature('update-sdp')) { + this.send('selectStream', { + video: !remoteVideoBlocked, + }) + + return + } + this._remoteVideoShouldBeBlocked = remoteVideoBlocked // The "negotiationneeded" event is emitted if needed based on the direction |