| Index: webrtc/video/video_send_stream_tests.cc
 | 
| diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
 | 
| index 9d00e007de2f15427e1e3c0c07f13e27c3f40709..2663516b6bfe9074e9a69a7c0533a4cd8afad9c1 100644
 | 
| --- a/webrtc/video/video_send_stream_tests.cc
 | 
| +++ b/webrtc/video/video_send_stream_tests.cc
 | 
| @@ -1785,12 +1785,9 @@ TEST_F(VideoSendStreamTest, EncoderIsProperlyInitializedAndDestroyed) {
 | 
|  
 | 
|      void PerformTest() override {
 | 
|        EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode.";
 | 
| -      // Expect  |num_releases| == 1 since the encoder has been reconfigured
 | 
| -      // once when the first frame is encoded. Not until at that point is the
 | 
| -      // frame size known and the encoder can be properly initialized.
 | 
| -      EXPECT_EQ(1u, num_releases());
 | 
| +      EXPECT_EQ(0u, num_releases());
 | 
|        stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
 | 
| -      EXPECT_EQ(1u, num_releases());
 | 
| +      EXPECT_EQ(0u, num_releases());
 | 
|        stream_->Stop();
 | 
|        // Encoder should not be released before destroying the VideoSendStream.
 | 
|        EXPECT_FALSE(IsReleased());
 | 
| @@ -1812,7 +1809,7 @@ TEST_F(VideoSendStreamTest, EncoderIsProperlyInitializedAndDestroyed) {
 | 
|    RunBaseTest(&test_encoder);
 | 
|  
 | 
|    EXPECT_TRUE(test_encoder.IsReleased());
 | 
| -  EXPECT_EQ(2u, test_encoder.num_releases());
 | 
| +  EXPECT_EQ(1u, test_encoder.num_releases());
 | 
|  }
 | 
|  
 | 
|  TEST_F(VideoSendStreamTest, EncoderSetupPropagatesCommonEncoderConfigValues) {
 | 
| @@ -1844,7 +1841,7 @@ TEST_F(VideoSendStreamTest, EncoderSetupPropagatesCommonEncoderConfigValues) {
 | 
|      int32_t InitEncode(const VideoCodec* config,
 | 
|                         int32_t number_of_cores,
 | 
|                         size_t max_payload_size) override {
 | 
| -      if (num_initializations_ < 2) {
 | 
| +      if (num_initializations_ == 0) {
 | 
|          // Verify default values.
 | 
|          EXPECT_EQ(kRealtimeVideo, config->mode);
 | 
|        } else {
 | 
| @@ -1852,23 +1849,18 @@ TEST_F(VideoSendStreamTest, EncoderSetupPropagatesCommonEncoderConfigValues) {
 | 
|          EXPECT_EQ(kScreensharing, config->mode);
 | 
|        }
 | 
|        ++num_initializations_;
 | 
| -      if (num_initializations_ > 1) {
 | 
| -        // Skip the first two InitEncode events: one with QCIF resolution when
 | 
| -        // the SendStream is created, the other with QVGA when the first frame
 | 
| -        // is encoded.
 | 
| -        init_encode_event_.Set();
 | 
| -      }
 | 
| +      init_encode_event_.Set();
 | 
|        return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
 | 
|      }
 | 
|  
 | 
|      void PerformTest() override {
 | 
|        EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs));
 | 
| -      EXPECT_EQ(2u, num_initializations_) << "VideoEncoder not initialized.";
 | 
| +      EXPECT_EQ(1u, num_initializations_) << "VideoEncoder not initialized.";
 | 
|  
 | 
|        encoder_config_.content_type = VideoEncoderConfig::ContentType::kScreen;
 | 
|        stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
 | 
|        EXPECT_TRUE(init_encode_event_.Wait(kDefaultTimeoutMs));
 | 
| -      EXPECT_EQ(3u, num_initializations_)
 | 
| +      EXPECT_EQ(2u, num_initializations_)
 | 
|            << "ReconfigureVideoEncoder did not reinitialize the encoder with "
 | 
|               "new encoder settings.";
 | 
|      }
 | 
| @@ -1945,12 +1937,7 @@ class VideoCodecConfigObserver : public test::SendTest,
 | 
|      EXPECT_EQ(video_codec_type_, config->codecType);
 | 
|      VerifyCodecSpecifics(*config);
 | 
|      ++num_initializations_;
 | 
| -    if (num_initializations_ > 1) {
 | 
| -      // Skip the first two InitEncode events: one with QCIF resolution when
 | 
| -      // the SendStream is created, the other with QVGA when the first frame is
 | 
| -      // encoded.
 | 
| -      init_encode_event_.Set();
 | 
| -    }
 | 
| +    init_encode_event_.Set();
 | 
|      return FakeEncoder::InitEncode(config, number_of_cores, max_payload_size);
 | 
|    }
 | 
|  
 | 
| @@ -1961,14 +1948,14 @@ class VideoCodecConfigObserver : public test::SendTest,
 | 
|    void PerformTest() override {
 | 
|      EXPECT_TRUE(
 | 
|          init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
 | 
| -    ASSERT_EQ(2u, num_initializations_) << "VideoEncoder not initialized.";
 | 
| +    ASSERT_EQ(1u, num_initializations_) << "VideoEncoder not initialized.";
 | 
|  
 | 
|      encoder_settings_.frameDroppingOn = true;
 | 
|      encoder_config_.encoder_specific_settings = GetEncoderSpecificSettings();
 | 
|      stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
 | 
|      ASSERT_TRUE(
 | 
|          init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
 | 
| -    EXPECT_EQ(3u, num_initializations_)
 | 
| +    EXPECT_EQ(2u, num_initializations_)
 | 
|          << "ReconfigureVideoEncoder did not reinitialize the encoder with "
 | 
|             "new encoder settings.";
 | 
|    }
 | 
| @@ -2215,8 +2202,7 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
 | 
|                         size_t maxPayloadSize) override {
 | 
|        EXPECT_GE(codecSettings->startBitrate, codecSettings->minBitrate);
 | 
|        EXPECT_LE(codecSettings->startBitrate, codecSettings->maxBitrate);
 | 
| -      // First reinitialization happens due to that the frame size is updated.
 | 
| -      if (num_initializations_ == 0 || num_initializations_ == 1) {
 | 
| +      if (num_initializations_ == 0) {
 | 
|          EXPECT_EQ(static_cast<unsigned int>(kMinBitrateKbps),
 | 
|                    codecSettings->minBitrate);
 | 
|          EXPECT_EQ(static_cast<unsigned int>(kStartBitrateKbps),
 | 
| @@ -2224,14 +2210,14 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
 | 
|          EXPECT_EQ(static_cast<unsigned int>(kMaxBitrateKbps),
 | 
|                    codecSettings->maxBitrate);
 | 
|          observation_complete_.Set();
 | 
| -      } else if (num_initializations_ == 2) {
 | 
| +      } else if (num_initializations_ == 1) {
 | 
|          EXPECT_EQ(static_cast<unsigned int>(kLowerMaxBitrateKbps),
 | 
|                    codecSettings->maxBitrate);
 | 
|          // The start bitrate should be kept (-1) and capped to the max bitrate.
 | 
|          // Since this is not an end-to-end call no receiver should have been
 | 
|          // returning a REMB that could lower this estimate.
 | 
|          EXPECT_EQ(codecSettings->startBitrate, codecSettings->maxBitrate);
 | 
| -      } else if (num_initializations_ == 3) {
 | 
| +      } else if (num_initializations_ == 2) {
 | 
|          EXPECT_EQ(static_cast<unsigned int>(kIncreasedMaxBitrateKbps),
 | 
|                    codecSettings->maxBitrate);
 | 
|          // The start bitrate will be whatever the rate BitRateController
 | 
| @@ -2239,9 +2225,8 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
 | 
|          // bitrate.
 | 
|        }
 | 
|        ++num_initializations_;
 | 
| -      if (num_initializations_ > 1) {
 | 
| -        init_encode_event_.Set();
 | 
| -      }
 | 
| +      init_encode_event_.Set();
 | 
| +
 | 
|        return FakeEncoder::InitEncode(codecSettings, numberOfCores,
 | 
|                                       maxPayloadSize);
 | 
|      }
 | 
| @@ -2334,7 +2319,7 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
 | 
|        send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy());
 | 
|        ASSERT_TRUE(
 | 
|            init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
 | 
| -      EXPECT_EQ(3, num_initializations_)
 | 
| +      EXPECT_EQ(2, num_initializations_)
 | 
|            << "Encoder should have been reconfigured with the new value.";
 | 
|        WaitForSetRates(kLowerMaxBitrateKbps);
 | 
|  
 | 
| @@ -2342,7 +2327,7 @@ TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
 | 
|        send_stream_->ReconfigureVideoEncoder(encoder_config_.Copy());
 | 
|        ASSERT_TRUE(
 | 
|            init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
 | 
| -      EXPECT_EQ(4, num_initializations_)
 | 
| +      EXPECT_EQ(3, num_initializations_)
 | 
|            << "Encoder should have been reconfigured with the new value.";
 | 
|        // Expected target bitrate is the start bitrate set in the call to
 | 
|        // call_->SetBitrateConfig.
 | 
| 
 |