PSA: WebRTC M72 Release Notes

4,025 views
Skip to first unread message

Niklas Blum

unread,
Dec 21, 2018, 2:33:35 PM12/21/18
to discuss-webrtc

WebRTC M72 Release Notes


WebRTC M72 branch (cut at r25798)


Summary


WebRTC M72, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains the three milestones features: Unified Plan SDP, support for getDisplayMedia and improved privacy protection using mDNS (still behind flag), in addition to the numerous enhancements of the getUserMedia and RTCPeerConnection API’s. 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.



Features


Unified Plan enabled by default (Stable Rollout)

Unified Plan is the spec-complaint SDP format, it is being rolled out together with the RTCRtpTransceiver APIs that are heavily tied to the standard format. This is a big milestone for cross-browser compatibility, but also a breaking change for applications with “Plan B” assumptions - see PSA and the “Unified Plan” Transition Guide (JavaScript). Experiments making Unified Plan the default in Canary, Dev and Beta channels are ongoing and the plan is to roll this out to 100% in M72 Stable.


getDisplayMedia() enabled by default

Screen Capture API is now available for WebRTC in Chrome. It is possible to request access for acquiring user’s display as a video track without going through extensions based APIs. Current implementation produces the same UI and permissions flow as the extensions for an easy migration. Users are asked for permission in each request as their answer does not persist. Note that extensions-based screen capture APIs are still available and getDisplayMedia() does not have audio-capture support yet.


resizeMode constrainable property

The resizeMode constrainable property allows control of the resolution-adjustment mechanism for video tracks. If the property is false, getUserMedia() will use only native resolutions without adjustment for the video tracks it returns. If the property is true, cropping and downscaling may be used to satisfy other resolution constraints such as width, height and aspectRatio.


Private IP Concealment via mDNS

In line with this IETF spec IP host addresses are replaced with generic multicast DNS names for local ICE candidates. This improvement limits the amount of unique information exposed by browsers, while maintaining the ability to establish P2P connection within local networks. This feature is only available behind a flag and can be tested by setting chrome://flags/#enable-webrtc-hide-local-ips-with-mdns.


Deprecations


Deprecating webrtc::HighPassFilter and aecm_generate_comfort_noise option

The mobile aec (AECM) will not produce comfort noise any more, and the high pass filter in the audio processing module has changed interface for toggling on/off. See PSA for details.



Platform

Issue

Description

Component

Chrome

8572

Remove the old AudioProcessing statistics interface

Audio

Chrome

8995

Delete RTPPayloadRegistry

Network>RTP

Chrome

7882

Remove audio call duration UMA metric WebRTC.Call.TimeSendingAudioRtpPacketsInSeconds

Audio, Stats


Features and Bugfixes



Type

Issue

Description

Component

Feature

9898

Potential high render delays with bursty video.

Video

Feature

10014

AEC3: Clockdrift detection

Audio

Feature

6458

Use codec rate when generating RTCP for audio

Audio

Feature

9866

Expose parameters for configuring packet loss rate set in Opus encoder

Audio

Feature

9904

fake_network_pipe counts only buffer overflows as loss.

BWE

Feature

9796

Add unacknowledged but allocated traffic to bandwidth estimate.

BWE

Feature

10068

Adaptive loss-backoff thresholds

BWE

Feature

9681

Integrate Per Frame Encryption Interface Into WebRTC

Network

Feature

9923

It should be possible to enable the CongestionWindowPushbackController without a field trial

Network

Feature

9168

Support VPN adapter type in WebRTC

Network>ICE

Feature

8789

Make RTCP interval configurable.

Network>RTP

Feature

9989

Add RTCRtpReceiver::getParameters() RTCP and simulcast support

PeerConnection

Feature

9795

Enable Video Encryption Using the FrameEncryptorInterface

Video

Feature

9969

Enable target bitrate RTCP XR message from field trial

Video

Feature

9376

Add VP9 Profile 2 to supported codecs

Video

Feature

9950

Don't buffer encoded frames if full superframe drop mode is enabled

Video

Feature

9768

Set frame duration per spatial layer

Video

Feature

9953

Send Nack with a delay after packets out of order is detected on packet receive

Video

Feature

8762

Make WavReader tolerant towards optional Wave chunks

Audio

Feature

7990

Add support for RTP two-byte header extensions

Network>RTP

Feature

10053

Add PeerConnection option to configure minimum audio jitter buffer delay

Audio

Feature

10043

Expose metric for delayed packet outage in getStats

Audio

Feature

854980

Add support for the resizeMode MediaStreamTrack constraint

Blink>GetUserMedia

Bug

9967

AEC3: Comfort noise is too low

Audio

Bug

9906

Usage of the dominant nearend functionality during the initial phase may cause echo

Audio

Bug

9879

The adaptive filter in AEC3 looses all information at echo path delay changes

Audio

Bug

9998

The custom suppressor behavior in AEC3 during stationary render noise causes echo leakage

Audio

Bug

895435

