WebRTC M73 Release Notes
WebRTC M73 branch (cut at r26368)
WebRTC M73, currently available in Chrome's beta channel and as native libraries for Android and iOS, contains 3 new features, improved Web Standards support and many 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.
With this feature, host IPs will no longer directly be exposed by the RTCPeerConnection API, increasing privacy. Host candidates will only indirectly be exposed through a randomly generated mDNS hostname. Purpose and mechanisms used are described in this spec: https://tools.ietf.org/html/draft-ietf-rtcweb-mdns-ice-candidates-02
This feature is controlled by the feature flag -enable-webrtc-hide-local-ips-with-mdns. This feature is experimentally turned on for some users of Chrome Canary and available on the desktop versions of Chrome on Windows, MacOS and Linux. The expected effects on connectivity between two WebRTC agents are:
WebRTC agents using this feature, running in the same private network, may no longer be able to communicate directly if they are not in the same mDNS broadcast domain.
A WebRTC agent using this feature will still be able to communicate with other agents on the same private network when the other agent does not have this feature (implemented or enabled). In this case, the other agent would classify the obfuscated host candidates as peer-reflexive candidates.
Connectivity using server-reflexive or relay candidates will be unaffected.
Server implementers who do not handle mDNS candidates should make sure they have STUN or TURN servers configured in order to have candidates available.
Please file a bug if you see that application code is affected.
Media capture and streams
Implemented MediaStreamTrack.getSettings() for remote video tracks, including width, height, aspect ratio and frame rate (issue).
Implemented MediaStreamTrack.applyConstraints() for remote video tracks (issue).
Implemented support for getUserMedia() device constraints, namely channelCount, latency, sampleRate, sampleSize (issue).
MediaStreamTrack.getCapabilities() support for sampleSize (issue).
RTCPeerConnection
Shipped RTCRtpReceiver.getSynchronizationSources() (chromestatus), including audioLevel (issue).
RTCPeerConnection.iceConnectionState is now spec-compliant (issue).
When sharing a tab through the desktopCapture API the user now has the option to change tab without stopping and starting the sharing sessions. The notification bar that earlier only could stop the sharing sessions now has a new option “Change Source”. This feature only works for tab sharing and switching to another tab. It is expected to become available for getDisplayMedia at a later point.
VP9 Profile 2 enables encoding and decoding of videos with 10-bit color depth. These extra color bits enable representing pixels in a wider range and increase color quality. VP9 Profile 2 is now added as a supported internal codec in WebRTC. In SDP, it can be indicated and negotiated with a “profile-id=2” field. In order to transport content with 10-bit depth, take a look at webrtc::I010BufferInterface interface.
Platform | Issue | Description | Component |
Bug | Remove VoiceEngine types from webrtc/common_types.h | Audio |
Type | Issue | Description | Component |
Feature | Let decoder know spatial index of top spatial layer frame | Video | |
Feature | Make pacing buffer send interval configurable. | ||
Feature | Minor tweaks to VAD | Audio | |
Feature | IP handling with mDNS | Network>ICE, PeerConnection | |
Feature | Add VP9 Profile 2 to supported codecs | Video | |
Feature | VP9 SVC: de/activate spatial layer | Video | |
Feature | SDP serialization for rids | PeerConnection | |
Feature | Handle reordered packets in NetEq | Audio | |
Feature | Probe controller should cap all probes at max allocated bitrate | BWE | |
Feature | Use ordered data structure for supported frame lengths | Audio | |
Feature | Dynamic change of screenshare source | Blink>GetUserMedia>Desktop | |
Bug | AEC3: Erle dump files not created | Audio | |
Bug | Delete PacketTime structs | Internals | |
Bug | Pointer position at the receiver of screenshare from chrome is different from screensharing sender from chrome | Internals>Media | |
Bug | browser freezes when calling function chrome.desktopCapture.chooseDesktopMedia([window]) in chrome extension | Blink>GetUserMedia>Desktop | |
Bug | WebRTC AGC2 VAD classification errors | Blink>WebRTC>Audio | |
Bug | VP9 SVC bitrate limits are ignored if number of spatial layers was reduced to 1 | Video | |
Bug | Only VGA layer is decoded in VP9SVC_3SL_High test | Video | |
Bug | Surface additional network events in RTCEventLog | Network>ICE, Stats | |
Bug | sdpSemantics "unified-plan" rejects previously accepted answer lacking MID | PeerConnection | |
Bug | Zooming in on Mac while Presenting causes strange behaviour | Blink>GetUserMedia>Desktop | |
Bug | ICE candidate raddr not present when #enable-webrtc-hide-local-ips-with-mdns is enabled | Blink>WebRTC>Network | |
Bug | VP9 flexible mode svc puts duplicate references sometimes | Video | |
Bug | Null-dereference READ in webrtc::video_coding::DecodedFramesHistory::InsertDecoded | ||
Bug | Add Metrics to Measure The Delay Between First Frame Arrival And First Frame Decoded | Network>DTLS | |
Bug | Standalone RTCIceTransport not included in the mDNS experiment. | Blink>WebRTC>Network | |
Bug | Unable to enable AEC3 through chrome://flags | Blink>GetUserMedia>Mic, Blink>WebRTC>Audio | |
Bug | WebRTC PeerConnection connectionState is set to "failed" initially | Blink>WebRTC>PeerConnection | |
Bug | iceConnectionStates "disconnected" and "failed" no longer reported from peer connection. | Blink>WebRTC>PeerConnection | |
Bug | New regression to change-source function during tab sharing | Blink>GetUserMedia>Desktop | |
Bug | Display goes to sleep during sharing a tab | Blink>GetUserMedia>Desktop | |
Bug | --auto-select-desktop-capture-source="Entire Screen" has stopped working on M73 | Blink>GetUserMedia>Desktop, Internals>Media>ScreenCapture | |
Bug | browser freezes when calling function chrome.desktopCapture.chooseDesktopMedia([window]) in chrome extension | Blink>GetUserMedia>Desktop | |
Bug | Crash while on WebRTC call and sharing screen | Blink>WebRTC>Video | |
Bug | Chrome_Linux: Crash Report - webrtc::VCMGenericEncoder::Encode |
Blink>WebRTC>Video | |
Bug | Refactor how some field trials are read | Blink>WebRTC>Video | |
Bug | Toggling of retransmissions can lead to spurious mid-call probes | Blink>WebRTC>Video | |
Bug | Handle reordered packets in NetEq | Blink>WebRTC>Audio | |
Other | Cleanup use of VideoBitrateAllocation | Cleanup |