PSA: WebRTC M65 Release Notes

3,666 views
Skip to first unread message

Anatoli Davidson

unread,
Feb 15, 2018, 7:18:25 AM2/15/18
to discuss...@googlegroups.com

WebRTC M65 Release Notes


WebRTC M65 branch (cut at r21637)

Summary


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


Changed identifiers for some WebRTC stats

The identifiers used for WebRTC stats returned by getStats() are supposed to be opaque values, but have been constant for a long time. Some have changed in this version. See this PSA for details.

Force HW H.264 to be Constrained Baseline Profile on Android

Currently, the H.264 codec on Android is only enabled with hardware H.264 encoders. Some third party peers only expect ConstrainedBaseLine during negotiation to be able to decode H.264 streams from Chrome on Android. In order to ensure better interoperability with those, Chrome on Android is now advising ConstrainedBaseLine in SDP exchanging. See this bug for details.

Hard limit on the number of PeerConnections created in one process

Garbage collection of PeerConnections in Chrome is implemented so that only closed PeerConnections are garbage collected (see this PSA for details). To prevent hitting the limit on number of PeerConnections, we introduced a hard limit of 500 on the number of PeerConnections that can be created in one process.

Features


RTCRtpSender.replaceTrack()

This allows you to seamlessly change which track is being sent without having to renegotiate at the expense of another offer/answer cycle. For example, you might want to switch which video to send or to temporarily not send video, without any disruption in audio or at the cost of an RTT delay. See this issue for details.

Deprecations


Legacy VoiceEngine API is removed

A long time ago we announced that the legacy VoiceEngine API would be removed. At the time it seemed a good idea to replace it with a public API at the same level, however we’ve subsequently changed our view. In order to maintain velocity when restructuring internals, we wish the API surface towards library clients to be as small as possible. Hence, the only currently supported API is PeerConnection. See PRESUBMIT.py for details on supported APIs. Removing the legacy VoiceEngine has eliminated two native threads which were spawned per PeerConnectionFactory, as well as reduced binary size and code complexity.

URL.createObjectURL() called with MediaStream objects will emit a deprecation message

This feature was removed from the standard in 2013 and users should use the standard-conformant HTMLMediaElement.srcObject instead. It’s supported by all UAs, unlike URL.createObjectURL() and is even easier to use correctly, as lots of users will never revoke the URLs they create.


Issue

Description

Component

789351

Remove unused WebRTC event logging API

Blink>WebRTC>Tools

800767

Deprecate URL.createObjectURL() for MediaStreams

Blink>GetUserMedia

8701

Remove DefaultAudioProcessingFactory

Audio, Mobile

8455

Remove iOS 8 specific code

Cleanup

4690

VoE API Refactoring

Audio

8663

PeerConnection constraints

PeerConnection

8563

aec_quality_min removed from the stats

Audio

Features and Bugfixes


Type

Issue

Description

Component

Feature

750940

Fuchsia: port WebRTC and its dependencies

Blink>WebRTC

Feature

796902

Add traces for timestamp and delay estimation in audio playback/capture pipeline

Blink>WebRTC>Audio

Feature

790007

RTCRtpSender.replaceTrack

Blink>WebRTC>PeerConnection

Feature

8569

Add relevant metrics for AEC3

Audio

Feature

8732

Make the echo detector injectable

Audio

Feature

5883

Move libjingle_peerconnection implementations in webrtc/api out of there

Build, Internals

Feature

8613

Replace duplicate enums with SdpType

PeerConnection

Feature

8666

It should be possible to change the volume of a fake audio device in the middle of a call test.

Audio

Feature

8558

Replace duplicate enums with RtpTransceiverDirection

PeerConnection

Feature

4690

VoE API Refactoring Tracking Bug

Audio

Bug

8597

Decoupling between the AEC3 alignment buffer and the rest of the buffers causes poor performance

Audio

Bug

8629

The render delay buffer scheme in AEC3 may cause the AEC to end up in a noncausal state

Audio

Bug

8615

The transparency of the AEC3 has decreased since M63

Audio

Bug

8637

A variable in the render delay buffer may be undefined

Audio

Bug

792346

The transparency of the AEC3 has decreased since M63

Blink>WebRTC>Audio

Bug

793305

The coupling render delay buffer scheme in AEC3 may cause end up in a noncausal state

Blink>WebRTC>Audio

Bug

797274

