PSA: WebRTC M68 Release Notes

4,774 views
Skip to first unread message

Anatoli Davidson

unread,
Jun 28, 2018, 5:32:17 PM6/28/18
to discuss...@googlegroups.com

WebRTC M68 Release Notes


WebRTC M68 branch (cut at r23360)

Summary


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


PSAs

Unified Plan SDP testing flag

As announced earlier, Chrome will transition from Plan B SDP format to Unified Plan. Web developers can experiment with the new format by specifying {sdpSemantics: "unified-plan"} in the RTCPeerConnection constructor. Note that certain corresponding API’s are not completely implemented yet. More details about the transition plan can be found on webrtc.org.

WebRTC ObjC SDK now ships without SW video codecs by default

The WebRTC ObjC SDK is now built without SW video codecs by default. The purpose is to save binary size for clients that don't need SW video codecs. Link to PSA.


Features


Simulcast Screenshare

Any developer with an app that has simulcast configured, uses screenshare, and has the x-google-flag:conference flag set, might be affected by a new mode where two video streams with the same resolution but different bitrates and potentially different frame rates are sent. If you are running an SFU/MCU type service, make sure you can reliably distinguish between the high and low quality encodings, as just looking at resolution will no longer be enough. More details can be found in the original PSA.

Experimental support for OS-level echo cancellation on Mac and Windows

Once signed for the Origin Trial, application developers can evaluate using system-specific echo canceller implementations on macOS and Windows. These will be exposed though a new, experimental getUserMedia constraint named echoCancellationType. More information will be available on the Google Developer Blog once the Origin Trial is launched. You can also try it locally by starting Chrome with the command line argument --enable-blink-features=ExperimentalHardwareEchoCancellation.


Deprecations


Deprecation of Android MediaStream.label()

In order to be consistent and spec compliant, we have updated the media stream’s usage of “label” to “ID” (see bug 8977). The Android MediaStream has been updated from label() to getId() for accessing this field. Please update accordingly. This was communicated earlier in a separate PSA.


Deleting RTPFragmentationHeader on the video decode path

Webrtc's public video decoder api is defined by the interface webrtc::VideoDecoder, declared in api/video_codecs/video_decoder.h. The Decode method of this interface, and the corresponding objc api, used to have an argument of type RTPFragmentationHeader*. Since the RTPFragmentationHeader is not useful for video decoding, we have deleted those arguments. This affects applications injecting their own codecs. See details in the original PSA.

Issue

Description

Component

9071

Remove dependency on openmax_dl

Audio

6983

Remove WebRtcVideoSendStream2::VideoSink inheritance.

Video

9228

Remove internal factories from FakeWebRtcVideoCodecFactories

Video

6548

Move AudioFrame to webrtc/api

Audio


Features and Bugfixes


Type

Issue

Description

Component

Feature

9126

Add UMA histograms for NetEq's expand rates

Audio

Feature

7404

Move aecdump file IO from real-time audio thread to low-prio task queue

Audio

Feature

9193

Improvements on transparency for AEC3 under stationary noises at the farend side

Audio

Feature

9252

unpack_aecdump should unpack render/capture call order

Audio

Feature

846270

Add echo canceller type constraint

Blink>WebRTC>Audio

Feature

845187

Support Windows native echo canceller

Blink>WebRTC>Audio

Feature

9185

Optimize WebRTC log calls to use fewer bytes in the binary

Internals

Feature

9168

Support VPN adapter type in WebRTC

Network>ICE

Feature

9122

Handle Receiver Reference Time Report from multiple receivers

Network>RTP

Feature

8977

Update Media Stream naming of label to id

PeerConnection

Feature

9242

Minimum bit rate thresholds too low for 720p in VP9 SVC

Video

Feature

74261

Mitigate RTP pic ID errors in VP9 SVC non-flexible mode (for VP9 SVC enablement).

Video

Feature

76640

Limit inter-layer prediction to key pictures (for VP9 KSVC enablement).

Video

Feature

73685

Fill drops with last decoded frame (for VP9 SVC enablement).

Video

Feature

73440

Decode base reference frame if current layer was dropped  (for VP9 SVC enablement).

Video

Feature

71500

Add control for inter-layer prediction mode (for VP9 KSVC enablement).

Video

Feature

71663

Fix calculation of target bitrate of VP9 spatial layer (for VP9 SVC enablement).

Video

Feature

9260

Add field trial for configuring default number of temporal layers in a vp8 simulcast call

Video

Feature

9165

Reduce FEC table size and generate some FEC masks at runtime

BWE

Feature

9154

