Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Issue 2897983002: Don't boost QP after drop unless there is sufficient bandwidth (Closed)

Created:
3 years, 7 months ago by sprang_webrtc
Modified:
3 years, 7 months ago
Reviewers:
ilnik
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com, zhengzhonghou_agora.io, video-team_agora.io, stefan-webrtc, mflodman
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

Don't boost QP after drop unless there is sufficient bandwidth If a frame is dropped and re-encoded because it exceeded the target bitrate by a large factor, the next frame will be encoded at max qp (worst quality) in order to get a frame through in a timely manner. The next frame after this will still have lower quality since the rate controller essentially gets reset. In order to mitigate that we boost the qp for that next frame, which brings the stream back to a good quality quicker. However, if the network conditions are _really_ bad, this boosted qp may be too large, causing the frame again to be dropped an re-encoded. This CL set's a minimum bitrate available in order to enabling the boosting in the first place. It also adjusts a timeout (max time between frames in TL0), since a too small value and very difficult frames in conjunction with the mentioned bad network could actually cause bad network over-utilization in turn leading to packet loss and bad follow-on effects to that. There was also some slop in the rate keeping for the two layers. This has been tightened up and affected test cases have been fixed. BUG=webrtc:7694 Review-Url: https://codereview.webrtc.org/2897983002 Cr-Commit-Position: refs/heads/master@{#18236} Committed: https://chromium.googlesource.com/external/webrtc/+/916170ae4692b505e1ef3e2b3562af8322420b7d

Patch Set 1 #

Patch Set 2 : Overhaul of unit tests, updated layer pacing #

Total comments: 2

Patch Set 3 : Updated comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+201 lines, -274 lines) Patch
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h View 1 chunk +1 line, -1 line 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc View 1 2 8 chunks +47 lines, -33 lines 0 comments Download
M webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc View 1 13 chunks +153 lines, -240 lines 0 comments Download

Messages

Total messages: 17 (12 generated)
sprang_webrtc
3 years, 7 months ago (2017-05-23 11:38:24 UTC) #9
ilnik
lgtm with nits. https://codereview.webrtc.org/2897983002/diff/20001/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc File webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc (right): https://codereview.webrtc.org/2897983002/diff/20001/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc#newcode385 webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc:385: // mean target bitrate can be ...
3 years, 7 months ago (2017-05-23 12:05:54 UTC) #10
sprang_webrtc
https://codereview.webrtc.org/2897983002/diff/20001/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc File webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc (right): https://codereview.webrtc.org/2897983002/diff/20001/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc#newcode385 webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc:385: // mean target bitrate can be exceeded. On 2017/05/23 ...
3 years, 7 months ago (2017-05-23 12:35:41 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2897983002/40001
3 years, 7 months ago (2017-05-23 12:35:53 UTC) #14
commit-bot: I haz the power
3 years, 7 months ago (2017-05-23 14:48:00 UTC) #17
Message was sent while issue was closed.
Committed patchset #3 (id:40001) as
https://chromium.googlesource.com/external/webrtc/+/916170ae4692b505e1ef3e2b3...

Powered by Google App Engine
This is Rietveld 408576698