Disconnect received videos by toggling the video directly in Janus #7237
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow up to #6862
Requires strukturag/nextcloud-spreed-signaling#239 (v0.5.0)
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
selectStreammessage, 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.
Pending:
How to test
In the test below, in Firefox it can be verified that the video is stopped and resumed again opening
about:webrtcand checking the video stats in the receiver connection; for easier checking it is recommended to join the call without audio nor video in the private window so there is only one sender and one receiver connection.Result with this pull request
No offers are requested (there are no new Request offer from messages when the video is disabled and enabled); the video immediately resumes after enabling it again
Result without this pull request
Offers are requested to renegotiate the existing connection and disable the video; the video may take a few seconds to resume once it is enabled again