PSA: WebRTC M69 Release Notes

3,142 views
Skip to first unread message

Anatoli Davidson

unread,
Aug 27, 2018, 9:07:30 AM8/27/18
to discuss...@googlegroups.com

WebRTC M69 Release Notes


WebRTC M69 branch (cut at r24012)

Summary


WebRTC M69, currently available in Chrome's beta channel contains over 10 new features and over 45 bug fixes, enhancements and stability/performance improvements. As with previous releases, we encourage all developers to run versions of Chrome on the Canary, Dev, and Beta channels frequently and quickly report any issues found. Please take a look at this page, for some pointers on how to file a good bug report. The help we have received has been invaluable!


The Chrome release schedule can be found here. Native libraries for Android and iOS are built on weekly basis and available on JCenter and CocoaPods; the Changelog is available here.

PSAs

Update on Unified Plan transition

We are working on our commitment towards WebRTC 1.0. One of the biggest pieces of this is switching to the spec compliant SDP format called Unified Plan which is important for cross-browser compatibility, especially when multiple tracks of the same kind are signaled. The sdpSemantics configuration for controlling whether to use Unified Plan has been in Chrome since M65, but it's not until M69 that RTCRtpSenders and RTCRtpReceivers have been updated correctly to reflect the SDP. Also new in M69 are RTCRtpTransceivers, which represent the m= sections of the SDP, only available in Unified Plan. See the transition plan and keep an eye out for upcoming PSAs regarding the switch; your application may be affected by incompatibilities between the old and new format.

PSA: DataChannel closing procedure changing

The DataChannel closing procedure has been changed to match the standard. As a result, if you close a DataChannel from a new version of WebRTC, and the other endpoint is using an old version, it will be stuck in the "closing" state. This is already what happens if you close a DataChannel from Firefox and the other side is Chrome (as Firefox is already doing the correct procedure). See original PSA for more details.

Features

Added RTCRtpSender.getCapabilities() / RTCRtpReceiver.getCapabilities()

The static method getCapabilities() returns the most optimistic view of the capabilities of the system for sending or receiving media of the given kind. It does not reserve any resources, ports, or other state but is meant to provide a way to discover the types of capabilities of the browser including which codecs or RTP extensions may be supported. For more details see the original Intent to Implement and Ship on the blink-dev mailing list.

Per-layer maxBitrate support in RTCRtpSender.setParameters()

Setting maxBitrate now properly works for simulcast and allows setting bitrate limits per layer (RTCRtpEncodingParameters). Previously, the setting would only work for setting the maxBitrate to the RTCRtpSender as a whole. For more details see this PSA.


Added RTCRtpTransceiver and related APIs behind sdpSemantics:'unified-plan'

The following new APIs are supported when Unified Plan is used:


These are enabled if {sdpSemantics:’unified-plan’} is passed to the RTCPeerConnection constructor or if command line flag --enable-blink-features=RTCUnifiedPlanByDefault is used. Unified Plan is the spec agreed-upon behavior and is different from Chrome’s current behavior (known as Plan B). In particular, the SDP format and lifetime of senders and receivers are different, which may cause incompatibilities between clients with different SDP semantics. For more information, see PSA.

Deprecations

Non-linear beamformer removed (PSA)

The nonlinear beamformer in the audio processing module is deprecated, to ease refactoring and because of its very low usage. This entails the following API changes.


