PSA: WebRTC M60 Release Notes

3,999 views
Skip to first unread message

Anatoli Davidson

unread,
Jun 27, 2017, 2:13:11 PM6/27/17
to discuss...@googlegroups.com

M60

WebRTC M60 branch (cut at r18252)

Summary

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.

Important PSAs

Video jitter buffer fixes

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.

Issues with TCP + send-side bandwidth estimation fixed

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.

Features

Stopping audio track when audio input data is missing

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.

Updated VideoTrack labels for screen sharing

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.

Exposed new, standards-compliant getStats implementation in Java API

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.)

Deprecations


Platform

Issue

Description

Component

Chrome

7501

Delete MessageQueue::set_socketserver method and related locks.

Internals


Features and Bugfixes

Chrome


Type

Issue

Description

Component

Feature

722335

Fire "ended" event when mic is receiving no signal

Blink>WebRTC>Audio

Feature

7394

Opus cbr not supported

Audio

Feature

6533

Cannot change volume on RTCAudioTrack in WebRtc

Audio

Feature

725819

Remove Mac audio input restart mechanism

Blink>WebRTC>Audio

Feature

7433

Support dynamic size rtp header extension

Network>RTP

Feature

7516

Reduce the binary size of libjingle_peerconnection

PeerConnection

Feature

7669

Request keyframe if the first frame in the stream is not a keyframe.

Video

Feature

7389

Unity native plugin example

SampleApps

Feature

7404

Move aecdump file IO from real-time audio thread to low-prio task queue

Audio

Feature

724668

Label screenshare VideoTracks according to source

Blink>GetUserMedia>Desktop

Bug

5651

AudioEncoderOpus - unaddressable mem read

Audio

Bug

6444

Memcheck errors in Opus decoder

Audio

Bug

7610

NetEq target buffer level increases when audio probing packets are used

Audio

Bug

7631

Cache RTP state per SSRC throughout lifetime of Call

Audio, Network

Bug

7717

Send-side bandwidth estimation not working over TCP TURN connections

Network>ICE

Bug

704277

Tab capture always starts on max resolution and then scales down

Blink>GetUserMedia>Desktop

Bug

721387

Desktop picker not working well for multiple monitors on OSX

Blink>GetUserMedia>Desktop

Bug

710818

The WebRTC echo canceller 3 has poor transparency when the analog microphone gain is changed

Blink>WebRTC>Audio

Bug

712651

The WebRTC echo canceller 3 sometimes has poor transparency when there is weak, or no, echo

Blink>WebRTC>Audio

Bug

722343

The WebRTC echo canceller 3 setup does not work properly for stereo output

Blink>WebRTC>Audio

Bug

726962

Send-side bandwidth estimation not working over TCP connections

Blink>WebRTC>Network

Bug

715227

Refactor WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() logic

Blink>WebRTC>Video

Bug

7509

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

7475

Maintain picture_id monotonicity between calls to Release and InitEncode, for all encoders

Video

Bug

7625

Padding packets are not properly handled by audio stream receiver.

Audio

Bug

7540

Race in voe::Channel destruction

Audio

Bug

6514

DelayBasedBwe should not use GetFeedbackInterval

Audio

Bug

7558

Make sure the result is floating point in InitLowFrequencyCorrectionRanges

Audio

Bug

7528

AEC3 sometimes attenuates low-powered regions of the near-end speech

Audio

Bug

7559

The echo canceller 3 introduces signal artefacts when there are buffering issues

Audio

Bug

7666

Modulus usage in the residual echo detector are causing the complexity to be higher than necessary.

Audio

Bug

7462

Invalid output buffer setting used within AudioCoder class

Audio

Bug

718082

Android screencapture: possible hangs in stopCapture()

Blink>GetUserMedia>Desktop

Bug

723889

Presenters mouse cursor is in the wrong place on viewers screen

Blink>GetUserMedia>Desktop

Bug

638664

MediaRecorder in Android not using Encode Accelerator for VP8/9

Blink>MediaRecording

Bug

711825

Avoid setting alpha mode for H264 webm container

Blink>MediaRecording

Bug

722720

Audio glitches on Posix machines when number of file descriptors are high

Blink>WebRTC>Audio

Bug

710760

ICE-Lite server re-offers with new ICE ufrag/pwd and Chrome generates wrong STUN requests with ICE-CONTROLLED

Blink>WebRTC>Network

Bug

711243

Chrome 57 does not send use_srtp extension in DTLS hello for webRTC datachannel

Blink>WebRTC>Network

Bug

712311

Using DXVA HW decoder for WebRTC fails

Blink>WebRTC>Video

Bug

705679

Rendering WebRTC simulcast from RTCVideoEncoder freezes between simulcast layers.

Blink>WebRTC>Video

Bug

7592

inet_pton_v6 doesn't handle invalid IPv6 addresses properly.

Network

Bug

7443

no ice-options:trickle in SDP

PeerConnection

Bug

7560

VideoReceiverStream::Stats render_frame_rate and decode_frame_rate may have stale values

Stats

Bug

7492

Scale counter and resolution downgrade stats may be incorrect.

Video

Bug

7535

We should not reinit the encoder when the frame rotation changes

Video

Bug

7590

Broken sender controlled receiver smoothing due to new jitter buffer in M58

Video

Bug

7518

Inserting same frame multiple times into FrameBuffer2 could cause a non-decodable stream.

Video

Bug

7520

Keyframe request spam.

Video

Bug

7532

Some H264 frames may cause infinite loop in Packet_buffer

Video

Bug

715893

The WebRTC echo canceller 3 sometimes attenuates low-powered portions of the near-end speech

Blink>WebRTC>Audio

Bug

5847

Unexpected error ERROR_CONTENT if audio codec is removed, then later added with a different payload type.

PeerConnection


Native Android/iOS


Type

Issue

Description

Component

Feature

7448

Make WebRtcAudioEffects reusable

Audio (Android)

Feature

7446

WebRTC should know when Apple actives the audio session through CallKit or other means

Audio, Mobile (iOS)

Feature

6871

Add Java shims to invoke the new GetStats API

Stats (Android)

Bug

7471

configureWebRTCSession/unconfigureWebRTCSession doesn't honor setActive contract

Mobile (iOS)

Bug

7636

AppRTCMobile cannot run without a TURN ICE server

Mobile (Android)

Bug

6749

RTCCameraPreviewView doesn't rotate context after changing device orientation

Video, Mobile (iOS)



Reply all
Reply to author
Forward
0 new messages