New issue
Advanced search Search tips

Issue 837506 link

Starred by 3 users

Issue metadata

Status: Duplicate
Merged: issue 465349
Owner:
Closed: May 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Unified plan and Multi-stream RTCPeerConnection

Reported by hoang...@cosmosoftware.io, Apr 27 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0

Steps to reproduce the problem:
Setup for testing:
- For each test case, open chrome with the flag --enable-blink-features=RTCUnifiedPlanByDefault (You should see a notice in chrome saying that the flag is unsupported, security and stability will suffer).

- For multi stream server, you can either set it up yourself with the code here:
https://github.com/webrtc/KITE/tree/merge-26-april/KITE-Multi-Simul-cast-Test/server/multi-stream 
**Note**: you will need to generate a SSL certificate and replace the existing empty ones to launch the server (npm install && npm start)

- Or you can use our server at: https://kite-testing.dev.cosmosoftware.io:8085 

Test:
- Open 2 browsers, and go to the address of the multistream server.
- Input a room id, and connect to the room, the first one to connect is the caller.

- caller gets 2 stream by calling getUserMedia with different set of constraints.
- adds these streams to the peer connection then create offer and send to callee.

- callee gets the offer, send back answer to caller after having setRemoteDescription.
- the 2 streams that caller and callee get from their peer will be displayed in 2 different video elements.
- the test verifies unified plan SDP format, stream id, and video display.

What is the expected behavior?
- Chrome’s SDP message should follow Unified Plan format (like indicated by the flag,Chrome use PlanB normally).
- The connection should be established (even in cases with Firefox since Firefox uses Unified Plan). 
- Remote streams (2 streams) should be displayed correctly.

What went wrong?
In case where Chrome calls Firefox:
 - Chrome's SDP offer is still in plan B format. (Appendix A)
 - Firefox throws errors : InvalidSessionDescriptionError: Found multiple different webRTC track ids in m-section 1. The behavior here is undefined.
 - Firefox fails to add ICE candidates and then will not answer.

In case where Firefox calls Chrome:
 - Chrome's answer is not plan B anymore, but somewhat in unified plan format (Appendix B), however without any msid or ssrc lines.
 - Chrome receives both streams from Firefox, however only one can be displayed.
 - Firefox doesn’t receive any stream from Chrome.
 - ICE connection state is connected for both.

In case where Chrome calls Chrome: 
(same behavior with/without the flag and with/without adapter.js)
 - 2 video streams pass and can be display correctly.
 - SDP offer and answer are in plan B format.
 - ICE connection established (connected)

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: Version 66.0.3359.139 (Official Build) (64-bit)  Channel: stable
OS Version: 16.04
Flash Version:
 
Chrome Testing for Unified Plan.pdf
145 KB Download
Components: Blink>WebRTC
Labels: Needs-Triage-M66
Components: -Blink>WebRTC Blink>WebRTC>PeerConnection
Owner: hbos@chromium.org
Status: Assigned (was: Unconfirmed)
hbos@: Can you take a look or triage further?

Comment 4 by hbos@chromium.org, May 2 2018

Mergedinto: 465349
Status: Duplicate (was: Assigned)
Thanks for the additional details on testing this, merging into an existing issue for this.

The fact that you're still getting Plan B SDP on M66 is that the flag RTCUnifiedPlanByDefault is first made available in M67.

Comment 5 by hbos@chromium.org, May 2 2018

Note that even with the flag stuff will be broken, there are some Plan B assumptions in the code still which I will resolve as I'm implementing RTCRtpTransceiver support in Chrome (this is what I'm actively working on at the moment).

Sign in to add a comment