Index: webrtc/video/vie_encoder.h |
diff --git a/webrtc/video/vie_encoder.h b/webrtc/video/vie_encoder.h |
index f2d7cfdae2084609589bb26b196a273483a457e0..17de4818bb0c3d0597c70074a86b711e352fe5e6 100644 |
--- a/webrtc/video/vie_encoder.h |
+++ b/webrtc/video/vie_encoder.h |
@@ -77,7 +77,8 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
SendStatisticsProxy* stats_proxy, |
const VideoSendStream::Config::EncoderSettings& settings, |
rtc::VideoSinkInterface<VideoFrame>* pre_encode_callback, |
- EncodedFrameObserver* encoder_timing); |
+ EncodedFrameObserver* encoder_timing, |
+ std::unique_ptr<OveruseFrameDetector> overuse_detector); |
~ViEEncoder(); |
// RegisterProcessThread register |module_process_thread| with those objects |
// that use it. Registration has to happen on the thread where |
@@ -129,6 +130,7 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
// These methods are protected for easier testing. |
void AdaptUp(AdaptReason reason) override; |
void AdaptDown(AdaptReason reason) override; |
+ static CpuOveruseOptions GetCpuOveruseOptions(bool full_overuse_time); |
private: |
class ConfigureEncoderTask; |
@@ -229,7 +231,8 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
const VideoCodecType codec_type_; |
vcm::VideoSender video_sender_ ACCESS_ON(&encoder_queue_); |
- OveruseFrameDetector overuse_detector_ ACCESS_ON(&encoder_queue_); |
+ std::unique_ptr<OveruseFrameDetector> overuse_detector_ |
+ ACCESS_ON(&encoder_queue_); |
std::unique_ptr<QualityScaler> quality_scaler_ ACCESS_ON(&encoder_queue_); |
SendStatisticsProxy* const stats_proxy_; |
@@ -243,6 +246,9 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
VideoEncoderConfig encoder_config_ ACCESS_ON(&encoder_queue_); |
std::unique_ptr<VideoBitrateAllocator> rate_allocator_ |
ACCESS_ON(&encoder_queue_); |
+ // The maximum frame rate of the current codec configuration, as determined |
+ // at the last ReconfigureEncoder() call. |
+ int max_framerate_ ACCESS_ON(&encoder_queue_); |
// Set when ConfigureEncoder has been called in order to lazy reconfigure the |
// encoder on the next frame. |
@@ -270,6 +276,8 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
int input_pixel_count_; |
// Framerate received from the source at the time of the adaptation. |
int framerate_fps_; |
+ // The selected framerate, as result of downscaling request (if any). |
+ rtc::Optional<int> selected_framerate_fps_; |
// Indicates if request was to adapt up or down. |
enum class Mode { kAdaptUp, kAdaptDown } mode_; |
}; |