New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 799030 link

Starred by 23 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 29
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: ----


Sign in to add a comment

WebRTC Unified Plan SDP

Project Member Reported by hta@chromium.org, Jan 4 2018

Issue description

Feature description: Enable Unified Plan SDP in Chromium

Eng owner: hta@chromium.org
Product owner: juberti@chromium.org

Design doc: https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-24

Are you planning on experimenting before launch? Yes
Any new strings? No
Any implications for Google webservices (i.e. sync, translate)? No
Binary size? Not much
Do the existing perf tests exercise all aspects of your new feature(s)? Yes


 

Comment 1 by hta@chromium.org, Jan 4 2018

Blockedon: 465349 webrtc:8530
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/41a0293421cabd3783dfac4ace9486231df4ce52

commit 41a0293421cabd3783dfac4ace9486231df4ce52
Author: Harald Alvestrand <hta@chromium.org>
Date: Fri Jan 05 14:18:50 2018

Wire up Unified Plan flag to Blink

This creates a new "sdpFormat" attribute that can be
passed to RTCPeerConnection's constructor.

Intent to Implement thread:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Qgwfl-nD0Zs

Bug:  799030 ,  465349 
Change-Id: I1b7263210e75fbe98b313abad2b11efd6da3cfa8
Reviewed-on: https://chromium-review.googlesource.com/847573
Commit-Queue: Harald Alvestrand <hta@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Henrik Boström <hbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527271}
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/content/renderer/media/rtc_peer_connection_handler.cc
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-createOffer-promise.html
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/third_party/WebKit/Source/modules/peerconnection/RTCConfiguration.idl
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/third_party/WebKit/Source/platform/runtime_enabled_features.json5
[modify] https://crrev.com/41a0293421cabd3783dfac4ace9486231df4ce52/third_party/WebKit/public/platform/WebRTCConfiguration.h

Comment 4 by hbos@chromium.org, Jan 18 2018

Blockedon: 802938

Comment 5 by hbos@chromium.org, Jan 18 2018

^--- Blockedon because that crash only happens when Unified Plan is on.

Comment 6 by hbos@chromium.org, Jan 18 2018

Blockedon: 803021
Components: Blink>WebRTC>PeerConnection
Labels: Pri-2
And blockedon 803021 because AddStream/RemoveStream is not supported with Unified Plan.

Comment 7 by hbos@chromium.org, Jan 18 2018

Blockedon: 803389
Another blockedon 803389: With unified plan, senders/receivers are not removed. We must be able to support changing their states active <-> inactive.

Comment 8 by hbos@chromium.org, Jan 18 2018

We need to remember to add test coverage for different SDP formats.

Quoting steveanton:

The plan is to change both Plan B and Unified Plan to have the following behaviors (this work is not yet done but is being done this week):
- By default, send a=ssrc MSID for Plan B and a=msid for Unified Plan.
- If a remote description has already been received, match the format already in use, regardless of SDP semantics selected.
- If both a=ssrc MSID and a=msid are specified, reply with a=ssrc MSID (this is what Chrome would do today).

Comment 9 by fi...@appear.in, Jan 20 2018

you might rather want to look for chrome's ancient "a=msid-semantic: WMS"

Comment 10 by hta@chromium.org, Jan 21 2018

I removed msid-semantic from the spec (the ietf draft) approx 3 versions after I moved the spec from ssrc-associated to m-line associated, I think. Don't know if Firefox sends that header.

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50b1fbedd5c4a7e5c0470e7f0d9b0d476a2502d6

commit 50b1fbedd5c4a7e5c0470e7f0d9b0d476a2502d6
Author: Harald Alvestrand <hta@chromium.org>
Date: Fri Feb 02 16:05:29 2018

Allow RTCRtpReceiver to have a track without streams.

Also add tests on what happens when Unified Plan talks to
Plan B in some combinations.

Bug:  799030 ,  802938 
Change-Id: I8d17fd42221c5e8f3d34bfc93d6bfe4c99c6ddd1
Reviewed-on: https://chromium-review.googlesource.com/852272
Commit-Queue: Harald Alvestrand <hta@chromium.org>
Reviewed-by: Henrik Boström <hbos@chromium.org>
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534064}
[modify] https://crrev.com/50b1fbedd5c4a7e5c0470e7f0d9b0d476a2502d6/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-createOffer-promise.html
[add] https://crrev.com/50b1fbedd5c4a7e5c0470e7f0d9b0d476a2502d6/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-sdpSemantics.html
[modify] https://crrev.com/50b1fbedd5c4a7e5c0470e7f0d9b0d476a2502d6/third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.cpp

Comment 12 by hta@chromium.org, Feb 13 2018

Blockedon: 811683

Comment 13 by hbos@chromium.org, Feb 15 2018

Blocking: 777617

Comment 14 by blum@chromium.org, Feb 16 2018

Cc: blum@chromium.org huib@chromium.org

Comment 15 by hbos@webrtc.org, Mar 1 2018

Blocking: webrtc:8734

Comment 16 by hbos@chromium.org, Mar 14 2018

Blockedon: 777617
Marking these as blocked on each other because Unified Plan does not make a lot of sense without transceivers and transceivers does not make a lot of sense without Unified Plan.

Comment 17 by hbos@chromium.org, Mar 14 2018

Blocking: 697064

Comment 18 by hbos@chromium.org, Mar 15 2018

Blocking: 720543

Comment 19 by hbos@chromium.org, Apr 4 2018

Blockedon: 828793

Comment 20 by hbos@chromium.org, Apr 4 2018

Blockedon: 828866

Comment 21 by hbos@chromium.org, Apr 16 2018

Blockedon: 832842
Project Member

Comment 22 by bugdroid1@chromium.org, May 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02bd2d220545367bbad5f2dd02d78f1d50836cec

commit 02bd2d220545367bbad5f2dd02d78f1d50836cec
Author: Harald Alvestrand <hta@chromium.org>
Date: Mon May 14 12:05:10 2018

Enable sdpSemantic RTCPeerConnection parameter

This enables the "sdpSemantic" element of RTCConfiguration,
which allows to create an RTCPeerConnection that uses the
Unified Plan SDP format.

Intent to Ship thread:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/B1Yr62txfwQ

Bug:  799030 
Change-Id: Ifef01e4d3b65f013a49b17693da0ed6f8364e16d
Reviewed-on: https://chromium-review.googlesource.com/1056528
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Harald Alvestrand <hta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558264}
[modify] https://crrev.com/02bd2d220545367bbad5f2dd02d78f1d50836cec/third_party/blink/renderer/platform/runtime_enabled_features.json5

Project Member

Comment 23 by bugdroid1@chromium.org, May 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4b752756a77c801e06f57562f5c4960923050dc2

commit 4b752756a77c801e06f57562f5c4960923050dc2
Author: Henrik Boström <hbos@chromium.org>
Date: Fri May 18 09:30:36 2018

Added RTCConfiguration's sdpSemantics to chrome://webrtc-internals.

This means
  sdpSemantics: "plan-b" (default behavior)
or
  sdpSemantics: "unified-plan" (can be explicitly passed in the
                                RTCPeerConnection configuration)

TBR=hta@chromium.org

Bug:  799030 
Change-Id: I355e6032be21603a9bf58046d51af70f6dd38c9f
Reviewed-on: https://chromium-review.googlesource.com/1065771
Reviewed-by: Henrik Boström <hbos@chromium.org>
Commit-Queue: Henrik Boström <hbos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559844}
[modify] https://crrev.com/4b752756a77c801e06f57562f5c4960923050dc2/content/renderer/media/webrtc/peer_connection_tracker.cc

Comment 24 by hbos@chromium.org, May 18 2018

Note to anyone following this issue:

The sdpSemantics is shipping in M-68 (currently in Canary), allowing you to experiment with Unified Plan SDP by doing:
  new RTCPeerConnection({sdpSemantics:"unified-plan"});

This will make createOffer()/createAnswer() generate Unified Plan SDP and make setLocalDescription()/setRemoteDescription() expect Unified Plan SDP. This SDP is not compatible with Plan B (default behavior) SDP for multiple audio tracks and/or multiple video tracks use cases.

With sdpSemantics:"unified-plan", internally there will be transceivers created according to spec (https://w3c.github.io/webrtc-pc/#rtp-media-api), but until RTCRtpTransceiver is supported ( https://crbug.com/777617 ) the sender/receiver/transceiver object state information will not be surfaced correctly to JavaScript, which may cause some unexpected behaviors.
  RTCRtpTransceiver will likely become available for sdpSemantics:"unified-plan" for M-69, including synchronizing the sender/receiver state information correctly to JavaScript.

Comment 25 by hbos@webrtc.org, Jun 13 2018

Blocking: -webrtc:8734

Comment 26 by hbos@chromium.org, Jun 27 2018

Blocking: 857004

Comment 27 by hbos@chromium.org, Jun 27 2018

Blocking: 857003
Blocking: -777617
Status: Started (was: Assigned)
hta@ what do you want to do with this one now that we have Unified Plan SDP and RTCRtpTransceiver shipped in M69 if you opt-in?

I think it is fixed if you opt-in for Unified Plan. Making Unified Plan the default behavior ( https://crbug.com/857003 ) and deprecating Plan B (https://crbug.com/857004) is tracked separately. Or do you want this to be a master bug for "Unified Plan is fully implemented and released"? (If so we should change the blocking of switch to blocked-on.)
Blockedon: 816475
Blockedon: -webrtc:8530
Status: Fixed (was: Started)
Per above comment I'll go ahead and close this bug. (This is not blocked on webrtc:8530 because Chrome has its own control for sdpSemantics.) Putting the milestone as M69 since that is where Unified Plan was reflected in the APIs with the launch of RTCRtpTransceivers. The SDP was available since earlier but it was poorly reflected in the RTCPeerConnection states.
Labels: M-69

Sign in to add a comment