M60
WebRTC M60 branch (cut at r18252)
WebRTC M60, 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.
We've fixed two regressions related to the video jitter buffer, see issues 7518 and 7532 for details. These issues could lead to decoding artifacts or frozen video.
In M57, a regression was introduced that affects send-side bandwidth estimation when used over TCP connections, resulting in a bitrate estimate lower than expected. In M60, we believe all the issues should be resolved and the fixes were also merged back to M59. See crbug 726962 for more details. Also, see this article for recommendations for working around the issue.
A mechanism to detect missing input (mic) audio data has been implemented in Chrome. The audio track and its source is stopped and the ‘ended’ event is fired. See the details in the public PSA on the discuss-webrtc forum.
You can now find out if a screen share VideoTrack comes from Desktop, window or a tab by looking at the VideoTrack label. See crbug 724668 for details.
You can now access the new stats implementation from the Java PeerConnection API. In addition to being valuable for obtaining standards-compliant or newly-implemented stats that wouldn’t be available otherwise, it makes some improvements over the previous version of the API, exposing values as their actual types (boolean, double, integer, etc.)
Platform | Issue | Description | Component |
Chrome | Delete MessageQueue::set_socketserver method and related locks. | Internals |
Type | Issue | Description | Component |
Feature | Fire "ended" event when mic is receiving no signal | Blink>WebRTC>Audio | |
Feature | Opus cbr not supported | Audio | |
Feature | Cannot change volume on RTCAudioTrack in WebRtc | Audio | |
Feature | Remove Mac audio input restart mechanism | Blink>WebRTC>Audio | |
Feature | Support dynamic size rtp header extension | Network>RTP | |
Feature | Reduce the binary size of libjingle_peerconnection | PeerConnection | |
Feature | Request keyframe if the first frame in the stream is not a keyframe. | Video | |
Feature | Unity native plugin example | SampleApps | |
Feature | Move aecdump file IO from real-time audio thread to low-prio task queue | Audio | |
Feature | Label screenshare VideoTracks according to source | Blink>GetUserMedia>Desktop | |
Bug | AudioEncoderOpus - unaddressable mem read | Audio | |
Bug | Memcheck errors in Opus decoder | Audio | |
Bug | NetEq target buffer level increases when audio probing packets are used | Audio | |
Bug | Cache RTP state per SSRC throughout lifetime of Call | Audio, Network | |
Bug | Send-side bandwidth estimation not working over TCP TURN connections | Network>ICE | |
Bug | Tab capture always starts on max resolution and then scales down | Blink>GetUserMedia>Desktop | |
Bug | Desktop picker not working well for multiple monitors on OSX | Blink>GetUserMedia>Desktop | |
Bug | The WebRTC echo canceller 3 has poor transparency when the analog microphone gain is changed | Blink>WebRTC>Audio | |
Bug | The WebRTC echo canceller 3 sometimes has poor transparency when there is weak, or no, echo | Blink>WebRTC>Audio | |
Bug | The WebRTC echo canceller 3 setup does not work properly for stereo output | Blink>WebRTC>Audio | |
Bug | Send-side bandwidth estimation not working over TCP connections | Blink>WebRTC>Network | |
Bug | Refactor WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() logic | Blink>WebRTC>Video | |
Bug | SignalSentPacket not fired by TCPPort for outgoing TCP connections - breaks send-size bandwidth estimation for direct TCP connections (not through TURN server) | BWE, Network | |
Bug | Maintain picture_id monotonicity between calls to Release and InitEncode, for all encoders | Video | |
Bug | Padding packets are not properly handled by audio stream receiver. | Audio | |
Bug | Race in voe::Channel destruction | Audio | |
Bug | DelayBasedBwe should not use GetFeedbackInterval | Audio | |
Bug | Make sure the result is floating point in InitLowFrequencyCorrectionRanges | Audio | |
Bug | AEC3 sometimes attenuates low-powered regions of the near-end speech | Audio | |
Bug | The echo canceller 3 introduces signal artefacts when there are buffering issues | Audio | |
Bug | Modulus usage in the residual echo detector are causing the complexity to be higher than necessary. | Audio | |
Bug | Invalid output buffer setting used within AudioCoder class | Audio | |
Bug | Android screencapture: possible hangs in stopCapture() | Blink>GetUserMedia>Desktop | |
Bug | Presenters mouse cursor is in the wrong place on viewers screen | Blink>GetUserMedia>Desktop | |
Bug | MediaRecorder in Android not using Encode Accelerator for VP8/9 | Blink>MediaRecording | |
Bug | Avoid setting alpha mode for H264 webm container | Blink>MediaRecording | |
Bug | Audio glitches on Posix machines when number of file descriptors are high | Blink>WebRTC>Audio | |
Bug | ICE-Lite server re-offers with new ICE ufrag/pwd and Chrome generates wrong STUN requests with ICE-CONTROLLED | Blink>WebRTC>Network | |
Bug | Chrome 57 does not send use_srtp extension in DTLS hello for webRTC datachannel | Blink>WebRTC>Network | |
Bug | Using DXVA HW decoder for WebRTC fails | Blink>WebRTC>Video | |
Bug | Rendering WebRTC simulcast from RTCVideoEncoder freezes between simulcast layers. | Blink>WebRTC>Video | |
Bug | inet_pton_v6 doesn't handle invalid IPv6 addresses properly. | Network | |
Bug | no ice-options:trickle in SDP | PeerConnection | |
Bug | VideoReceiverStream::Stats render_frame_rate and decode_frame_rate may have stale values | Stats | |
Bug | Scale counter and resolution downgrade stats may be incorrect. | Video | |
Bug | We should not reinit the encoder when the frame rotation changes | Video | |
Bug | Broken sender controlled receiver smoothing due to new jitter buffer in M58 | Video | |
Bug | Inserting same frame multiple times into FrameBuffer2 could cause a non-decodable stream. | Video | |
Bug | Keyframe request spam. | Video | |
Bug | Some H264 frames may cause infinite loop in Packet_buffer | Video | |
Bug | The WebRTC echo canceller 3 sometimes attenuates low-powered portions of the near-end speech | Blink>WebRTC>Audio | |
Bug | Unexpected error ERROR_CONTENT if audio codec is removed, then later added with a different payload type. | PeerConnection |
Type | Issue | Description | Component |
Feature | Make WebRtcAudioEffects reusable | Audio (Android) | |
Feature | WebRTC should know when Apple actives the audio session through CallKit or other means | Audio, Mobile (iOS) | |
Feature | Add Java shims to invoke the new GetStats API | Stats (Android) | |
Bug | configureWebRTCSession/unconfigureWebRTCSession doesn't honor setActive contract | Mobile (iOS) | |
Bug | AppRTCMobile cannot run without a TURN ICE server | Mobile (Android) | |
Bug | RTCCameraPreviewView doesn't rotate context after changing device orientation | Video, Mobile (iOS) |