M61
WebRTC M61 branch (cut at r19063)
WebRTC M61, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains over 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.
In order to continue to use getUserMedia from cross-origin iframes, the parent document will need to explicitly allow camera and/or microphone access to the iframe using a Feature Policy, e.g.,:
<iframe src="https://example.com" allow="microphone camera"></iframe>
A console deprecation warning is included in Chrome M61 which will notify developers when attempts are made to use these features from cross-origin iframes. More details on the change can be found here.
As part of a longer term effort all header files will be removed from the webrtc/ root folder. This release moves call.h into webrtc/call/ making it clearer that clients should not depend on it if they wish to maintain compatibility,
Chrome M61 includes support for spec-compliant processing of audio constraints in getUserMedia. This means that the ideal keyword and naked values are properly supported and advanced constraint sets are applied atomically, that is, all constraints in a particular advanced set are applied if possible, otherwise the whole advanced set is ignored.
On Windows, Mac OS, and Linux, interactions with video capture devices such as webcams are now offloaded to a utility process. This effort is part of our activities to deliver enterprise-grade reliability in Chrome. If an issue with a capture device driver causes an unrecoverable error, only the video stream is now stopped instead of in the worst-case causing the whole Browser to terminate. For more details, see this design doc.
Using an <audio> tag to render media streams that also have video tracks, will no longer result in audio having to wait for video. This is a behavioural change for <audio> elements while <video> behaviour remains unchanged.
Type | Issue | Description | Component |
Feature | Mojo based video capture | Video | |
Feature | Move aecdump file IO from real-time audio thread to low-prio task queue | Audio | |
Feature | Allow an externally created audio processing module to be used inside WebRTC | Audio | |
Feature | chooseDesktopMedia: customize the order of the picker tabs. | Blink>GetUserMedia>Desktop | |
Feature | captureStream() from <video> and <audio> element | Blink>MediaStream>CaptureFromElement | |
Feature | Reduce runtime memory consumption of RtcEventLog | Internals | |
Feature | Upgrade to libsrtp 2.1.0. Fixes some issues related to GCM ciphers, which are only used if enabled via a command line flag (“enable-webrtc-srtp-aes-gcm") in chromium. | Network | |
Feature | API for automatically regathering ICE candidates periodically | Network>ICE | |
Feature | Implement RTCMediaStreamTrackStats totalAudioEnergy and totalSamplesDuration members | PeerConnection | |
Feature | Add "copy all" button in chrome://media-internals | Blink>WebRTC>Audio, Internals>Media | |
Feature | Add RSID-based demuxing to RtpDemuxer | Network | |
Feature | Use 2 threads for 360P video | Video | |
Bug | Echo canceller 3 sometimes leaks echo on low level speech onsets | Audio | |
Bug | Muting send audio may cause loud distortion | Blink>WebRTC>Audio | |
Bug | Handle zero timestamp in RTCVideoEncoder timestamp matching | Blink>WebRTC>Video | |
Bug | webrtc player stops displaying video or wont start stream | Blink>WebRTC>Video | |
Bug | Call from chrome 58 to ios Spark client leads to no Media | Blink>WebRTC>Video | |
Bug | New unsignaled video stream overwrites old previously unsignaled video stream | Network, Video | |
Bug | Potential decoder corruptions with VP8 screenshare mode temporal layers | Video | |
Bug | PacketBuffer::DiscardOldPackets() in NetEq wrongly implemented | Audio | |
Bug | The echo canceller 3 is too restrictive in the API call jitter it allows | Audio | |
Bug | The adaptive filter in the echo canceller 3 is adapting too fastly | Audio | |
Bug | The echo canceller 3 needs to adaptively adjust the echo suppression when the linear model poorly models the room | Audio | |
Bug | The echo canceller 3 sometimes applies echo suppression to residual echoes which would not be audible | Audio | |
Bug | The echo canceller 3 leaks echoes when there are strong narrowband components in the render signal | Audio | |
Bug | The echo canceller 3 sometimes leaks echoes initially in the calls before the conversation has started | Audio | |
Bug | The echo canceller 3 detection of analog AGC level changes does not work on platforms with no mic gain | Audio | |
Bug | Cascaded echo cancellers | Audio | |
Bug | AEC3 improvements | Audio | |
Bug | RTCP timestamp unwrapping should be handled more gracefully | Audio | |
Bug | OSX: cursor error when starting window capture on a external monitor | Blink>GetUserMedia>Desktop | |
Bug | nominated flag not set on candidate-pair | Blink>WebRTC>Network | |
Bug | RtcEventLogParser not backwards compatible with old logs | BWE | |
Bug | Immediate overuse if probing finds the true link capacity | BWE | |
Bug | Delay based BWE not reacting to overuse before acknowledged bitrate has been measured | BWE | |
Bug | Reported sent bitrate calculated with a slight error. | BWE | |
Bug | Chrome sometimes suddenly stops sending | DesktopCapture | |
Bug | ScreenCapturerWinDirectx::IsSupported() cannot work in session 0 | DesktopCapture | |
Bug | MessageQueueManager does not support re-entrant calls | Internals | |
Bug | Limit the number of concurrent WebRTC event logs | Internals | |
Bug | Can't unset ignore_non_default_routes | Network | |
Bug | ICE doesn't work in environments where network interfaces can be enumerated, but not bound to. | Network>ICE | |
Bug | Empty RTCP XR TargetBitrate should be parseable, but we shouldn't send them. | Network>RTP | |
Bug | Pacer exit timestamps in timing frames breaks FEC | Network>RTP, Video | |
Bug | Valid SCTP SDP "proto" strings "UDP/DTLS/SCTP" and "TCP/DTLS/SCTP" are rejected. | PeerConnection | |
Bug | simulcast: no video is sent in Chrome M57 when base resolution is 720x405 | Video | |
Bug | Periodically update encoder with current frame and bit rate | Video | |
Bug | screen capturing color mismatch/blurring and unexpected screen/application exposure | Blink>GetUserMedia>Desktop | |
Bug | <audio> elements now start rendering audio without waiting for potential video data. Video frames might never arrive. |
Blink>Media>Audio Blink>WebRTC | |
Bug | The code to handle downstream dependencies when using an external audio processing module needs to be removed | Audio |
Type | Issue | Description | Component |
Feature | Add observer for AVAudioSession outputVolume | Audio (iOS) | |
Feature | QP parser for VP9 bitstream | HardwareCodec, Video (Android) | |
Feature | Add RTCFileVideoCapturer to WebRTC ios framework | Mobile (iOS, Mac) | |
Feature | Enable VP9 denoiser for standalone WebRTC | Video | |
Bug | SSL connection to TURN server broken when underlying socket becomes blocked (only affects native apps) | Network | |
Bug | iOS: "AVFoundation" framework import missing in RTCCameraVideoCapturer | Build, Mobile (iOS) | |
Bug | AppRTCMobile(macOS) does not display video on non-Metal enabled devices | Mobile | |
Bug | Bugfix:setting capture framerate always defaults to 30fps. | Mobile (iOS) | |
Bug | RTCNSGLVideoView should not reshape without current context | Mobile (iOS) |