PSA: WebRTC M63 Release Notes

5,082 views
Skip to first unread message

Anatoli Davidson

unread,
Nov 2, 2017, 5:43:06 AM11/2/17
to discuss...@googlegroups.com

M63

WebRTC M63 branch (cut at r20237)

Summary

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

Removing support for DTLS to SDES fallback

Applying a session description with both “a=fingerprint” (for DTLS) and “a=crypto” (for SDES) will now fail; the offerer must decide on one or the other. Support for SDES itself is not being removed yet. See this announcement for more details.

Workaround for Chrome Microphone Issues

A workaround for the macOS missing audio issue has landed (webrc:4799) in Chrome and is currently running under an experiment. Details of the issue have been submitted to Apple with the aim of fixing the underlying problems. The current workaround only applies to macOS 10.10 and newer.

Features

Injectable Audio Codecs

As of M63, webrtc::CreatePeerConnectionFactory() accepts audio encoder and decoder factory arguments; WebRTC will use the supplied factories when creating audio encoder and decoder objects. The point is that the factories determine the set of supported codecs, so it is now possible for applications to support codecs that aren’t included in the WebRTC code base, and to omit support for codecs that are included. See this announcement for details.

Build WebRTC with DataChannel only

webrtc::CreateModularPeerConnectionFactory() is available and it can be used to build WebRTC with DataChannel support only. It accepts MediaEngineInterface, CallFactoryInterface and RtcEventLogFactoryInterface as arguments. If the application knows it won't use certain modules, it can pass in null pointers for specific modules and omit the corresponding modules from its build. See an example of usage in webrtc:7613.

Deprecations

Legacy VoiceEngine

Most of the legacy VoiceEngine interfaces have been removed: VoENetwork, VoERTP_RTCP, VoECodec and VoEFile, as well as unused methods from VoEBase, and the VoiceEngineObserver callback interface. As a result, the internal classes voe::OutputMixer and AudioConferenceMixer were no longer required so they have been removed too.


Platform

Issue

Description

Component

Native

7306

Removed AudioDeviceObserver and make ADM not inherit from the Module interface.

Audio

Features and Bugfixes

Chrome


Type

Issue

Description

Component

Feature

8201

Add post processing interface to audio processing module

Audio

Feature

8246

Implement RTCMediaStreamTrackStats.concealmentEvents.

Audio

Feature

8281

Implement RTCMediaStreamTrackStats.jitterBufferDelay.

Audio

Feature

8127

Better slicing for calls for analyzing the benefits of audio network adaptor.

Audio

Feature

8250

AEC3 buffering issues due to clockdrift and audio pipeline glitches should be more visible

Audio

Feature

5118

Unify logging mechanisms.

Audio, Video

Feature

7613

Build WebRTC with DataChannel only

Build

Feature

8160

Allow external implementations of TaskQueues

Internals

Feature

8032

Slice receive stats on simulcast id and ALR experiment group

Stats, Video

Feature

8174

Report received content_type in old getstats from recieve statstics proxy.

Stats, Video

Feature

8178

Implement new SentToInputFpsRatioPercent send-side UMA metric.

Stats, Video

Feature

8326

It should be possible to change the complexity of the frames generated by the square generator.

Video

Feature

7874

Refactor FrameBuffer2 to use unwrapped picture ids.

Video

Bug

8223

Switching to conservative mode after timeout mode causes excessive ducking

Audio

Bug

8224

The size of the allowed jitter in EchoCanceller3 reduces the glitch recovery time

Audio

Bug

8320

AEC3 leaks echoes for speech with strong high-frequency content initially in the calls

Audio

Bug

8322

The AEC3 transparency to nearend is sometimes low

Audio

Bug

8358

On systems with a known echo path delay, the AEC3 would benefit from a specified initial delay value

Audio

Bug

8359

Suboptimal NLP gains for the nonlinear echo power estimate

Audio

Bug

8360

The amount of echo being masked by the nearend signal is sometimes underestimated.

Audio

Bug

8361

The AEC3 NLP gain is applied in a too abrupt manner

Audio

Bug

8378

The transparency in AEC3 is sometimes not ideal

Audio

Bug

8379

AEC3 fails to detect the echo path delay in reverberant environments with moderate echo return loss

Audio

Bug

8397

AEC3 sometimes fails to detect a valid linear filter estimate in reverberant environments

Audio

Bug

8398

Too much echo suppression initially in the calls for AEC3

Audio

Bug

769894

Chrome extension desktopCapture for tabs regression

Blink>GetUserMedia

Bug

761990

