New issue
Advanced search Search tips

Issue 773894 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

[remoting webrtc] Client requests key-frames every 3s if display is unchanged

Project Member Reported by lambroslambrou@chromium.org, Oct 11 2017

Issue description

When using WebRTC connection, if the display is idle, the host does not send any new frames to the client. This causes the client to request a key-frame at 3000ms intervals, which wastes network resources:
https://cs.chromium.org/chromium/src/third_party/webrtc/video/video_receive_stream.cc?l=456&rcl=bef8a5d2ca5413c680995584b8c0976852ba5f25

We should consider sending "keep-alive" empty frames at regular intervals?

 
Labels: -Pri-3 Pri-2
Owner: lambroslambrou@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6a3f1e839e900f335350c8555a973cadce46386

commit a6a3f1e839e900f335350c8555a973cadce46386
Author: Lambros Lambrou <lambroslambrou@chromium.org>
Date: Thu Oct 19 01:37:29 2017

[remoting webrtc] Send regular keep-alive frames

If the display is unchanging, the host will normally not send any
frames to the client, which causes the client to think the video
stream is broken. The client makes FIR or PLI requests every few
seconds, resulting in unnecessary key-frames which wastes resources.

This CL fixes this by sending empty frame deltas at a capped rate
when the capturer returns empty frame updates.

The capped rate is set to a rapid value, since testing indicates
this also helps avoid laggy behavior ( crbug.com/773549 ), possibly
because of improved b/w estimation when more frames are sent.

Bug:  773894 , 773549 
Change-Id: I40da2167a86aad3d099eeb45de7c21685b6ad612
Reviewed-on: https://chromium-review.googlesource.com/724660
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509965}
[modify] https://crrev.com/a6a3f1e839e900f335350c8555a973cadce46386/remoting/protocol/webrtc_frame_scheduler_simple.cc
[modify] https://crrev.com/a6a3f1e839e900f335350c8555a973cadce46386/remoting/protocol/webrtc_frame_scheduler_simple.h

Labels: Merge-Request-63 OS-Chrome OS-Linux OS-Mac OS-Windows
Requesting merge of revision a6a3f1e839e900f335350c8555a973cadce46386 into M63 (3239).

Change was verified on an official nightly build.
This CL has no effect on Chrome browser, only the remoting host binary.

Project Member

Comment 4 by sheriffbot@chromium.org, Oct 21 2017

Labels: -Merge-Request-63 Hotlist-Merge-Approved Merge-Approved-63
Your change meets the bar and is auto-approved for M63. Please go ahead and merge the CL to branch 3239 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), gkihumba@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 23 2017

Labels: -merge-approved-63 merge-merged-3239
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca29a5fe00248482cd8036dfd9f2507944166661

commit ca29a5fe00248482cd8036dfd9f2507944166661
Author: Lambros Lambrou <lambroslambrou@chromium.org>
Date: Mon Oct 23 16:47:56 2017

[remoting webrtc] Send regular keep-alive frames

If the display is unchanging, the host will normally not send any
frames to the client, which causes the client to think the video
stream is broken. The client makes FIR or PLI requests every few
seconds, resulting in unnecessary key-frames which wastes resources.

This CL fixes this by sending empty frame deltas at a capped rate
when the capturer returns empty frame updates.

The capped rate is set to a rapid value, since testing indicates
this also helps avoid laggy behavior ( crbug.com/773549 ), possibly
because of improved b/w estimation when more frames are sent.

Bug:  773894 , 773549 
Change-Id: I40da2167a86aad3d099eeb45de7c21685b6ad612
Reviewed-on: https://chromium-review.googlesource.com/724660
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Zijie He <zijiehe@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#509965}(cherry picked from commit a6a3f1e839e900f335350c8555a973cadce46386)
Reviewed-on: https://chromium-review.googlesource.com/733720
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/branch-heads/3239@{#154}
Cr-Branched-From: adb61db19020ed8ecee5e91b1a0ea4c924ae2988-refs/heads/master@{#508578}
[modify] https://crrev.com/ca29a5fe00248482cd8036dfd9f2507944166661/remoting/protocol/webrtc_frame_scheduler_simple.cc
[modify] https://crrev.com/ca29a5fe00248482cd8036dfd9f2507944166661/remoting/protocol/webrtc_frame_scheduler_simple.h

Status: Fixed (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d8b560e714819f4378f09a83d33e56175d88833c

commit d8b560e714819f4378f09a83d33e56175d88833c
Author: Lambros Lambrou <lambroslambrou@chromium.org>
Date: Tue Oct 31 19:50:19 2017

[remoting] Add unittests for WebrtcFrameSchedulerSimple

This adds unittests for the changes made in
crrev.com/a6a3f1e839e900f335350c8555a973cadce46386

This requires a small refactoring to allow unittests to fake the
current time for the WebrtcFrameSchedulerSimple class.

Bug:  773894 
Change-Id: I00e1204b1eab446e18e5d8796770dbd64623abfc
Reviewed-on: https://chromium-review.googlesource.com/729565
Commit-Queue: Lambros Lambrou <lambroslambrou@chromium.org>
Reviewed-by: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512914}
[modify] https://crrev.com/d8b560e714819f4378f09a83d33e56175d88833c/remoting/protocol/webrtc_frame_scheduler_simple.cc
[modify] https://crrev.com/d8b560e714819f4378f09a83d33e56175d88833c/remoting/protocol/webrtc_frame_scheduler_simple.h
[modify] https://crrev.com/d8b560e714819f4378f09a83d33e56175d88833c/remoting/protocol/webrtc_frame_scheduler_unittest.cc

Sign in to add a comment