PSA: WebRTC M59 Release Notes

5,209 views
Skip to first unread message

Anatoli Davidson

unread,
May 10, 2017, 8:07:24 AM5/10/17
to discuss...@googlegroups.com

M59

WebRTC M59 branch (cut at r17657)

 

Summary

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

Important PSAs

Security vulnerability in M58 fixed

A fix for a security vulnerability in M58 has been merged into M58 (available in Chrome 58.0.3029.96) and is also present in M59. See the details in the public PSA on the discuss-webrtc forum.

Features

ICE candidate pooling

Normally, ICE candidates are only gathered after RTCPeerConnection.setLocalDescription is called, because this is the point at which the PeerConnection knows how many media components it needs to gather candidates for. However, the iceCandidatePoolSize member of RTCConfiguration, implemented in M59, instructs the PeerConnection to gather ICE candidates before this occurs, in order to speed up call setup. For more information, see its description in the spec.

AEC3

A major update to the echo cancellation functionality (AEC3) is now available for testing. The main benefits with the new functionality are improved echo cancellation performance and more rapid recovery from issues in the audio buffer pipeline. For this release, AEC3 is still off by default and its performance will be evaluated in experiments to apply further tuning. In Chrome M59 it can be controlled via the Chrome flag “WebRTC Echo Canceller 3”.

AppRTCMobile can now be developed inside Android Studio

It is now possible to compile and debug AppRTCMobile inside Android Studio. WebRTC Java code can also be developed inside Android Studio using this approach. This gives access to Android Studio’s extensive development and debugging tools. More information on how to do this can be found here: https://webrtc.org/native-code/android/

Partial RTCRtpReceiver support with getContributingSources()

It is now possible to get the RTP packet contributing sources (CSRCs) of receiving tracks. RTCPeerConnection.getReceivers() has been added, which returns RTCRtpReceiver with .track and .getContributingSources() support. See spec.

More robust Bandwidth Estimation for cellular and WiFi connections.

To improve the robustness of the bandwidth estimator on cellular and WiFi networks we've replaced the approach previously used (described here) with a less complex filter based on estimating the trend of the queuing delay. In addition, we've changed the way we're estimating the throughput of the network to make it more stable to short periods of no or very little throughput, which could throw off the old mechanism. Our experiments show that the impact of delay transients is reduced. The rmcat draft will be updated later to reflect these changes in the algorithm.

Spec-compliant video constraints processing in getUserMedia

getUserMedia now supports the standard algorithm for processing video constraints, including support for 'ideal' values. See spec.

VP9 Denoiser enabled by default

The internal denoiser of VP9 has been enabled by default. This will lead to improved visual quality in low light scenarios, with only slightly higher CPU utilization. More information is available in the feature issue.

 

Deprecations

 

Platform

Issue

Description

Component

All

7338

Delete support for RTCP RPSI and SLI messages

Video

Native

5549

iOS: remove use of deprecated APIs when moving from ios_deployment_target 7.0 to 9.0.

Build, Mobile (iOS)

Native

7035

Remove webrtc::CriticalSectionWrapper and migrate to rtc::CriticalSection

Internals

 

Features and Bugfixes

Chrome

 

Type

Issue

Description

Component

Feature

6018

AEC3: major AEC functionality update

Audio

Feature

7058

Calculate first-order-FEC-recoverable packet loss rate for audio and use it to adapt Opus in real time.

Audio

Feature

7175

Support N unsignaled audio streams

Audio

Feature

7392

Set max bitrate for audio send stream based on RtpParameters

Audio

Feature

6984

Add probe logging to RtcEventLog (and UMA?).

BWE

Feature

6566

BWE can be too sensitive to delay spikes.

BWE

Feature

5222

Support GCM encryption for SRTP

Network

Feature

6541

QP statistics for WebRTC codecs

Stats

Feature

6822

Improve bitrate probing at high bitrates.

Video

Feature

7208

Perform probing when network route change.

Video

Feature

7412

Enable vp9 denoiser by default

Video

Bugfix

7169

Render signal is not stored to aecdump when AEC is disabled

Audio

Bugfix

7334

AudioEncoderOpus::RecreateEncoderInstance uses old config_ for num of samples and num of channels

Audio

Bugfix

7270

Memory leak in Windows Core Audio

Audio

Bugfix

7257

Avoid cyclic dependency between RTC event log and audio network adaptor

Audio

Bugfix

7282

WebRTC might pick the wrong CN payload id for sending

Audio

Bugfix

7290

VoiceProcessThread busy

Audio

Bugfix

7347

Feedback about packets sent on an old route may temporarily have a large effect on BWE.

BWE

Bugfix

7059

webrtc::field_trial::FindFullName called too often

Cleanup

Bugfix

7305

XGetImage errors are not always handled properly

DesktopCapture

Bugfix

7304

CPU adaptation for HW encode

HardwareCodec

Bugfix

4508

Make ProcessThread::DeRegisterModule and RegisterModule be called consistently on the same thread

Internals

Bugfix

7341

QueueTask on windows don't execute DelayedTasks then under heavy load.

Internals

Bugfix

