Chromium Code Reviews| Index: webrtc/video/vie_encoder.h |
| diff --git a/webrtc/video/vie_encoder.h b/webrtc/video/vie_encoder.h |
| index 15fd9cfa58c1ccd1cd373b23ab9b5d463be44bdf..c534b5566caae4b7b5b49cca6bab7e9b0202bad2 100644 |
| --- a/webrtc/video/vie_encoder.h |
| +++ b/webrtc/video/vie_encoder.h |
| @@ -23,6 +23,7 @@ |
| #include "webrtc/common_types.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" |
| #include "webrtc/modules/video_coding/video_coding_impl.h" |
| #include "webrtc/modules/video_processing/include/video_processing.h" |
| #include "webrtc/system_wrappers/include/atomic32.h" |
| @@ -99,11 +100,10 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| private: |
| class EncodeTask; |
| class VideoSourceProxy; |
| + class ConfigureEncoderTask; |
|
mflodman
2016/09/28 16:33:10
Alphabetic order.
|
| - void ConfigureEncoderInternal(const VideoCodec& video_codec, |
| - size_t max_data_payload_length, |
| - std::vector<VideoStream> stream, |
| - int min_transmit_bitrate); |
| + void ConfigureEncoderOnTaskQueue(VideoEncoderConfig config, |
| + size_t max_data_payload_length); |
| // Implements VideoSinkInterface. |
| void OnFrame(const VideoFrame& video_frame) override; |
| @@ -136,6 +136,7 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| const std::unique_ptr<VideoSourceProxy> source_proxy_; |
| EncoderSink* sink_; |
| const VideoSendStream::Config::EncoderSettings settings_; |
| + const VideoCodecType codec_type_; |
| const std::unique_ptr<VideoProcessing> vp_; |
| vcm::VideoSender video_sender_ ACCESS_ON(&encoder_queue_); |
| @@ -151,9 +152,15 @@ class ViEEncoder : public rtc::VideoSinkInterface<VideoFrame>, |
| // of ViEEncoder are called on the same thread. |
| rtc::ThreadChecker thread_checker_; |
| - VideoCodec encoder_config_ ACCESS_ON(&encoder_queue_); |
| + VideoEncoderConfig encoder_config_ ACCESS_ON(&encoder_queue_); |
| + // TODO(sprang): Change |rate_allocator_| to be a codec type |
| + // agnostic interface. It is currently VP8 simulcast specific if more than |
| + // one layer is specified. |
| + std::unique_ptr<SimulcastRateAllocator> rate_allocator_ |
| + ACCESS_ON(&encoder_queue_); |
| - int encoder_start_bitrate_bps_ 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_); |
| bool encoder_paused_and_dropped_frame_ ACCESS_ON(&encoder_queue_); |
| bool has_received_sli_ ACCESS_ON(&encoder_queue_); |