-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dont send video optimization - proto side #162
base: main
Are you sure you want to change the base?
Dont send video optimization - proto side #162
Conversation
The commit splits PacketType::MEDIA into following three types: - MEDIA_MANDATORY: all media that will always be send to all connected peers in a room - MEDIA_OPTIONAL: the type that the Server will use to perform subscribtion-based Recipeint selection - MEDIA_MANAGEMENT: the type that will indicate to the Server that the Server is target Recipient of the message
In order to provide a mechanism for managing subscribtions there is a need an user and the server to exchange following set of messages: - SUBSCRIBE: request of optional peer data, send from an user to the server - UNSUBSCRIBE: information that a users is no longer interested in specific peer - ONGOING_STREAM: information from the server to an unsubscirbed user that there is a peer that streams video or shares screen.
@mkamonMdt why is audio a 'mandatory' media type? also, would you kindly share a sequence diagram with how subscription should work? |
So the Optionality comes from the use case when a user cannot follow more video/screen-share streams than the canvas limit (which can also be specified by a user e.g. changing layout to 2x2 or 5x2 etc) or wants to "Pin" (few) selected peers, So it is End User decision. The audio (and maybe chat in the future) is kind of different nature. Usually a user cannot make decision which peers it wants to listen to. In some cases there is a special User(s) like host that have supernatural power of giving voice (or receiving all chat messages while other users will not all - e.g. gathering content for Q&A session during a meeting). In that regard, from the perspective of regular meeting participant the audio channel feels mandatory as it's Management is determined by a remote entity.
Sure, good idea. I will prepare a diagram for it :) |
The subscription process in its first iteration will realize "AutoSubscribe" strategy (i.e. default mechanism that will be used until a User manually provides it's preferences -> clicks on "Pin to Peer" button), that is it will subscribe to any Peer whose ONGOING_STREAM notification it receives (within CANVAS_LIMIT). |
Hey @mkamonMdt: First of all thank you for the comprehensive explanation and the clear diagrams, it really helps to understand the feature. I do want to keep the media signaling as simple as possible, to this effect I propose the following:
|
Thanks :)
The problem with Other solution could involve different Actix endpoint, for |
@mkamonMdt thank you again for your awesome diagrams! I do feel strongly that the How can we meet halfway? |
The PR provides first part of implementation for #43 with an extension of .proto files to distinguish:
Following the above PR, the next steps will cover: