| Index: webrtc/media/engine/fakewebrtccall.cc
|
| diff --git a/webrtc/media/engine/fakewebrtccall.cc b/webrtc/media/engine/fakewebrtccall.cc
|
| index 9437fa0fbaec234ec1d81d6815e0da795a84240f..fd4292eb1b45382830ab40b3178058cb3260bc5a 100644
|
| --- a/webrtc/media/engine/fakewebrtccall.cc
|
| +++ b/webrtc/media/engine/fakewebrtccall.cc
|
| @@ -123,8 +123,9 @@ const webrtc::VideoEncoderConfig& FakeVideoSendStream::GetEncoderConfig()
|
| return encoder_config_;
|
| }
|
|
|
| -std::vector<webrtc::VideoStream> FakeVideoSendStream::GetVideoStreams() {
|
| - return encoder_config_.streams;
|
| +const std::vector<webrtc::VideoStream>& FakeVideoSendStream::GetVideoStreams()
|
| + const {
|
| + return video_streams_;
|
| }
|
|
|
| bool FakeVideoSendStream::IsSending() const {
|
| @@ -170,6 +171,13 @@ int64_t FakeVideoSendStream::GetLastTimestamp() const {
|
|
|
| void FakeVideoSendStream::OnFrame(const webrtc::VideoFrame& frame) {
|
| ++num_swapped_frames_;
|
| + if (frame.width() != last_frame_.width() ||
|
| + frame.height() != last_frame_.height() ||
|
| + frame.rotation() != last_frame_.rotation()) {
|
| + video_streams_ =
|
| + encoder_config_.encoder_stream_factory->CreateEncoderStreams(
|
| + frame.width(), frame.height(), encoder_config_);
|
| + }
|
| last_frame_.ShallowCopy(frame);
|
| }
|
|
|
| @@ -184,29 +192,31 @@ webrtc::VideoSendStream::Stats FakeVideoSendStream::GetStats() {
|
|
|
| void FakeVideoSendStream::ReconfigureVideoEncoder(
|
| webrtc::VideoEncoderConfig config) {
|
| + video_streams_ = config.encoder_stream_factory->CreateEncoderStreams(
|
| + last_frame_.width(), last_frame_.height(), config);
|
| + encoder_config_ = std::move(config);
|
| + codec_settings_set_ = config.encoder_specific_settings != nullptr;
|
| + ++num_encoder_reconfigurations_;
|
| if (config.encoder_specific_settings != NULL) {
|
| if (config_.encoder_settings.payload_name == "VP8") {
|
| vpx_settings_.vp8 = *reinterpret_cast<const webrtc::VideoCodecVP8*>(
|
| config.encoder_specific_settings);
|
| - if (!config.streams.empty()) {
|
| + if (!video_streams_.empty()) {
|
| vpx_settings_.vp8.numberOfTemporalLayers = static_cast<unsigned char>(
|
| - config.streams.back().temporal_layer_thresholds_bps.size() + 1);
|
| + video_streams_.back().temporal_layer_thresholds_bps.size() + 1);
|
| }
|
| } else if (config_.encoder_settings.payload_name == "VP9") {
|
| vpx_settings_.vp9 = *reinterpret_cast<const webrtc::VideoCodecVP9*>(
|
| - config.encoder_specific_settings);
|
| - if (!config.streams.empty()) {
|
| + config.encoder_specific_settings);
|
| + if (!video_streams_.empty()) {
|
| vpx_settings_.vp9.numberOfTemporalLayers = static_cast<unsigned char>(
|
| - config.streams.back().temporal_layer_thresholds_bps.size() + 1);
|
| + video_streams_.back().temporal_layer_thresholds_bps.size() + 1);
|
| }
|
| } else {
|
| ADD_FAILURE() << "Unsupported encoder payload: "
|
| << config_.encoder_settings.payload_name;
|
| }
|
| }
|
| - encoder_config_ = std::move(config);
|
| - codec_settings_set_ = config.encoder_specific_settings != NULL;
|
| - ++num_encoder_reconfigurations_;
|
| }
|
|
|
| void FakeVideoSendStream::Start() {
|
|
|