The WebRTC echo canceller (AEC2) is sensitive to incorrect the timestamps that are reported on Chrome OS.

Blink>WebRTC>Audio

Bug

790905

Decoupling between the AEC3 alignment buffer and the rest of the buffers causes poor performance

Blink>WebRTC>Audio

Bug

794099

A variable in the AEC3 render delay buffer may be undefined

Blink>WebRTC>Audio

Bug

8721

PeerConnection with Unified Plan semantics does not correctly signal tracks

PeerConnection

Bug

801846

"Playing sound" alert stuck turned on for silent tab

Blink>WebRTC>Audio

Bug

793305

The coupling render delay buffer scheme in AEC3 may cause end up in a noncausal state

Blink>WebRTC>Audio

Bug

790905

Decoupling between the AEC3 alignment buffer and the rest of the buffers causes poor performance

Blink>WebRTC>Audio

Bug

794099

A variable in the AEC3 render delay buffer may be undefined

Blink>WebRTC>Audio

Bug

8585

Missing playout (recording from caller point of view) functionality for FileAudioDevice.

Audio

Bug

8381

Frame length changes can cause increased target buffer level in NetEq

Audio

Bug

8672

When there are issues with large API call jitter in AEC3 it should be known to the users

Audio

Bug

8661

The adaptive filter in echo canceller 3 converges poorly in reverberant environments

Audio

Bug

8609

Hardcoded behavior for the AEC3 adaptive filter

Audio

Bug

8747

Saturated echoes may cause the adaptive filter in AEC3 to diverge

Audio

Bug

8746

The adaptation speed in AEC3 is sometimes too slow initially

Audio

Bug

8607

RemoteBitrateEstimatorAbsSendTime: check clock is a valid ref

BWE

Bug

7508

Experiment with sparse checking for bandwidth overuse

BWE

Bug

8625

On OSX the mouse is captured even if MouseCursorMonitor is null

DesktopCapture

Bug

7655

STUN messages never stop after closing the connection

Network>ICE

Bug

8531

ICE negotiation failing with ICE-lite implementation

Network>ICE

Bug

8468

Remote ntp time estimation is way off sometimes.

Network>RTP

Bug

8616

GetStats doesn't show streams/tracks that were added using AddTrack

PeerConnection, Stats

Bug

8643

googBandwidthLimitedResolution stat is not always set depending on configuration.

Video

Bug

8617

ForwardErrorCorrection can return empty FEC packets when there is no suitable packet masks

Video

Bug

8536

H264 video corruption issue under packet lossy conditions

Video

Bug

8275

WebRTC cannot decode an SPS with scaling lists

Video

Bug

8596

Remove dependency on rtc::Event from rtc::Thread

Internals

Bug

8626

RTCP Receiver Report not compliant with RFC 3550

SpecConformance

Bug

794501

Getting audio input channels fails on Mac - always falls back on stereo

Blink>WebRTC>Audio

Bug

802173

Incorrect closest match audio input format on Windows

Blink>WebRTC>Audio

Bug

801205

getStats() in combination with RTP Media API should work as expected

Blink>WebRTC>PeerConnection

Bug

8741

ReadFloatSamplesFromStereoFile will read out of array bounds on some inputs

Audio

Bug

8460

[Window Capturer] Checking whether window title is "Dock" on Mac OSX 10.12 or upper is not proper

DesktopCapture

Bug

8648

GetSimulcastConfig - potentially harmful return

PeerConnection

Bug

793273

RTCPeerConnectionHandler::DestructAllHandlers is unused

Blink>WebRTC>PeerConnection


Joshua Xiong

unread,
Jul 11, 2018, 8:49:02 AM7/11/18
to discuss-webrtc
I seek the commits for "replaceTrack".
But it seems like it's implemented almost in the "chromium" project, rather than WebRTC.

I am wondering why "replaceTrack" API is in the webrtc release note, rather in the chromium release note.

Sorry for my naive question. thanks a lot.

PhistucK

unread,
Jul 11, 2018, 9:48:01 AM7/11/18
to WebRTC-discuss
The release notes are not necessarily only for the WebRTC library code, but for the WebRTC features across all of its supported editions and concepts, including those of the WebRTC library (web features as well as native features) and the Chromium WebRTC (web and native) related features.

PhistucK


--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/e8568f3e-c4b5-40fd-a665-0e585e0cd07b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages