webrtc/modules/video_coding/codecs
Ilya Nikolaevskiy bc8049ef0b Reland "VP9 encoder: handle disabled layers correctly"
Now vp9 screenshare would enable new layers as soon as requested and will force all spatial layers present on the next frame, even if they should be dropped because of frame-rate limiting.

This might cause frame-rate liming to be exceeded if layer is toggling on and off very often, but this situation is bad itself. E.g. in realtime video it will cause too many key-frames.

Now SvcRateAllocator and VP9EncoderImpl are aware that there may be some skipped layers before the first enabled. Key-frames and ss_info triggering logic is also updated.

(This is a reland without changes after updates to downstream projects)
Original-Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153483

Bug: webrtc:10977
Change-Id: I02459c5982da2e0542a837514f5753c5f96401c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154355
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29330}
2019-09-27 09:28:38 +00:00
..
h264 Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
interface [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
multiplex Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
test Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
vp8 Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
vp9 Reland "VP9 encoder: handle disabled layers correctly" 2019-09-27 09:28:38 +00:00