PSA: WebRTC M77 Release Notes

2,715 views
Skip to first unread message

Chakri Munagala

unread,
Sep 2, 2019, 8:38:51 AM9/2/19
to discuss-webrtc

WebRTC M77 Release Notes


WebRTC M77 branch (cut at r28685)

Summary


WebRTC M77, currently available in Chrome's beta channel, contains 16 new features and over 70 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. Native libraries for Android and iOS are built on a weekly basis and are available on JCenter and CocoaPods; the Changelog is available here.

PSAs

Behavior change for sending MID/RSID RTP header extensions

This change affects endpoints which use the MID/RSID RTP header extensions to demultiplex RTP streams instead of SSRCs and are not compliant with BUNDLE specification.

The MID and RSID RTP header extensions are used to demultiplex RTP streams that share the same transport. PeerConnections in “Unified Plan” mode will negotiate these by default. Previous versions would always attach both header extensions in every sent RTP packet for the life of the connection. Starting with the M77 release the behavior has changed so that the header extensions will be omitted after RTCP feedback is received for that RTP stream, reducing RTP packet overhead. Please see webrtc:10078 for more details


Features


Improved browser tab capture UX

When users share a browser tab using getDisplayMedia() Web API or desktopCapture() extension API, a new infobar at the top of the shared tab and an outline highlighting the shared content will appear, making it easier to control the content that is being shared. Sharing of browser content through tab capture offers better end-user privacy as no other screen content such as notification will be visible and the capture process is typically more CPU efficient than window/screen capture.

In the new UI, the infobar is implemented on all desktop platforms, and the outline is supported on all desktop platforms except Mac.

