New issue
Advanced search Search tips

Issue 833538 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug



Sign in to add a comment

[Remoting Host] Stop using SDP to set audio bandwidth

Project Member Reported by joedow@chromium.org, Apr 16 2018

Issue description

Per discussion with WebRTC members, the CRD host is modifying the local SDP to adjust the audio bandwidth being used.  We were advised that this approach will stop working at some point in the future and we should set our Audio bandwidth via a supported method (suggestion was to use RTPSender.setParameters() via the RTCRTPEncodingParameters.maxBitrate parameter).
 
Labels: M-69
Owner: lambroslambrou@chromium.org
Status: Assigned (was: Untriaged)
We should stop modifying SDP altogether (including the x-google-[min/max]-bitrate settings). This will help us migrate to Unified-Plan.

Blocking: 903012
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 16

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

commit 3fc40106b0c32d06ac3d5ebc59a78565263c6ec6
Author: Lambros Lambrou <lambroslambrou@chromium.org>
Date: Wed Jan 16 01:56:56 2019

Set bitrate caps using newer APIs

This removes the x-google-[min/max]-bitrate SDP parameters used to set
the bandwidth caps for the connection. Instead, the global caps are
set using PeerConnection::SetBitrate(), and the VideoSender caps are
set to the same values using RtpSender::SetParameters(), which was
already being used to set the max-bitrate cap for relay connections.
It appears that both global and per-sender caps are needed to
properly configure the b/w estimator and ALR probers, otherwise the
bitrate is severely constrained by WebRTC defaults (~600kbps).

This CL unblocks the UnifiedPlan migration, and ensures we are using
consistent APIs to set the bitrate caps for both direct and relayed
connections.

Bug:  903012 , 833538
Change-Id: Iefaddf877071f0fc3a010cf02a2b1fd2a92ad00c
Reviewed-on: https://chromium-review.googlesource.com/c/1409710
Reviewed-by: Joe Downing <joedow@chromium.org>
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623014}
[modify] https://crrev.com/3fc40106b0c32d06ac3d5ebc59a78565263c6ec6/remoting/protocol/webrtc_transport.cc

Comment 5 by lambroslambrou@chromium.org, Jan 17 (6 days ago)

The host no longer uses SDP to set video bitrates. That is sufficient to unblock UnifiedPlan migration.
However, the host and client both add audio parameters:
Host adds to SDP offer and incoming answer:
"stereo=1; maxaveragebitrate=163840"
Client adds to SDP outgoing answer:
"stereo=1; x-google-min-bitrate=160"

Together, they both cause the Opus encoder to output stereo at 160kbps. I verified this still works with UnifiedPlan.

It would still be nicer to use RtpSender::SetParameters() to hardcode these values (like we do for the Chrome app), instead of SDP munging and negotiation. We've been told that SDP munging might stop working at some point, so we want to do this work.

Comment 6 by lambroslambrou@chromium.org, Jan 17 (6 days ago)

Blocking: -903012

Sign in to add a comment