WebRTC M70 Release Notes
WebRTC M70 branch (cut at r24472)
WebRTC M70, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains over 15 new features and over 55 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.
Android SDK doesn’t include video codecs by default anymore. If no video codecs are passed to createPeerConnectionFactory, no video codecs will be included. The purpose is to save binary size for clients that don't need video (e.g. audio or data only). This doesn’t affect clients that are already using injectable codecs. Original PSA here.
getDisplayMedia is an extension to the Media Capture API, allowing users to capture a user's display, or part thereof, in the form of a video stream. Different than the current capabilities, it doesn’t require any extensions usage. The initial working implementation is now available. Please try out and give feedback. To enable it, you can start Chrome with flag --enable-experimental-web-platform-features or turn it on via chrome://flags/. See bug tracker for details.
getConfiguration() returns the last configuration applied via setConfiguration(), or if setConfiguration() hasn't been called, the configuration the RTCPeerConnection was constructed with. The configuration also has a setting to detect if the RTCPeerConnection defaults to PlanB or Unified Plan which is useful during the transition period. For more details see the Chrome’s feature page.
MediaStreamTrack.prototype.contentHint is a property rThe ContentHint interface to tell Chrome about whether you attach more importance to showing motion or detail in your WebRTC video track, as specified in the W3C specification. See the original PSA for more details.
Issue | Description | Component |
Deprecate MetricsObserverInterface and use metrics.h macros instead | PeerConnection | |
Delete deprecated MediaConstraints API | PeerConnection |
Type | Issue | Description | Component |
Feature | Avoid the adaptation of the decay in the reverberation model for bad performing filters in AEC3 | Audio | |
Feature | AEC3: State-specific echo suppressor behavior | Audio | |
Feature | Make WebRTC work with network service | Blink>WebRTC | |
Feature | Render-side pre-processing in APM | Audio | |
Feature | The decay parameter estimator in AEC3 can be improved and optimized. | Audio | |
Feature | Enable the default route when the explicit network binding is not allowed. | Network>ICE | |
Feature | Allow creating simulcast offer/answer with Plan B semantics | PeerConnection, Video | |
Feature | Preserve color space information for internal codecs | Video | |
Feature | Add rtt_mult video error resilience experiment | Video | |
Feature | Cleanup VideoStreamEncoder api | Video | |
Feature | Update multiplex encoder to support having augmenting data attached to the video | Video | |
Feature | Add a method to inform media tracks about their type of content | Blink>MediaStream | |
Feature | Replace rtc::{Make,Wrap}Unique with their Abseil counterparts | Internals | |
Feature | Implement and evaluate PCC | BWE | |
Feature | Add frame rate field to webrtc::SpatialLayer struct. | Video | |
Bug | AEC3: Very poor transparency during repeated audio buffer issues | Audio | |
Bug | Render preprocessor integration impacting the residual echo detector | Audio | |
Bug | AEC3: The filter output is not correctly computed when the AGC gain changes are compensated | Audio | |
Bug | AEC3: The shadow filter is slow to re-adapt which significantly limits the adaptive filter performance | Audio | |
Bug | AEC3 transparency during call start and after echo path changes is non as good as it can be | Audio | |
Bug | For devices with render playout effects AEC3 sometimes leaks echoes | Audio | |
Bug | AEC3: Temporary mismatch between main and adaptive filter lengths cause DCHECK failure | Audio | |
Bug | AEC3: Transparency loss when the main filter is inaccurate | Audio | |
Bug | AEC3: The ability to adjust the AEC3 performance is limited by the filter lengths | Audio | |
Bug | AEC3: Low level echo leakage for platforms with strong echo path gain above 10 kHz | Audio | |
Bug | Migrate WebRtcEventLogUploaderImpl to SimpleURLLoader | Blink>WebRTC | |
Bug | Spammy log from MediaStreamAudioProcessor. | Blink>WebRTC>Audio | |
Bug | Avoid the adaptation of the decay in the reverberation model for bad performing filters in AEC3 | Blink>WebRTC>Audio | |
Bug | AEC3: The filter output is not correctly computed when the AGC gain changes are compensated | Blink>WebRTC>Audio | |
Bug | AEC3: The shadow filter is slow to re-adapt which significantly limits the adaptive filter performance | Blink>WebRTC>Audio | |
Bug | AEC3 transparency during call start and after echo path changes is non as good as it can be | Blink>WebRTC>Audio | |
Bug | For devices with render playout effects AEC3 sometimes leaks echoes | Blink>WebRTC>Audio | |
Bug | AEC3: Temporary mismatch between main and adaptive filter lengths cause DCHECK failure | Blink>WebRTC>Audio | |
Bug | AEC3: Transparency loss when the main filter is inaccurate | Blink>WebRTC>Audio | |
Bug | AEC3: The ability to adjust the AEC3 performance is limited by the filter lengths | Blink>WebRTC>Audio | |
Bug | AEC3: The ability to adjust the AEC3 performance is limited by the filter lengths | Blink>WebRTC>Audio | |
Bug | Merge to M69: WebRTC: Enable simulcast screenshare by default | Blink>WebRTC>Video | |
Bug | Packets sometimes dropped in UDP socket buffers at very high packet rates | Network | |
Bug | SimulcastEncoderAdapter should not update max qp for screencast. | Video | |
Bug | Avoid the decrease of the ERLE estimation during render pauses. | Audio | |
Bug | Transparency negatively affected by ERLE uncertainty | Audio | |
Bug | AEC3: No special action is taken when the microphone gain is changed. | Audio | |
Bug | AEC3: AEC3 does not handle platforms where there reporting of the render signal to the AEC is delayed | Audio | |
Bug | [Video Capture,Windows] Some capture devices not working with MediaFoundation | Blink>GetUserMedia>Webcam | |
Bug | WebRTC getUserMedia stream freezes if browser is slept/backgrounded | Blink>GetUserMedia>Webcam | |
Bug | MediaStreamTrack gets borked after too many start-stop recordings | Blink>MediaStream | |
Bug | AEC3: No special action is taken when the microphone gain is changed | Blink>WebRTC>Audio | |
Bug | Mojofy content/renderer/p2p/ | Blink>WebRTC>Network | |
Bug | Newly constructed RTCPeerConnection object has non-null localDescription and remoteDescription properties | Blink>WebRTC>PeerConnection | |
Bug | chrome://webrtc-internals tracking RTCRtpTransceiver | Blink>WebRTC>PeerConnection | |
Bug | RTCPeerConnection.getConfiguration | Blink>WebRTC>PeerConnection | |
Bug | stun/turns server missing from chrome://webrtc-internals | Blink>WebRTC>Tools | |
Bug | Transfer WebRTC color space information to chromium color space | Blink>WebRTC>Video | |
Bug | Refactor WebRtcVideoCapturerAdapter | Blink>WebRTC>Video | |
Bug | 173.6% regression in webrtc_perf_tests at 24254:24254 | Blink>WebRTC>Video | |
Bug | BufferTest.TestConstructEmpty fails on UBSan with new clang | Build | |
Bug | Ignoring EOR flag when receiving data from usrsctp,resulting in loss of message integrity for messages between 65KB and 256KB | DataChannel | |
Bug | 3.3%-8.8% regression in webrtc_perf_tests at 23973:23973 | Internals>WebRTC | |
Bug | ICE candidates doesn't support domain name | Network | |
Bug | Add TLS Custom Certificate Verifier To Reconfigure Port | Network>DTLS | |
Bug | SafeSetError() in peerconnection.cc contains use-after-move of webrtc::RTCError variable | PeerConnection | |
Bug | RTC_DCHECK for valid "mid" is too strict in "RtpDemuxer::AddSink" | PeerConnection, SpecConformance | |
Bug | Incorrect encode usage percent stats using new cpu adaptation,with undesired downscaling as result | Video | |
Bug | RTP ref frame finder doesn't handle VP9 flexible mode properly. | Video | |
Bug | Duplicates in VP9 RTP p_diff list | Video | |
Bug | No scalability structure in flexible mode | Video | |
Bug | Video played in Windows Media Player is not captured for presentation | Blink>GetUserMedia>Desktop | |
Bug | CrOS puts the active window at the bottom in the Windows tab of the picker | Blink>GetUserMedia>Desktop | |
Bug | Error logs from v4l2_capture_delegate.cc when using webcam | Blink>GetUserMedia>Webcam | |
Bug | Keyframes may be dropped by vp8 encoder | Video |