Chromium Code Reviews| Index: webrtc/video/vie_encoder.h |
| diff --git a/webrtc/video/vie_encoder.h b/webrtc/video/vie_encoder.h |
| index c534b5566caae4b7b5b49cca6bab7e9b0202bad2..5e4bff35d1226cf9beba28128c0729e0f5076b63 100644 |
| --- a/webrtc/video/vie_encoder.h |
| +++ b/webrtc/video/vie_encoder.h |
| @@ -21,6 +21,7 @@ |
| #include "webrtc/base/task_queue.h" |
| #include "webrtc/call.h" |
| #include "webrtc/common_types.h" |
| +#include "webrtc/common_video/rotation.h" |
| #include "webrtc/media/base/videosinkinterface.h" |
| #include "webrtc/modules/video_coding/include/video_coding_defines.h" |
| #include "webrtc/modules/video_coding/utility/simulcast_rate_allocator.h" |
| @@ -99,11 +100,27 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| private: |
| class EncodeTask; |
| - class VideoSourceProxy; |
| class ConfigureEncoderTask; |
|
mflodman
2016/09/28 13:17:07
Alphabetic order.
perkj_webrtc
2016/09/29 15:05:18
Done.
|
| + class VideoSourceProxy; |
| + |
| + struct VideoFrameInfo { |
| + VideoFrameInfo(int width, |
| + int height, |
| + VideoRotation rotation, |
| + bool is_texture) |
| + : width(width), |
| + height(height), |
| + rotation(rotation), |
| + is_texture(is_texture) {} |
| + int width; |
| + int height; |
| + webrtc::VideoRotation rotation; |
| + bool is_texture; |
| + }; |
| void ConfigureEncoderOnTaskQueue(VideoEncoderConfig config, |
| size_t max_data_payload_length); |
| + void ReconfigureEncoder(); |
| // Implements VideoSinkInterface. |
| void OnFrame(const VideoFrame& video_frame) override; |
| @@ -138,7 +155,6 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| const VideoSendStream::Config::EncoderSettings settings_; |
| const VideoCodecType codec_type_; |
| - const std::unique_ptr<VideoProcessing> vp_; |
| vcm::VideoSender video_sender_ ACCESS_ON(&encoder_queue_); |
| OveruseFrameDetector overuse_detector_ ACCESS_ON(&encoder_queue_); |
| @@ -159,6 +175,11 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| std::unique_ptr<SimulcastRateAllocator> rate_allocator_ |
| ACCESS_ON(&encoder_queue_); |
| + // Set when ConfigureEncoder has been called in order to lazy reconfigure the |
| + // encoder on the next frame. |
| + bool pending_encoder_reconfiguration_ ACCESS_ON(&encoder_queue_); |
| + rtc::Optional<VideoFrameInfo> last_frame_info_ ACCESS_ON(&encoder_queue_); |
| + |
| uint32_t encoder_start_bitrate_bps_ ACCESS_ON(&encoder_queue_); |
| size_t max_data_payload_length_ ACCESS_ON(&encoder_queue_); |
| uint32_t last_observed_bitrate_bps_ ACCESS_ON(&encoder_queue_); |