Skip to content
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

Add support for multi-stream VoIP #1735

Merged
merged 13 commits into from
Mar 19, 2024

Conversation

zecakeh
Copy link
Contributor

@zecakeh zecakeh commented Feb 28, 2024

As per MSC3077.

This is built on top of #1602 and incorporates the feedback from the first review, as was suggested in the Matrix Spec and Docs Authoring Room.

Threads which are not resolved in the other PR are reopened here.

Preview: https://pr1735--matrix-spec-previews.netlify.app

@zecakeh zecakeh requested a review from a team as a code owner February 28, 2024 21:19
Signed-off-by: Kévin Commaille <[email protected]>
Copy link
Contributor Author

@zecakeh zecakeh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Threads still opened from the previous review.

a `purpose` of an unknown type (i.e. not `m.usermedia` or `m.screenshare`), it
should be ignored.

Clients implementing this specification will ignore any streamless tracks. Note
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@richvdh said:

I know this is existing text, but it now seems even more confusing than before, so I think we need to clarify.

  1. What is the mechanism by which streamless tracks are ignored? Or is this an instruction to clients to ignore such tracks?
  2. what is that to do with addTrack's parameters?
  3. is it related to sdp_stream_metadata? if not, it should probably not be in the middle of the text about it?

Copy link
Contributor Author

@zecakeh zecakeh Feb 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. I believe it's the job of the client implementation to ignore streamless tracks. So the will probably needs to be changed to a MUST, like in other places in the spec.
  2. I believe that the addTrack note is a bit of help for client implementation. For context it refers to RTCPeerConnection: addTrack(). It's a method that takes a track and any number of streams. If there is no stream provided, it creates a streamless track, which is why the method should be called with a track and a stream. In my opinion the note could be removed.
  3. Even if the whole section talks a lot about sdp_stream_metadata, it is about streams, and it just happens that it is the only paragraph left that doesn't mention the field. It could be placed at the top or bottom of the section if you prefer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Indeed. Can you change will to MUST (or, maybe more readably, should)?
  2. Right. Yes. I think we should remove it.
  3. Yes, I think it would make more sense at the end of the section, after the note on backwards-compatibility.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@turt2live turt2live mentioned this pull request Mar 12, 2024
23 tasks
@@ -0,0 +1,27 @@
type: object
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this belongs in core-event-schema

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. Since it doesn't seem to belong directly in schemas either, because it only contains full event schemas, I took the liberty to create a components directory (named like this for similarity with the property that includes reusable bits in the OpenAPI spec)

a `purpose` of an unknown type (i.e. not `m.usermedia` or `m.screenshare`), it
should be ignored.

Clients implementing this specification will ignore any streamless tracks. Note
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Indeed. Can you change will to MUST (or, maybe more readably, should)?
  2. Right. Yes. I think we should remove it.
  3. Yes, I think it would make more sense at the end of the section, after the note on backwards-compatibility.

Comment on lines 23 to 25
* `m.usermedia` - stream that contains the webcam and/or microphone
tracks
* `m.screenshare` - stream with the screen-sharing tracks
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* `m.usermedia` - stream that contains the webcam and/or microphone
tracks
* `m.screenshare` - stream with the screen-sharing tracks
* `m.usermedia`: Stream that contains the webcam and/or microphone
tracks.
* `m.screenshare`: Stream with the screen-sharing tracks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied

@richvdh richvdh mentioned this pull request Mar 13, 2024
Copy link
Member

@richvdh richvdh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great!

@richvdh richvdh merged commit 38796de into matrix-org:main Mar 19, 2024
12 checks passed
@zecakeh zecakeh deleted the 3077-multi-stream-voip branch March 19, 2024 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants