Move usage of QualityScaler to ViEEncoder.

This brings QualityScaler much more in line with OveruseFrameDetector.
The two classes are conceptually similar, and should be used in the
same way. The biggest changes in this CL are:
- Quality scaling is now only done in ViEEncoder and not in each
  encoder implementation separately.
- QualityScaler now checks the average QP asynchronously, instead of
  having to be polled on each frame.
- QualityScaler is no longer responsible for actually scaling the frames,
  but has a callback to ViEEncoder that it uses to express it's desire
  for lower resolution.

BUG=webrtc:6495

Review-Url: https://codereview.webrtc.org/2398963003
Cr-Commit-Position: refs/heads/master@{#15286}
This commit is contained in:
kthelgason
2016-11-29 01:44:11 -08:00
committed by Commit bot
parent 320e45ad87
commit 876222f77d
32 changed files with 736 additions and 907 deletions

View File

@ -49,8 +49,6 @@ class VP9EncoderImpl : public VP9Encoder {
int SetRateAllocation(const BitrateAllocation& bitrate_allocation,
uint32_t frame_rate) override;
void OnDroppedFrame() override {}
const char* ImplementationName() const override;
struct LayerFrameRefSettings {