Note: getDisplayMedia() API does not currently support changing the source of the tab capture (pre-existing behavior https://crbug.com/997126).


Shipping RTCPeerConnection.restartIce()
This method triggers negotiation needed and an ICE restart in the next offer-answer exchange. Restarting ICE can already be achieved by explicitly passing {iceRestart:true} as an argument to createOffer(). The benefit of restartIce() is that it works regardless of signalingState and is safe to call in the middle of an ongoing offer-answer exchange. This is part of Perfect Negotiation, which makes signaling in WebRTC race-free and less error-prone. For more details, see slides.

Shipping RTCPeerConnection.onicecandidateerror

This API reports when failures occur when gathering ICE candidates. See spec.

Shipping RTCRtpSender.setStreams()

This API allows updating the stream associations of a sender, which - unlike track IDs - are negotiated to match on both endpoints. This complements replaceTrack(). See spec.

Standard getStats() Improvements

  • Audio level metrics (audioLevel, totalAudioEnergy and totalSamplesDuration) have been added for local tracks to the “media-source” dictionary. These metrics were previously only available to remote tracks on the “track” dictionary due to a bug.

  • silentConcealedSamples, insertedSamplesForDeceleration and removedSamplesForAcceleration are now available in JavaScript (a bug prevented them from being exposed in M76).

Deprecations


  • The type PlatformFile has been deleted, together with corresponding overloads of the C++ API methods PeerConnectionInterface::StartRtcEventLog (PlatformFile replaced with RtcEventLogOutput interface) PeerConnectionFactoryInterface::StartAecDump (PlatformFile replaced with plain FILE*)

  • As part of cleaning up non-standard attribute names, the RTCDataChannelInit.maxRetransmitTime dictionary member has been removed. The standard value RTCDataChannelInit.max


Platform

Issue

Description

Component

Native

10653

Remove cricket::WebRtcMediaEngineFactory::Create in favor of cricket::CreateMediaEngine

Cleanup,Video, Audio, Internals

Native

10612

Deprecate and remove cricket::SessionDescription::Copy

PeerConnection

Native

10284

Remove global TaskQueueFactory

Internals

Chrome

854385

Deprecate/remove RTCDataChannelInit.maxRetransmitTime

Blink>WebRTC>PeerConnection

Chrome

10744

Obsolete stats attribute RTCInboundRtpStreamStats.fractionLost has been deleted.

Stats

Native

6463

Consolidate file i/o wrappers in webrtc

Internals


Features and Bug Fixes


Type

Issue

Description

Component

Feature

10796

Set max video bitrate to value provided by encoder caps if it is not set by app

Video

Feature

10664

Add cap for video jitter buffer estimate

Video

Feature

10773

Do not reset video encoder on max/min bitrate change

Video

Feature

10717

Add experimental control for rtt_mult delay addition cap


Feature

10723

Add/rewrite video signal description in H264 VUI

Video

Feature

10078

Optimization for the use of RIDs as stream identifiers


Feature

10668

Add info about packets used to assemble each audio and video frame.


Feature

971895

Add summary markdown to presubmit

Infra>Client>Chrome,

Feature

10698

Add config to allow setting sample uncertainty in dependency of ALR flag.

BWE

Feature

10631

Audio{En,De}coderOpus: Add support for 16 kHz input/output sample rate

Audio

Feature

10614

Logging route changes in RTC event logs.

BWE

Feature

10559

Add/rewrite H.264 SPS VUI before packetization

Video

Feature

9155

Add support to inject the network congestion controller

BWE

Feature

3098

Implement PeerConnection.onicecandidateerror

PeerConnection

Feature

980881

RTCPeerConnection.restartIce()

Blink>WebRTC>PeerConnection

Bug

9553

Fix WebRtcSpl_Init to not misuse CRITICAL_SECTION

Audio, Internals

Bug

10758

DefaultTemporalLayers::NextFrameConfig() should request key frame as first frame

Video

Bug

3098

Implement PeerConnection.onicecandidateerror

PeerConnection

Bug

10693

packetization mode should be checked when selecting H264 as send video codec

PeerConnection

Bug

10704

modules_unittests can cause howling

Audio

Bug

9778

AudioDeviceTest flaky on Linux Tsan v2

Audio

Bug

736403

RTCStats: Local audio track defined by outgoingrtp has constant audioLevel 0

Blink>WebRTC

Bug

976690

1%-12.8% regression in webrtc_perf_tests at 28272:28275


Bug

10753

SSRC or the type is wrong in the getStats output - Chrome 76

Stats

Bug

10783

Add support for channel mixing between different channel layouts

Audio

Bug

978885

webrtc::CroppingWindowCapturerWin wrongly detects occlusion

Blink>GetUserMedia>Desktop, ,Internals>WebRTC,

Bug

10737

Allow Vp8FrameBufferController::UpdateConfiguration to reset set of overrides

Video

Bug

10460

Populate meta-information fields on VideoFrame from EncodedImage in one place

Video

Bug

979281

neteq_signal_fuzzer: Integer-overflow in webrtc::BufferLevelFilter::Update


Bug

10789

Using MediaTransport for data channels results in double event logs from congestion controller


Bug

982108

WebRTC mDNS feature breaks interop with Firefox if mDNS shows up in c-line

Blink>WebRTC

Bug

977457

packet_buffer_fuzzer: Sanitizer CHECK failure in "((IsAligned(reinterpret_cast<uptr>(p), page_size_))) != (0)" (0x0, 0x0)


Bug

10785

SDP parser accepts mismatched RID direction and simulcast direction


Bug

10702

Allow VideoEncoder to turn packet retransmission on/off

Video

Bug

972917

*/TaskQueueTest.PostALot/* is flaky

Blink>WebRTC

Bug

10798

Rename ResolutionBitrateThresholds to ResolutionBitrateLimits

Video

Bug

8486

cricket::GetSimulcastConfig(max_streams =2 , width = 1280, height = 720) does not generate an hd stream

Video

Bug

10776

Destroy existing encoder instance before creating another one

Video

Bug

974509

Abrt in webrtc::PeerConnection::GetOptionsForUnifiedPlanOffer


Bug

10720

Communicate capabilities such as LNTF to VideoEncoder

Video

Bug

10734

Capturing some windows doesn't work properly when they are occluded by another window

GetUserMedia

Bug

982260

Bug Summary Hidden - Restricted View

Blink>WebRTC>Audio

Bug

10790

Recv RID lines disappear from the local and remote descriptions


Bug

10401

CreateOffer runs out of header extension IDs when --enable-webrtc-srtp-encrypted-headers specified

PeerConnection

Bug

10719

Redundant multiplications in interval budget.


Bug

10336

Send Loss Notification RTCP messages

Video,Network>RTP

Bug

982486

WebRTC with VP9 Profile 2 HDR hardware decode shows bad visual artifacts in Chrome 76.0.3809.46 on Windows

Blink>WebRTC>Video, ,Blink>WebRTC

Bug

10545

RTCRtpContributingSource is specified to store information about the most recent packet DELIVERED to the RTCRtpReceiver's MediaStreamTrack but is implemented to track the most recent RECEIVED packet.

Video, Audio

Bug

978391

[webrtc] getStats()'s remote-inbound-rtp.ssrc shows the wrong SSRC

Blink>WebRTC>PeerConnection

Bug

976186

WebRtc browsertests fail with in-process network service

Blink>WebRTC

Bug

973086

content_unittests failing a log on fuchsia_x64 on the cq

Blink>WebRTC, Fuchsia

Bug

972917

*/TaskQueueTest.PostALot/* is flaky

Blink>WebRTC

Bug

968953

webrtc-internals: RTCIceCandidate is missing from the dump

Blink>WebRTC>Tools

Bug

968298

[WPT] New failures introduced in external/wpt/webrtc by import https://crrev.com/c/1635205

Blink>WebRTC>PeerConnection

Bug

968163

[WPT] New failures introduced in external/wpt/webrtc by import https://crrev.com/c/1635191

Blink>WebRTC

Bug

967799

Move AudioProcessing::Config logic to blink

Blink>WebRTC>Audio

Bug

909684

unified plan: ice connection state goes to disconnected when adding a new m-line

Blink>WebRTC>PeerConnection

Bug

908072

RTCStatsReport::Size() includes whitelisted objects

Blink>WebRTC>PeerConnection

Bug

901169

User is experiencing blurry Castouts mirroring sessions at 2560 x 1440 resolution.

Blink>WebRTC>Video, Internals>Cast>Streaming

Bug

860853

Calling removeTrack twice shouldn't throw an InvalidAccessError

Blink>WebRTC>PeerConnection

Bug

859448

Implement RTCRemoteInboundRtpStreamStats

Blink>WebRTC>PeerConnection

Bug

853125

Add support for experimental stats in getStats() behind Origin Trials

Blink>WebRTC>PeerConnection

Bug

844386

Implement RTCRtpSender.setStreams()

Blink>WebRTC>PeerConnection

Bug

777619

Add wpt/webrtc/ MediaStreamTrack.onunmute test coverage

Blink>WebRTC>PeerConnection

Bug

736403

RTCStats: Local audio track defined by outgoingrtp has constant audioLevel 0

Blink>WebRTC

Bug

720543

offerToReceiveAudio/offerToReceiveVideo not working for createAnswer

Blink>WebRTC>PeerConnection

Bug

701330

Complete RTCRtpReceiver in JavaScript

Blink>WebRTC>PeerConnection

Bug

452623

WebRtcSimulcastBrowserTest.TestVgaReturnsTwoSimulcastStreams browser_tests fails on Windows and Chrome OS

Blink>WebRTC>Video

Bug

981826

Regression : Tab sharing indicator is seen in tab-strip even when sharing is stopped.

Blink>GetUserMedia>Desktop, Blink>Media

Bug

978278

CameraDeviceDelegateTest.StopBeforeOpened is flaky

Blink>GetUserMedia>Webcam

Bug

970181

Change share button text on tab sharing infobar

Blink>GetUserMedia>Desktop

Bug

970180

Add icon on tab sharing infobar

Blink>GetUserMedia>Desktop

Bug

970176

Change tab sharing infobar button focus

Blink>GetUserMedia>Desktop

Bug

970153

getUserMedia may return audio stream from previously disconnected device

Blink>GetUserMedia

Bug

964332

MediaPicker: don't use TabbedPane when there's only one tab

Blink>GetUserMedia>Desktop

Bug

10514

Delete old iOS audio device from modules/audio

Audio

Bug

10485

RTCP target bitrate messages are not sent correctly for VP9 screenshare


Bug

10460

Populate meta-information fields on VideoFrame from EncodedImage in one place

Video

Bug

10401

CreateOffer runs out of header extension IDs when --enable-webrtc-srtp-encrypted-headers specified

PeerConnection

Bug

10303

h264 decoder loses nearly all time information

Video

Bug

9176

QualityScaler initial rampup does not work.

Video

Bug

8486

cricket::GetSimulcastConfig(max_streams =2 , width = 1280, height = 720) does not generate an hd stream

Video

Bug

10868

Adding remote candidates are not correctly reported for non-trickled sessions

PeerConnection


Reply all
Reply to author
Forward
0 new messages