Revise examples/peerconnection to work with Unified Plan

PeerConnection

Feature

811683

WebRTC: Add UMA counters for Unified Plan

Blink>WebRTC>PeerConnection

Bug

9159

The AEC3 echo removal is too aggressive for low-level echoes during nearend-speech

Audio

Bug

9246

AEC3 echo leakage for closed headsets with non-negligible echo

Audio

Bug

9256

The AEC3 transparent mode is too aggressive

Audio

Bug

9206

The computation of the spectra for the render signal in AEC3 has an unintended side-effect

Audio

Bug

9163

The AEC3 initial alignment may sometimes be off, causing short periods of echo leakage initially.

Audio

Bug

9283

The AEC3 API call skew tolerance limit is set too tight

Audio

Bug

9204

The leakage behavior in some AEC3 FFT estimates do not match

Audio

Bug

9255

Incorrect usage of the echo path gain in the AEC3 nonlinear mode

Audio

Bug

836979

[desktopCapture OSX] screen capture stops internally on some MBP

Blink>GetUserMedia>Desktop

Bug

841193

The AEC3 transparent mode is too aggressive

Blink>WebRTC>Audio

Bug

839379

AEC3: Suppressor too aggressive during double talk

Blink>WebRTC>Audio

Bug

833801

The AEC3 echo removal is too aggressive for low-level echoes during nearend-speech

Blink>WebRTC>Audio

Bug

837563

The leakage behavior in some AEC3 FFT estimates do not match

Blink>WebRTC>Audio

Bug

840347

AEC3 echo leakage for closed headsets with non-negligible echo

Blink>WebRTC>Audio

Bug

9232

Call::OnTargetTransferRate sometimes tries to use deleted task queue member from another thread.

BWE

Bug

7112

RtpCodecParameters should expose channels and parameters.

Audio, Stats, Video

Bug

9192

AEC3: Attenuation of narrow banded peaks is too aggressive

Audio

Bug

9230

AEC3: Suppressor too aggressive during double talk

Audio

Bug

9241

AEC3: External delay is not applied correctly

Audio

Bug

4844

Clean codes relate to Speex

Audio

Bug

9119

The AEC3 handling of saturated echoes is overly conservative

Audio

Bug

9243

Stream delay reporting is enforced when the AEC3 echo cancellation solution is used

Audio

Bug

9109

AudioFrame::empty_data() adds 7KB of zeros to the binary size

Audio

Bug

796112

Sharing virtual desktop applications may not be captured

Blink>GetUserMedia>Desktop

Bug

831756

Add UMA for screenshare track ended

Blink>GetUserMedia>Desktop

Bug

819629

SetLocalDescription returns wrong error when called in wrong state

Blink>WebRTC>PeerConnection

Bug

9178

[desktopCapture OSX] cursor is wrongly composed in even if cursor is out of the captured screen/window

DesktopCapture

Bug

8652

Use the given IOSurface to reach higher capture framerate

DesktopCapture

Bug

9269

rtc::Event on top of pthreads should use monotonic clock

Internals

Bug

9112

Memory contention by threads in PeerConnection when invoking methods of PortAllocator

Network, PeerConnection

Bug

4050

Implement RTP/RTCP extensions for mid value transport

Network

Bug

9235

GetAdapterTypeFromName maps "eth" to ADAPTER_TYPE_UNKNOWN

Network>ICE

Bug

8772

RtpSenderInterface::SetParameters should fail with RTCError, not bool

PeerConnection

Bug

9171

Wrong payload size set to NetEq simulator in rtc_event_log visualizer.

Tools

Bug

9249

Receiver can't decode VP9 stream with partially enabled SVC

Video

Bug

9245

VP9 SVC: extra reference in GOF

Video

Bug

9151

SVC bitrate limits are used when encoding in single layer

Video

Bug

9217

VP9 SVC: encoder uses base layer for temporal prediction

Video

Bug

839860

AEC3: External delay is not applied correctly

Blink>WebRTC>Audio

Bug

836729

AEC3: Attenuation of narrow banded peaks is too aggressive

Blink>WebRTC>Audio

Bug

590625

SDP s= line (session name) must admit a single space as value

Blink>WebRTC>PeerConnection

Bug

826206

chrome://webrtc-logs doesn't refresh; must be restarted to refresh

Blink>WebRTC>Tools



Anatoli Davidson

unread,
Jul 2, 2018, 1:57:22 AM7/2/18
to discuss-webrtc
Also see this PSA about support for RTCRtpSender.getParameters() and setParameters() which landed in M68.

-Anatoli
Reply all
Reply to author
Forward
0 new messages