Suspend/resume can cause MediaStream track onended event to be fired.

Blink>GetUserMedia>Mic,

Blink>WebRTC>Audio

Bug

763761

Switching to conservative mode after timeout mode causes excessive ducking

Blink>WebRTC>Audio

Bug

763775

The size of the allowed jitter in EchoCanceller3 reduces the glitch recovery time

Blink>WebRTC>Audio

Bug

765242

The echo canceller3 alignment functionality may get stuck in a noncausal state during capture data loss

Blink>WebRTC>Audio

Bug

8251

Video sometimes freezes

Network>RTP

Bug

5986

AudioEncoderOpus - invalid read

Audio

Bug

6861

WebRTC generates often this error "AcmReceiver::SetExtraDelay" failed: delay_ms=10000

Audio

Bug

7554

Expand rate may be wrong in some cases.

Audio

Bug

8041

WebRTC Mac app enable audio fail

Audio

Bug

8175

On some platforms, the allowed API call jitter in AEC3 is too low, resulting in excessive resets

Audio

Bug

770246

Improve reading SkImage pixels in canvas captureStream()

Blink>Canvas, Blink>MediaStream>

CaptureFromElement

Bug

732224

WebRTC screen sharing issue

Blink>GetUserMedia>

Desktop

Bug

741618

RTCPeerConnection.getRemoteStreams() should return all streams of all receivers

Blink>WebRTC>

PeerConnection

Bug

741619

RTCPeerConnection should not rely on remote stream added/remove events

Blink>WebRTC>

PeerConnection

Bug

7826

Certain functions in modules/pacing and modules/congestion_controller should be callable by multiple threads.

Cleanup

Bug

8157

Window border cannot be captured when window is not in foreground on Windows 8+

DesktopCapture

Bug

8325

Potential race condition in AudioSendStream constructor

Internals

Bug

8142

Config events lost while logging to file if the file is full

Internals

Bug

8143

RtcEventLogHelperThread::StartLogFile() can skip events

Internals

Bug

8145

Migrate RtcEventLog to use a task-queue rather than a helper thread

Internals

Bug

8188

TaskQueue::PostTask() overloading confused when posting subclass of PostedTask

Internals

Bug

8260

OnRemoveTrack

Internals,

PeerConnection

Bug

7996

WebRTC send NACK request at constant period 100ms if remote no RTCP ReceiveReport send

Network>RTP

Bug

8335

RtpPacketizerVp8 causes hard to spot issues for incorrect input

Network>RTP, Video

Bug

8332

Existing RTX codec added to the end of the list when APT codec's payload type was remapped

PeerConnection

Bug

8266

Stop supporting fallback from DTLS to SDES.

PeerConnection

Bug

8253

The concealedSamples counter should not go down.

Stats

Bug

8162

Fix temporal layer flags used for vp8 with 4 layers

Video

Bug

8070

x-google-min-bitrate doesn't seem to work with H264

Video

Bug

5677

Remote Java MediaStream isn't updated when tracks are added/removed via SRD

PeerConnection


Native Android/iOS


Type

Issue

Description

Component

Feature

7825

Add a scoped smart pointer type for CoreFoundation objects

Mobile (iOS, Mac)

Feature

7749

Android: Support RGB texture frames

Mobile (Android)

Feature

761472

Add support in Android GlShader for uploads of vertex arrays with non-zero stride.

Blink>WebRTC (Android)

Bug

761336

Win7 Chrome can't decode H264 stream from Android Chrome

Blink>WebRTC>Video (Android)

Bug

8306

Memory leak in RTCVideoEncoderH264

Mobile (iOS)

Bug

8308

Memory leak in RTCMTLNV12Renderer

Mobile (iOS0

Bug

8303

Byte buffer objects returned by getDataY/U/V are shared between threads unsafely.

Mobile (Android)

Bug

8217

Android AAR generation is broken by Java 8

Mobile (Android)

Bug

8220

iOS video decoding fails after switching to background and coming back to active

Mobile, Video (iOS)

Bug

8302

Hangs in VTDecompressionSessionInvalidate in iOS 11.

Mobile, Video (iOS)

Bug

8256

Continual gathering logic isn't regathering candidate when "getifaddrs" thinks interface is active but ConnectivityManager doesn't

Network>ICE (Android)


Archer Chen

unread,
Nov 5, 2017, 9:52:33 PM11/5/17
to discuss-webrtc
I am so sorry to reply in here. But if possible, can someone help me answer How to build WebRTC with DataChannel only in iOS ? Thank you in advance.
Reply all
Reply to author
Forward
0 new messages