| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |    2  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 
|    3  * |    3  * | 
|    4  *  Use of this source code is governed by a BSD-style license |    4  *  Use of this source code is governed by a BSD-style license | 
|    5  *  that can be found in the LICENSE file in the root of the source |    5  *  that can be found in the LICENSE file in the root of the source | 
|    6  *  tree. An additional intellectual property rights grant can be found |    6  *  tree. An additional intellectual property rights grant can be found | 
|    7  *  in the file PATENTS.  All contributing project authors may |    7  *  in the file PATENTS.  All contributing project authors may | 
|    8  *  be found in the AUTHORS file in the root of the source tree. |    8  *  be found in the AUTHORS file in the root of the source tree. | 
|    9  */ |    9  */ | 
|   10  |   10  | 
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  279   video_source_.IncomingCapturedFrame(CreateFrame(3, nullptr)); |  279   video_source_.IncomingCapturedFrame(CreateFrame(3, nullptr)); | 
|  280   fake_encoder_.ContinueEncode(); |  280   fake_encoder_.ContinueEncode(); | 
|  281   sink_.WaitForEncodedFrame(3); |  281   sink_.WaitForEncodedFrame(3); | 
|  282  |  282  | 
|  283   vie_encoder_->Stop(); |  283   vie_encoder_->Stop(); | 
|  284 } |  284 } | 
|  285  |  285  | 
|  286 TEST_F(ViEEncoderTest, ConfigureEncoderTriggersOnEncoderConfigurationChanged) { |  286 TEST_F(ViEEncoderTest, ConfigureEncoderTriggersOnEncoderConfigurationChanged) { | 
|  287   const int kTargetBitrateBps = 100000; |  287   const int kTargetBitrateBps = 100000; | 
|  288   vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |  288   vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); | 
|  289   EXPECT_EQ(0, sink_.number_of_reconfigurations()); |  | 
|  290  |  289  | 
|  291   // Capture a frame and wait for it to synchronize with the encoder thread. |  290   // Capture a frame and wait for it to synchronize with the encoder thread. | 
|  292   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |  291   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr)); | 
|  293   sink_.WaitForEncodedFrame(1); |  292   sink_.WaitForEncodedFrame(1); | 
|  294   // The encoder will have been configured once when the first frame is |  293   // The encoder will have been configured twice. First time before the first | 
|  295   // received. |  294   // frame has been received. Then a second time when the resolution is known. | 
|  296   EXPECT_EQ(1, sink_.number_of_reconfigurations()); |  295   EXPECT_EQ(2, sink_.number_of_reconfigurations()); | 
|  297  |  296  | 
|  298   VideoEncoderConfig video_encoder_config; |  297   VideoEncoderConfig video_encoder_config; | 
|  299   test::FillEncoderConfiguration(1, &video_encoder_config); |  298   test::FillEncoderConfiguration(1, &video_encoder_config); | 
|  300   video_encoder_config.min_transmit_bitrate_bps = 9999; |  299   video_encoder_config.min_transmit_bitrate_bps = 9999; | 
|  301   vie_encoder_->ConfigureEncoder(std::move(video_encoder_config), 1440); |  300   vie_encoder_->ConfigureEncoder(std::move(video_encoder_config), 1440); | 
|  302  |  301  | 
|  303   // Capture a frame and wait for it to synchronize with the encoder thread. |  302   // Capture a frame and wait for it to synchronize with the encoder thread. | 
|  304   video_source_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |  303   video_source_.IncomingCapturedFrame(CreateFrame(2, nullptr)); | 
|  305   sink_.WaitForEncodedFrame(2); |  304   sink_.WaitForEncodedFrame(2); | 
|  306   EXPECT_EQ(2, sink_.number_of_reconfigurations()); |  305   EXPECT_EQ(3, sink_.number_of_reconfigurations()); | 
|  307   EXPECT_EQ(9999, sink_.last_min_transmit_bitrate()); |  306   EXPECT_EQ(9999, sink_.last_min_transmit_bitrate()); | 
|  308  |  307  | 
|  309   vie_encoder_->Stop(); |  308   vie_encoder_->Stop(); | 
|  310 } |  309 } | 
|  311  |  310  | 
|  312 TEST_F(ViEEncoderTest, FrameResolutionChangeReconfigureEncoder) { |  311 TEST_F(ViEEncoderTest, FrameResolutionChangeReconfigureEncoder) { | 
|  313   const int kTargetBitrateBps = 100000; |  312   const int kTargetBitrateBps = 100000; | 
|  314   vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |  313   vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); | 
|  315  |  314  | 
|  316   // Capture a frame and wait for it to synchronize with the encoder thread. |  315   // Capture a frame and wait for it to synchronize with the encoder thread. | 
|  317   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |  316   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr)); | 
|  318   sink_.WaitForEncodedFrame(1); |  317   sink_.WaitForEncodedFrame(1); | 
|  319   // The encoder will have been configured once. |  318   // The encoder will have been configured twice. First time before the first | 
|  320   EXPECT_EQ(1, sink_.number_of_reconfigurations()); |  319   // frame has been received. Then a second time when the resolution is known. | 
 |  320   EXPECT_EQ(2, sink_.number_of_reconfigurations()); | 
|  321   EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width); |  321   EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width); | 
|  322   EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height); |  322   EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height); | 
|  323  |  323  | 
|  324   codec_width_ *= 2; |  324   codec_width_ *= 2; | 
|  325   codec_height_ *= 2; |  325   codec_height_ *= 2; | 
|  326   // Capture a frame with a higher resolution and wait for it to synchronize |  326   // Capture a frame with a higher resolution and wait for it to synchronize | 
|  327   // with the encoder thread. |  327   // with the encoder thread. | 
|  328   video_source_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |  328   video_source_.IncomingCapturedFrame(CreateFrame(2, nullptr)); | 
|  329   sink_.WaitForEncodedFrame(2); |  329   sink_.WaitForEncodedFrame(2); | 
|  330   EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width); |  330   EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width); | 
|  331   EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height); |  331   EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height); | 
|  332   EXPECT_EQ(2, sink_.number_of_reconfigurations()); |  332   EXPECT_EQ(3, sink_.number_of_reconfigurations()); | 
|  333  |  333  | 
|  334   vie_encoder_->Stop(); |  334   vie_encoder_->Stop(); | 
|  335 } |  335 } | 
|  336  |  336  | 
|  337 }  // namespace webrtc |  337 }  // namespace webrtc | 
| OLD | NEW |