During call startup, AEC3 transparency is lower than later in the call

Blink>Media>Audio

Bug

895082

Timeout in neteq_signal_fuzzer

Blink>WebRTC>Audio

Bug

895431

The AEC3 echo suppressor is to conservative during saturated echo

Blink>WebRTC>Audio

Bug

896334

AEC3: Faster delay detection is needed

Blink>WebRTC>Audio

Bug

905291

The custom suppressor behavior in AEC3 during stationary render noise causes echo leakage

Blink>WebRTC>Audio

Bug

900951

Better metrics for Unified Plan breakages

Blink>WebRTC>PeerConnection

Bug

906029

Add metrics to find out how far PCs come in negotiation before failing

Blink>WebRTC>PeerConnection

Bug

906988

RtcStats doesn't report remote data properly with unified plan

Blink>WebRTC>Network

Bug

9807

Make ice credentials same for createOffer/createAnswer and pooled port allocator session.

Network>ICE

Bug

9964

Race condition between mDNS name registration and cricket::Port::SignalPortComplete

Network>ICE

Bug

9861

Hide IP addresses obfuscated by .local names in stats

Network>ICE

Bug

9868

Specify single packet max size explicitly when splitting frame into packets

Network>RTP

Bug

9880

Support "a=ssrc:... msid:..." line with no stream ID

PeerConnection

Bug

9907

Fix FrameEncryptor being deallocated too early.

Audio

Bug

9865

AEC3: Avoid fading when render signal is stationary at call init.

Audio

Bug

9961

AEC3: Filter performance mismatch between direct path and reverberant paths.

Audio

Bug

9726

AEC3: Delay estimator delays the capture signal

Audio

Bug

9897

AEC3: Dominant nearend detection can be further utilized for transparency

Audio

Bug

9912

The parsing and output of the AEC3 parameter for using dominant nearend is missing

Audio

Bug

9921

Parsing of json file specifying the APM behavior fails silently

Audio

Bug

9894

Some elements of the AEC3 config struct are not parsed by the json parser

Audio

Bug

9843

The AEC3 echo reverb modelling is tailored to unreasonable large rooms

Audio

Bug

9835

During call startup, AEC3 transparency is lower than later in the call

Audio

Bug

9929

Clear locks from AEC2 and AECM audio processing submodules

Audio

Bug

10010

Data Race in channel_send.cc

Audio

Bug

9885

RTP header extensions not logged in RTC event log.

Audio, Tools

Bug

901711

virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/simplecall-no-ssrcs.https.html failing on chromium.mac/Mac10.13 Tests (dbg)

Blink>WebRTC

Bug

894439

AEC3: Avoid ducking when render signal is stationary at call startup

Blink>WebRTC>Audio

Bug

9942

sqrt of negative number in aimd_rate_control.cc

BWE

Bug

7510

VideoSendStreamImpl::OnBitrateUpdated seems wrong when sent a bitrate of 0

BWE, Video

Bug

9917

Utility to create hkdf

Network

Bug

9926

RtpSender And RtpReceiver should not set a FrameEncryptor/FrameDecryptor in a stopped state.

Network

Bug

9891

Move CryptoOptions to RTCConfiguration

Network

Bug

9970

GetRtpReceiver/SenderCapabilities() return multiple RTX codec entries

PeerConnection

Bug

9935

peerconnection_client|server doesn't support field trials.

SampleApps

Bug

9123

Can not see "Local Preview" window in video_loopback. Pressing Enter does nothing on Windows.

SampleApps, Video

Bug

9597

Add support for RtpEncodingParameters max_framerate.

Video

Bug

9873

AEC3: ERLE might not be updated during reverberation

Audio

Bug

9932

Prevent SetChannel On Stopped Receiver

PeerConnection

Bug

10067

FlexFEC causes retransmit bitrate increase.

Video

Bug

866390

Echo cancellation cannot be disabled on Android

Blink>GetUserMedia>Mic, Blink>WebRTC>Audio



Philipp Hancke

unread,
Dec 21, 2018, 4:22:47 PM12/21/18
to discuss...@googlegroups.com
I find it rather interesting that despite the suggested restrictions or tabsharing  in the specification that is now included by default and with virtually no changes to the picker (other than the default being "abort")

Can you explain the security rationale?

--

---
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/e685bb87-62df-4a71-8beb-9c652dcd7795%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Tommi

unread,
Jan 6, 2019, 8:33:46 AM1/6/19
to discuss...@googlegroups.com
Can you clarify what exact bug/feature you're referring to? We can look for the specific conversations related to that and give an update (assuming the information is missing from the bug or not viewable for some reason).

Philipp Hancke

unread,
Jan 8, 2019, 5:06:56 AM1/8/19
to discuss...@googlegroups.com
tab sharing, the third option in the window picker. The spec is pretty clear on doing a bit more effort for those:

(I don't think getDisplayMedia current supports the nice feature of chooseDesktopMedia(["tab], ...) to only show tabs either)

Reply all
Reply to author
Forward
0 new messages