Removed:

  • webrtc::AudioProcessingBuilder::SetNonlinearBeamformer

  • webrtc::Beamforming

  • modules/audio_processing/beamformer/*

Marked deprecated:

  • webrtc::ConfigOptionID::kBeamforming



Issue

Description

Component

9402

Remove beamformer code from APM

Audio

9421

Deprecate Fax and Off modes from NetEq

Audio

9062

Remove the audio codec factory methods that don't take AudioCodecPairId. Also see this PSA.

Audio

9411

Remove deprecated RateControlInput::noise_var

BWE

9426

Remove unused/deprecated DTMF methods

PeerConnection

9352

Stop using deprecated ffmpeg functions

Video


Features and Bugfixes


Type

Issue

Description

Component

Feature

8906

Send application-specific bytes from RtpSender through Transport

Network>RTP

Feature

7577

Add RtpSenderInterface.getCapabilities()

Network>RTP

Feature

9441

Add RtpReceiverInterface.getCapabilities() for PeerConnection

PeerConnection

Feature

9522

Preserve color space information for internal codecs

Video

Feature

852701

Support content-hint of type "text" for MediaStreamTrack

Blink>WebRTC

Feature

777617

Support RTCRtpTransceiver (transceiver)

Blink>WebRTC>PeerConnection

Feature

9341

Support setting maxBitrate with RTCRtpSender.setParameters() for individual simulcast layers (using RTCRtpEncodingParameter)

Blink>WebRTC>PeerConnection

Feature

600254

WebRTC H.264 packetization-mode 0 support

Blink>WebRTC>Video

Feature

9346

Field trial parser

BWE

Feature

8655

RTCRtpEncodingParamers.maxBitrate for each simulcast stream for RTPSender

PeerConnection

Feature

9270

VP9 SVC: use VP9E_GET_SVC_REF_FRAME_CONFIG to get actual refs

Video

Feature

79622

Drop entire superframe if any layer is overshooting

Video

Bug

9400

AEC3: Echo leakage in moderately reverberant environments

Audio

Bug

9343

The direct path component in the AEC3 linear filter is sometimes wrongly estimated

Audio

Bug

9466

The linear filter in AEC3 is slow to respond to echo path gain changes that cause saturations

Audio

Bug

9321

AEC3: Highly linear and time invariant platforms should be treated separately

Audio

Bug

9375

The range of the metrics for the estimated audio buffer delay in AEC3 is too short to cover longer delays

Audio

Bug

9374

For platforms with a high audio buffer latency, the AEC3 delay estimator look window may be too small

Audio

Bug

9371

The AEC3 refined delay is inaccurate after a new delay estimator delay has been found

Audio

Bug

852257

AEC3: Echo leakage in moderately reverberant environments

Blink>WebRTC>Audio

Bug

848231

The direct path component in the AEC3 linear filter is sometimes wrongly estimated

Blink>WebRTC>Audio

Bug

850538

The range of the metrics for the estimated audio buffer delay in AEC3 is too short to cover longer delays

Blink>WebRTC>Audio

Bug

850525

For platforms with a high audio buffer latency, the AEC3 delay estimator look window may be too small

Blink>WebRTC>Audio

Bug

850451

The AEC3 refined delay is inaccurate after a new delay estimator delay has been found

Blink>WebRTC>Audio

Bug

857426

The linear filter in AEC3 is slow to respond to echo path gain changes that causes saturations

Blink>WebRTC>Audio

Bug

835958

Performing a subsequent offer/answer causes SRTCP (and possibly SRTP) decryption errors

Blink>WebRTC>PeerConnection

Bug

9337

The RtcEventLog instance is not passed to P2PTransportChannel via JsepTransportController.

PeerConnection

Bug

8734

Two senders created with the same track result in "CreateOffer called with invalid session options"

PeerConnection

Bug

9354

Wrong lock passed into GainControlImpl?

Audio

Bug

9384

Changes on how the reverberation model is applied for AEC3

Audio

Bug

9462

AEC3: Too aggressive use of non-linear mode

Audio

Bug

9370

NetEq PacketBuffer logs discarded packet with wrong codec_level when new packet places lower level packet

Audio

Bug

9316

audioproc_f functionality for systems not reporting the stream delay is needed

Audio

Bug

9526

AEC3: No special action is taken when the microphone gain is changed.

Audio

Bug

846615

AEC3: Delay estimator sensitive to noise

Blink>WebRTC>Audio

Bug

9363

AimdRateControl increase send rate when not receiving feedback

BWE

Bug

4453

SCTP data channel goes to "closed" state prematurely.

Network

Bug

9208

PseudoTcp corrupts data.

Network>ICE

Bug

9468

Candidates on the default route undesirably preferred than candidates with explicit interface type.

Network>ICE

Bug

8804

packetsLost and "jitter" stats only updated when RTCP SR or RR is sent

Network>RTP, Stats

Bug

6668

sdp: ice-lite attribute is not re-serialized

PeerConnection, SpecConformance

Bug

9341

Add min_bitrate_bps to RtpEncodingParameters struct.

PeerConnection, Video

Bug

9276

mac demo has no video preview

SampleApps

Bug

3342

Missing ssrc_ section in getStats when receiving from client with no a=ssrc lines

Stats

Bug

9519

Recently added log line causes excessive logging when GetStats is called frequently.

Stats

Bug

9302

incorrect sanity-check in WebRtcVideoChannel::WebRtcVideoReceiveStream::SetLocalSsrc

Video

Bug

9514

Remove workaround for M55 and below where we always send RED even without FEC.

Video

Bug

9345

Padding bitrate is not correctly calculated in case of VP9

Video

Bug

9472

VP9 SVC video freeze frame when # active spatial layers < # configured layers

Video

Bug

9425

VP9 SVC video loopback freeze frame when send-side bandwidth is restricted

Video

Bug

9244

VP9 SVC: inter_pic_predicted is true in the first frame of added upper spatial layer

Video

Bug

9304

VP9 hardware decoder fails to decode SVC stream

Video

Bug

847664

[desktopCapture Win] Hangout presenting notification window blocks window sharing

Blink>GetUserMedia>Desktop

Bug

6898

Always capturing in 1920x1080 on OS X

DesktopCapture



Reply all
Reply to author
Forward
0 new messages