PSA: Chrome M47 WebRTC Release Notes

Skip to first unread message

Christoffer Jansson

Oct 27, 2015, 2:52:22 PM10/27/15
to WebRTC-discuss


WebRTC M47 branch


Chrome M47, currently available in Chrome's dev channel, includes over 22 bugfixes and new features, including a variety of WebRTC enhancements. 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. The help we have received has been invaluable! For some pointers on how to file a good bug report, please take a look at this page.

Important PSAs

  • Chrome 47 only allows getUserMedia requests from SECURE ORIGINS (HTTPS, or HTTP from localhost) [youtube announcement].

  • NSS has been replaced by BoringSSL on all platforms and the WebRTC NSS code will no longer be maintained, see PSA for more details.

  • RTP data channel support has been removed. Any remaining applications still using RTP data channels should use the standard data channels instead.


M47 adds a new preference to force WebRTC traffic to be sent through a local proxy server, if one is configured. This means that the WebRTC application will only see the proxy IP address, but it will also hurt application performance, and won't work at all unless the application supports TURN/TCP or ICE-TCP. Look for a new version of the WebRTC Network Limiter Extension soon to provide a UI for this preference.

Default communications device support on Windows has been added (Issue 525443). This means that when enumerating audio devices on Windows, there will be an additional entry for the communications device whose id will be ‘communications’.

Device IDs for the default audio device (and communications on Windows) will no longer be hashed (Issue 535980).  Instead, two reserved IDs, ‘default’ and ‘communications’ are supported and are the same across all security origins. Device labels will be translated to the browser locale so developers should not expect labels to have a predetermined value.

MediaDevices.enumerateDevices() has been released, details in Issue 504280. You can now enumerate audio output devices in addition to the audio input and video input devices that MediaStreamTrack.getSources() already provides. More details about how to use it in this Google developer article.

The much-wanted MediaStreamRecorder (top request with over 2500 stars) has been added behind the experimental Web Platform features flag. More details in this discuss-webrtc announcement.

Video rendering accuracy has been improved by propagating the capture timestamp all the way to the rendering algorithm, where the right vsync can be chosen based on that. For Windows platform the capture timestamp are also more accurate in 47.

Data channel throughput has been greatly improved for high latency connections.

We will gradually roll out support for DTLS 1.2 in the M47 timeframe.

VP9 did not make it for this release, nor did H.264 support. Work on these continues, and we expect to release VP9 and an initial version of H.264 (behind a flag) in M48.

Bugfixes and Features

  • Issue 497001 Add a virtual beamforming audio device on supported hardware.

  • Issue 515701 Firefox to Chrome WebRTC connections fail if Firefox is behind symmetric NAT and there is no TURN option

  • Issue 526883 WebRTC: screensharing window picker doesn't show preview of some non-browser windows in Windows 10

  • Issue 527464 Successful WebRTC calls sometimes don't trigger an ICEConnectionStateCompleted event

  • Issue 516584 Add debug recording to file of mic input

  • Issue 525443 Add explicit support for communications device on Windows

  • Issue 529949 Windows capture timestamps irregularity

  • Issue 510850 DTLS cert should be cleared when cookies are cleared

  • Issue 4497 Remove NSS dependency from WebRTC.

  • Issue 4517 No candidate is gathered when enable_multiple_routes set to false without any stun/turn server.

  • Issue 4758 Packet arrival time on socket not wired up in new API

  • Issue 4784 webrtc should only use proxy route when chrome has proxy-server specified.

  • Issue 4930 Once TCPPort reconnection succeeds, it should signal ReadyToSend for upper layer to start sending again.

  • Issue 4936 TcpConnection which can't connect or fail to reconnect should be removed.

  • Issue 4965 Quality scaler disabled for single video stream when using RTX

  • Issue 4966 Quality scaled resolution not shown in stats for send width/sent height.

  • Issue 4978 Android: switchCamera() on stopped camera crashes

  • Issue 4983 Fix the maximum native sample rate in AudioProcessing

  • Issue 4985 Inbound Opus DTX packets crash webrtc

  • Issue 5030 Tcpport doesn't connect when turning off multiple routes and calling through gmail.

  • Issue 4968 Use QualityScaler for H264 hardware encoding on Android.

  • Issue 5074 Add settings of audio processing module to debug dump.

Reply all
Reply to author
0 new messages