Framerate controller for VP9 screen sharing.

- Limit framerate by dropping frames before encoding.
- The max framerate at screen sharing is set to 5fps.

Bug: webrtc:9261
Change-Id: Icfbbecce33fdce2d746291708db0108e0ba10760
Reviewed-on: https://webrtc-review.googlesource.com/76921
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23316}
This commit is contained in:
Sergey Silkin
2018-05-18 17:31:19 +02:00
committed by Commit Bot
parent a832019f4e
commit d902d58b0a
6 changed files with 111 additions and 3 deletions

View File

@ -17,6 +17,7 @@
#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "modules/video_coding/codecs/vp9/vp9_frame_buffer_pool.h"
#include "rtc_base/rate_statistics.h"
#include "vpx/vp8cx.h"
#include "vpx/vpx_decoder.h"
@ -103,6 +104,11 @@ class VP9EncoderImpl : public VP9Encoder {
uint8_t num_spatial_layers_;
InterLayerPredMode inter_layer_pred_;
// Framerate controller.
rtc::Optional<float> target_framerate_fps_;
RateStatistics output_framerate_;
uint32_t last_encoded_frame_rtp_timestamp_;
// Used for flexible mode.
bool is_flexible_mode_;
};