7288

Incorrectly masked seq number for GCM IV.

Internals, Network

Bugfix

7220

4 microphones not supported in Windows core audio

Mic

Bugfix

7072

Error thrown if Chrome receives subsequent offer with DTLS role that's not "actpass"

Network

Bugfix

3416

PeerConnectionFactory requires initializing voice & video engines even in datachannel-only apps

PeerConnection

Bugfix

6959

SCTP DataChannel packets with source ports 32768-49151 get filtered out

PeerConnection

Bugfix

1928

Support Suite B cryptosuites for SRTP

PeerConnection

Bugfix

7181

RTCStatsCollector retains pointers to closed data channels

Stats

Bugfix

7432

Quality limited resolution stats are reported when quality scaler is disabled.

Stats, Video

Bugfix

7400

VideoReceiveStream::Stats.total_bitrate_bps does not report the received bitrate when there is packet loss

Stats, Video

Bugfix

7362

DCHECK fails in RtpFrameReferenceFinder::Vp9PidTl0Fix

Video

Bugfix

7027

Video isn't played if codec name isn't correctly cased ("vp8" instead of "VP8")

Video

Bugfix

7293

Improve performance of ParseRbsp() function.

Video

Bugfix

6202

Cannot remove b=AS restriction once it has been applied

Video

Bugfix

6139

Probe fails due to negative send delta time

Video

Bugfix

7331

FrameBuffer can cause busy loops during shutdown

Video

Bugfix

7335

PacedSender can busy loop while paused

Video

Bugfix

7330

ThreadSanitizer: lock-order-inversion in RespectsMinTransmitBitrateAfterContentSwitch

Video

Bugfix

714386

User-preferred audio device in content settings is not preferred over default device

Blink>GetUserMedia

Bugfix

682887

getUserMedia gives 640x480 when constraints say 1280x720

Blink>GetUserMedia

Bugfix

651910

Chrome does not throw getUserMedia error when any other application is using camera on Windows

Blink>GetUserMedia, Blink>WebRTC

Bugfix

697780

chrome.desktopCapture broken on Mac: does not mirror context menus and shows two cursor

Blink>GetUserMedia>Desktop

Bugfix

702745

DesktopCapturer::Create(Window|Screen)Capturer() do not handle failures correctly.

Blink>GetUserMedia>Desktop, Services>Chromoting

Bugfix

695440

"Always allow https://... to access your microphone" is not sticky.

Blink>GetUserMedia>Mic, UI

Bugfix

710040

tab mirroring broken. local content flashes white and blue when page updates

Blink>GetUserMedia>Tab

Bugfix

684288

Stream with disabled video track reports 2x2 resolution on loadedmetadata

Blink>MediaStream

Bugfix

704326

CHECK failure: false in jsepsessiondescription.cc

Blink>WebRTC

Bugfix

705505

can't cast from tab9

Blink>WebRTC, Internals>Cast

Bugfix

651512

Disabling (wait to enable) #enumerate-audio-devices feature on ChromeOS

Blink>WebRTC>Audio

Bugfix

703122

Partial RTCRtpReceiver and RTCRtpContributingSource support

Blink>WebRTC>Network

Bugfix

673395

Implement RTCConfiguration.iceCandidatePoolSize

Blink>WebRTC>PeerConnection

Bugfix

712311

Using DXVA HW decoder for WebRTC fails

Blink>WebRTC>Video, Internals>Media>Codecs

 

Native Android/iOS

 

Type

Issue

Description

Component

Feature

7456

Add support for 64-bit architectures in build_aar.py.

Mobile (Android)

Feature

6328

Make AppRTCDemo easy to use from Android Studio

Mobile (Android)

Feature

7316

iOS: Add an option to specify preferred codec in AppRTCMobile

Mobile (iOS)

Feature

CL

Add loopback launch argument functionality in AppRTCMobile

Mobile (iOS)

Bugfix

7267

Incorrect frame size from Android HW H264 decoder

Video, Mobile (Android)

Bugfix

7431

Implement getter for configuration in RTCPeerConnection

PeerConnection (iOS)

Bugfix

7139

Chrome on Android: H264 HW decoding error since #447978

Video (Android)

Bugfix

674959

Inconsistent UI for Android screensharing

Blink>MediaStream, Blink>WebRTC (Android)

 

Regards
Anatoli

Kushtrim Pacaj

unread,
May 13, 2017, 5:36:41 AM5/13/17
to discuss-webrtc
Hi, is there a way to turn on AEC3 for testing in Android native ? Is it intended to be used in mobile ?

Eric M

unread,
May 22, 2017, 6:47:24 AM5/22/17
to discuss-webrtc
AEC3 can be used on mobile?  how about it performance?

在 2017年5月10日星期三 UTC+8下午8:07:24,Anatoli Davidson写道:

bl...@webrtc.org

unread,
May 26, 2017, 11:37:11 AM5/26/17
to discuss-webrtc
Our AEC3 effort focuses on improving echo cancelation in Chrome on desktop platforms. It's not adapted for mobile platforms.

/Niklas
Reply all
Reply to author
Forward
0 new messages