| Index: webrtc/video/vie_encoder.cc
|
| diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
|
| index cd6d88dafc54f2e2ff5a7a281dcbca458943c5ff..5e1d294dda675dda384b68aecc901197b3f6b8ad 100644
|
| --- a/webrtc/video/vie_encoder.cc
|
| +++ b/webrtc/video/vie_encoder.cc
|
| @@ -12,6 +12,7 @@
|
|
|
| #include <algorithm>
|
| #include <limits>
|
| +#include <utility>
|
|
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/logging.h"
|
| @@ -367,7 +368,7 @@ void ViEEncoder::SetSource(rtc::VideoSourceInterface<VideoFrame>* source) {
|
| source_proxy_->SetSource(source);
|
| }
|
|
|
| -void ViEEncoder::SetSink(EncodedImageCallback* sink) {
|
| +void ViEEncoder::SetSink(EncoderSink* sink) {
|
| encoder_queue_.PostTask([this, sink] {
|
| RTC_DCHECK_RUN_ON(&encoder_queue_);
|
| sink_ = sink;
|
| @@ -381,18 +382,25 @@ void ViEEncoder::SetStartBitrate(int start_bitrate_bps) {
|
| });
|
| }
|
|
|
| -void ViEEncoder::ConfigureEncoder(const VideoEncoderConfig& config,
|
| +void ViEEncoder::ConfigureEncoder(VideoEncoderConfig config,
|
| size_t max_data_payload_length) {
|
| VideoCodec video_codec = VideoEncoderConfigToVideoCodec(
|
| config, settings_.payload_name, settings_.payload_type);
|
| - encoder_queue_.PostTask([this, video_codec, max_data_payload_length] {
|
| - ConfigureEncoderInternal(video_codec, max_data_payload_length);
|
| + LOG(LS_INFO) << "ConfigureEncoder: " << config.ToString();
|
| + std::vector<VideoStream> stream = std::move(config.streams);
|
| + int min_transmit_bitrate = config.min_transmit_bitrate_bps;
|
| + encoder_queue_.PostTask([this, video_codec, max_data_payload_length, stream,
|
| + min_transmit_bitrate] {
|
| + ConfigureEncoderInternal(video_codec, max_data_payload_length, stream,
|
| + min_transmit_bitrate);
|
| });
|
| return;
|
| }
|
|
|
| void ViEEncoder::ConfigureEncoderInternal(const VideoCodec& video_codec,
|
| - size_t max_data_payload_length) {
|
| + size_t max_data_payload_length,
|
| + std::vector<VideoStream> stream,
|
| + int min_transmit_bitrate) {
|
| RTC_DCHECK_RUN_ON(&encoder_queue_);
|
| RTC_DCHECK_GE(encoder_start_bitrate_bps_, 0);
|
| RTC_DCHECK(sink_);
|
| @@ -434,6 +442,8 @@ void ViEEncoder::ConfigureEncoderInternal(const VideoCodec& video_codec,
|
| }
|
| stats_proxy_->SetContentType(content_type);
|
| }
|
| +
|
| + sink_->OnEncoderConfigurationChanged(stream, min_transmit_bitrate);
|
| }
|
|
|
| void ViEEncoder::OnFrame(const VideoFrame& video_frame) {
|
|
|