PSA: WebRTC M74 Release Notes

5,861 views
Skip to first unread message

chakr...@webrtc.org

unread,
Mar 27, 2019, 10:16:51 AM3/27/19
to discuss-webrtc

WebRTC M74 Release Notes


WebRTC M74 branch (cut at r26981)

Summary


WebRTC M74, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains feature additions like RID/MID based Simulcast, multiple 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

We made the RTCPeerConnections iceConnectionState (mostly) spec-compliant. The main change is that the state is now entirely computed from the state of the ICE transports, instead of including signals from the DTLS layer. That is, we report “connected” as soon as ICE is connected instead of waiting for the DTLS handshake which we used to do.

All default IDs for RTP extensions are removed from the header file. One-byte RTP extensions may only have IDs in the range 1-14. For higher IDs, the two-byte format must be used. If default IDs are set for all extensions, once 15 extensions are defined by the code, some extensions will have IDs greater than 14. This will happen even if only one extension actually ends up being offered, so long as it's that unfortunate RTP extension. It's better to dynamically assign IDs to those extensions we actually offer

The new echo canceller solution AEC3 has now replaced the legacy AEC (AEC2) in the audio

processing module as the desktop AEC in WebRTC

We've restricted the host candidate obfuscation to peer connections for which the user has not provided

getUserMedia permission. The intent is to expand the experiment also to include Chrome Beta and

Developer editions over the next few days. As mentioned before, this feature and experiment only affects

Chrome on Windows, MacOS and Linux


Features

  • RID/MID based Simulcast

PSA: Spec-compliant simulcast using addTransciever API

Simulcast allows sending multiple encoded versions of the same source.

Spec-compliant simulcast uses MID and RID extension headers to identify the layers and does not signal

SSRCs. This is a new API surface to replace the SDP-munging scenario. No action is needed,

SDP-munging applications will not break. Users are encouraged to migrate to the new API


  • Implemented RtpEncodingParameters.scale_resolution_down_by

The encoding parameter scaleResolutionDownBy to dynamically change the size of your layers has been

Implemented. It is supported in simulcast mode too and can be paired with the spec-compliant simulcast

using addTransceiver API to resize each layer as needed


  • RTCIceCandidate

Improved spec compliance of RTCIceCandidate. Now all the information about a candidate is available in

separate fields and the constructor works as specified by the standard


Deprecations

  • The new echo canceller solution AEC3 has now replaced the legacy AEC (AEC2) in the audio processing module as the desktop AEC in WebRTC.  The work for this was tracked in issue 10366.


Features and Bug Fixes


Type

Issue

Description

Component

Feature

10076

Rid support and wiring (for Simulcast use)


Feature

10256

Always rewrite/add VUI and set max_num_reorder_frames=0

Video

Feature

10069

Implement RtpEncodingParameters.scale_resolution_down_by

PeerConnection

Feature

10178

Handle reordered packets in NetEq

Audio

Feature

10070

Probe controller should cap all probes at max allocated bitrate

BWE

Feature

10074

RtpStreamId (rid) headers in mux/demux

PeerConnection

Bug

8396

Remove dependencies on audio codec implementations

Audio

Bug

10281

VP8 at one temporal layer unnecessarily predicts from very old frames

Video

Bug

10288

The IDs of RTP extensions should not be hard-coded

Network>RTP

Bug

10275

Toggling of retransmissions can lead to spurious mid-call probes

Video

Bug

10271

Video simulcast hysteresis not accounted for in padding calculation

Video

Bug

9703

Desktop capture frame can have corrupted data when using multiple screens

DesktopCapture

Bug

10290

RttBackoff misfires if TWCC-stamped sending ceases.


Bug

10296

setRemoteDescription called twice throws an error if SDP don't have media sections with mid attributes

PeerConnection

Bug

10363

Jitter buffer delay statistic reporting incorrect value

Audio

Bug

10204

RTC_CHECK failure in VideoStreamEncoder


Bug

10181

Restore the ability to test two peerconnection_clients on one machine

PeerConnection

Bug

935089

Timeout in neteq_signal_fuzzer

Blink>WebRTC>Audio

Bug

850907

close() may get stuck because of pending getStats() requests

Blink>GetUserMedia>Webcam

Bug

683094

RTCIceCandidate: Add missing attributes

Blink>WebRTC

Bug

838062

WebRTC doesn't share Office documents correctly

Blink>GetUserMedia>Desktop

Bug

10226

Create Loss Notification RTCP feedback message

Network>RTP

Bug

10339

RtpParameters are invalidated in calls to SLD/SRD

PeerConnection

Bug

6353

Obsolete cricket::VideoCapturer

Video

Bug

10332

Incorrect spectral features computations in the RNN VAD

Audio

Bug

10239

Reported network queue is growing when packet loss is simulated

Network

Bug

930339

mDNS obfuscation of host candidates should be turned off with getUserMedia permission

Blink>WebRTC>Network

Bug

10265

SimulatedNetwork does not reflect bandwidth changes correctly.

BWE

Bug

933786

iceConnectionState doesn't go to failed if connection does not establish

Blink>WebRTC>Network

Bug

933802

RTCPeerConnection calls onIceConnectionStateChanged(Connected) even if no connection is possible

Blink>WebRTC>Network

Bug

9289

NetEq produces audio that sounds like a repeating pattern in certain circumstances

Video

Bug

10251

No distinction between simulcast layer paused and disabled

PeerConnection

Bug

927309

mdns may generate invalid c= line

Blink>WebRTC>Network

Bug

10302

Incorrect FPS measured when frame dropper kicks in

Video

Bug

925334

Mic audio is silent without error on macOS 10.14 (Mojave) if system permission is denied


Blink>GetUserMedia>Mic

Blink>WebRTC>Audio

Bug

885184

Issue in the camera and microphone permissions flow with Mac Mojave OSX

Blink>GetUserMedia


Brian Baldino

unread,
Mar 27, 2019, 1:02:47 PM3/27/19
to discuss...@googlegroups.com
Did the DTLS 1.0/1.1 deprecation make it in? Will M74 only support DTLS 1.2?  I don't see https://bugs.chromium.org/p/webrtc/issues/detail?id=10261 mentioned in the release notes.

-brian

--

---
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/576b4ba5-a082-4fdf-ab35-f24824178bc4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Lorenzo Miniero

unread,
Mar 27, 2019, 1:32:24 PM3/27/19
to discuss-webrtc
Il giorno mercoledì 27 marzo 2019 18:02:47 UTC+1, Brian Baldino ha scritto:
Did the DTLS 1.0/1.1 deprecation make it in? Will M74 only support DTLS 1.2?  I don't see https://bugs.chromium.org/p/webrtc/issues/detail?id=10261 mentioned in the release notes.



It did, or at least it's definitely in my Chrome 74.

Lorenzo

Benjamin Wright

unread,
Mar 27, 2019, 3:32:50 PM3/27/19
to discuss...@googlegroups.com
Yes the deprecation is in M74. The release notes should be amended to mention this. Specifically: https://bugs.chromium.org/p/webrtc/issues/detail?id=10261 made it in. 

Philipp Hancke

unread,
Mar 27, 2019, 6:36:19 PM3/27/19
to discuss...@googlegroups.com, Guido Urdaneta
it might be worth noting that getUserMedia + friends are now [SecureContext], i.e. essentially only available on https?
Guido: any idea why that doesn't show up?

Reply all
Reply to author
Forward
0 new messages