WebRTC M67 Release Notes

2,640 views
Skip to first unread message

Anatoli Davidson

unread,
May 22, 2018, 5:28:04 AM5/22/18
to discuss...@googlegroups.com

WebRTC M67 Release Notes


WebRTC M67 branch (cut at r22779)

Summary


WebRTC M67, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains over 15 new features and over 25 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.

PSAs


Chrome Autoplay policies affect playback of local and remote media streams

Chrome rolled out new autoplay policies in Chrome M66. The new policy affects the playback of local and remote media streams, more information can be found in crbug/835767. At the moment Chrome M66 was updated to remove the autoplay policy for the Web Audio API, but the autoplay policy will remain in effect for <video> and <audio>. We are currently working together with the Chrome team to develop a set of recommendations for WebRTC developers that will be shared in a separate PSA.


Android MIPS builds are not actively supported anymore

The trybot to build and test WebRTC on Android MIPS has been removed. The support for the MIPS ABI is deprecated in the current stable version of the Android NDK (r16) and it will be removed in r17. See PSA.


Default SRTP authentication tag length changing from 32 to 80 bits

We're changing to a more secure DTLS-SRTP profile (SRTP_AES128_CM_HMAC_SHA1_80), which uses an 80-bit authentication tag as recommended by the SRTP standard. Aside from adding 6 bytes per packet, this is not expected to have any adverse effects. See PSA.


Features


getStats() selection algorithm

The new APIs return a subset of the result of a full getStats() call, filtering based on a “selector”. The benefits are convenience and easier being able to find the relevant stats. For example, if you call sender.getStats(), the 'track' stats object contained in the result will be the stats for the sender's track. See PSA and spec. The APIs that are shipping in M67 are:

  • RTCRtpSender.getStats()

  • RTCRtpReceiver.getStats()

  • RTCPeerConnection.getStats(optional MediaStreamTrack? selector = null)
    (Prior to this only the parameterless version of promise-based getStats() was available.)

It’s now possible to build audio encoders and decoders that cooperate

WebRTC now passes "audio codec pair IDs" to audio codec factories when they create codec instances. The intended use case is to allow factory implementations to connect audio decoder and audio encoder instances that talk to the same remote party. Here are the docs for AudioEncoderFactory and AudioDecoderFactory and a test that demonstrates how this can be hooked up.

Deprecations


Issue

Description

Component

8659

Remove AudioTransport::PushCaptureData()

Audio

Features and Bugfixes


Type

Issue

Description

Component

Feature

8869

Update Android PeerConnection APIs so "Unified Plan" and RtpTransceivers can be used

Mobile, PeerConnection

Feature

8870

Update iOS PeerConnection APIs so "Unified Plan" and RtpTransceivers can be used

Mobile, PeerConnection

Feature

9126

Add UMA histograms for NetEq's expand rates

Audio

Feature

5801

ACM: No built-in decoders

Audio

Feature

8941

Allow pairing of audio encoder and decoder that talk to the same remote endpoint

Audio

Feature

9102

Binary size of fec private tables needs to be reduced

BWE

Feature

8857

Reduce complexity of compute packet loss mask for fec controller

BWE

Feature

8963

Enables configuration of transmission max bitrate multiplier.

BWE

Feature

8968

Enable round robin packet queue by default.

Network, Video

Feature

8313

Add interface that allows customizing stun messages sent by TurnPort

Network>ICE

Feature

9108

Expose RRTR in media engine

Network>RTP

Feature

7932

Multiple streams per sender/receiver

PeerConnection

Feature

8977

Update Media Stream naming of label to id

PeerConnection

Feature

8901

googHugeFramesSent GetStats metric.

Stats, Video

Feature

8910

Add ability to run generic calls with fake network constraints

Tools

Feature

8518

VP9 SVC rate allocator. This changes bitrate of layers and their quality as result.

Video

Feature

9058

Enable video timing frames for chromoting encoder

Video

Feature

8966

Make it possible to clear the VideoFormat set on VideoAdapter

Video

Bug

9023

The delay estimator in AEC3 is sometimes too slow to react to a buffer issue causing a delay change

Audio

Bug

9008

Echo leakage for narrow band render signals in AEC3

Audio

Bug

9083

Headsets performance is worse in AEC3 is it is not used initially in the call

Audio

Bug

9087

For very low level echo in silent backgrounds, the AEC3 linear filter fails to report convergence

Audio

Bug

8954

The AEC3 API call skew detector is too aggressive on platforms with high jitter in the API call sequence

Audio

Bug

9079

Setups with clock-drift and and located in reverberant environments may cause echo leakage in AEC3

Audio

Bug

9047

The AEC3 sometimes has very poor transparency when a headset it used

Audio

Bug

8983

The abrupt transition from initial to normal mode in AEC3 may cause a small amount of echo leakage

Audio

Bug

8979

The AEC3 suppressor gain rampup behavior is the same for call start and resets within the call

Audio

Bug

819240

The abrupt transition from initial to normal mode in AEC3 may cause a small amount of echo leakage

Blink>Media>Audio

Bug

826972

[regression] RTCStatsReport doesn't contain candidate-pair and other types of entries

Blink>WebRTC

Bug

825977

History chrome://webrtc-logs/ not cleared when user clears data

Blink>WebRTC

Bug

821670

Echo leakage for narrow band render signals in AEC3

Blink>WebRTC>Audio

Bug

822245

The delay estimator in AEC3 is sometimes too slow to react to a buffer issue causing a delay change

Blink>WebRTC>Audio

Bug

827101

For very low level echo in silent backgrounds, the AEC3 linear filter fails to report convergence

Blink>WebRTC>Audio

Bug

817313

The AEC3 API call skew detector is too aggressive on platforms with high jitter in the API call sequence

Blink>WebRTC>Audio

Bug

824111

The AEC3 sometimes has very poor transparency when a headset it used

Blink>WebRTC>Audio

Bug

835958

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

Blink>WebRTC>PeerConnection

Bug

9082

Datatransfer gets stuck for a long time

DataChannel

Bug

680172

RTCPeerConnection.getStats selector argument

Blink>WebRTC

Bug

9019

Audio BWE for video min BWE is too low

BWE

Bug

7670

Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32

Network>DTLS

Bug

9034

Role conflict errors not sent to prflx candidates over TURN

Network>ICE

Bug

7933

addTrack with no stream should not result in announcing a stream in the SDP

PeerConnection

Bug

828793

Run external/wpt/webrtc/ tests with Unified Plan

Blink>WebRTC>PeerConnection

Bug

9066

Set marker bit on last frame of superframe

Video

Bug

8969

Impossible to reinit VPx wrapper after unsuccessful init

Video

Bug

819118

DTMF sender sends first tone too quickly

Blink>WebRTC


Reply all
Reply to author
Forward
0 new messages