Chromium Code Reviews| Index: webrtc/video/vie_encoder_unittest.cc |
| diff --git a/webrtc/video/vie_encoder_unittest.cc b/webrtc/video/vie_encoder_unittest.cc |
| index 698dd3a54088b8873a2473ca69707adf1664c632..835f48f43ca0db486f88187716135159068fa746 100644 |
| --- a/webrtc/video/vie_encoder_unittest.cc |
| +++ b/webrtc/video/vie_encoder_unittest.cc |
| @@ -12,6 +12,7 @@ |
| #include "webrtc/base/logging.h" |
| #include "webrtc/test/encoder_settings.h" |
| #include "webrtc/test/fake_encoder.h" |
| +#include "webrtc/test/frame_generator.h" |
| #include "webrtc/video/send_statistics_proxy.h" |
| #include "webrtc/video/vie_encoder.h" |
| @@ -42,6 +43,7 @@ class ViEEncoderTest : public ::testing::Test { |
| video_send_config_.encoder_settings, nullptr /* pre_encode_callback */, |
| nullptr /* overuse_callback */, nullptr /* encoder_timing */)); |
| vie_encoder_->SetSink(&sink_); |
| + vie_encoder_->SetSource(&forwarder_); |
| vie_encoder_->SetStartBitrate(10000); |
| vie_encoder_->ConfigureEncoder(video_encoder_config_, 1440); |
| } |
| @@ -164,6 +166,7 @@ class ViEEncoderTest : public ::testing::Test { |
| TestEncoder fake_encoder_; |
| SendStatisticsProxy stats_proxy_; |
| TestSink sink_; |
| + test::FrameForwarder forwarder_; |
| std::unique_ptr<ViEEncoder> vie_encoder_; |
| }; |
| @@ -171,7 +174,7 @@ TEST_F(ViEEncoderTest, EncodeOneFrame) { |
| const int kTargetBitrateBps = 100000; |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| rtc::Event frame_destroyed_event(false, false); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, &frame_destroyed_event)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, &frame_destroyed_event)); |
| sink_.WaitForEncodedFrame(1); |
| frame_destroyed_event.Wait(kDefaultTimeoutMs); |
| vie_encoder_->Stop(); |
| @@ -180,13 +183,13 @@ TEST_F(ViEEncoderTest, EncodeOneFrame) { |
| TEST_F(ViEEncoderTest, DropsFramesBeforeFirstOnBitrateUpdated) { |
| // Dropped since no target bitrate has been set. |
| rtc::Event frame_destroyed_event(false, false); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, &frame_destroyed_event)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, &frame_destroyed_event)); |
| frame_destroyed_event.Wait(kDefaultTimeoutMs); |
| const int kTargetBitrateBps = 100000; |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| sink_.WaitForEncodedFrame(2); |
| vie_encoder_->Stop(); |
| } |
| @@ -194,15 +197,16 @@ TEST_F(ViEEncoderTest, DropsFramesBeforeFirstOnBitrateUpdated) { |
| TEST_F(ViEEncoderTest, DropsFramesWhenRateSetToZero) { |
| const int kTargetBitrateBps = 100000; |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| sink_.WaitForEncodedFrame(1); |
| vie_encoder_->OnBitrateUpdated(0, 0, 0); |
| // Dropped since bitrate is zero. |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |
|
stefan-webrtc
2016/09/06 12:24:38
The test is changed here. Can you comment on why?
perkj_webrtc
2016/09/07 15:10:37
oops. Thanks- its a mistake.
|
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(3, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(3, nullptr)); |
| sink_.WaitForEncodedFrame(3); |
| vie_encoder_->Stop(); |
| } |
| @@ -210,13 +214,13 @@ TEST_F(ViEEncoderTest, DropsFramesWhenRateSetToZero) { |
| TEST_F(ViEEncoderTest, DropsFramesWithSameOrOldNtpTimestamp) { |
| const int kTargetBitrateBps = 100000; |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| sink_.WaitForEncodedFrame(1); |
| // This frame will be dropped since it has the same ntp timestamp. |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| sink_.WaitForEncodedFrame(2); |
| vie_encoder_->Stop(); |
| } |
| @@ -225,13 +229,13 @@ TEST_F(ViEEncoderTest, DropsFrameAfterStop) { |
| const int kTargetBitrateBps = 100000; |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| sink_.WaitForEncodedFrame(1); |
| vie_encoder_->Stop(); |
| sink_.SetExpectNoFrames(); |
| rtc::Event frame_destroyed_event(false, false); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(2, &frame_destroyed_event)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |
|
perkj_webrtc
2016/09/07 15:10:37
I also noticed this mistake that passed the unitte
|
| frame_destroyed_event.Wait(kDefaultTimeoutMs); |
| } |
| @@ -240,12 +244,12 @@ TEST_F(ViEEncoderTest, DropsPendingFramesOnSlowEncode) { |
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| fake_encoder_.BlockNextEncode(); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(1, nullptr)); |
| sink_.WaitForEncodedFrame(1); |
| // Here, the encoder thread will be blocked in the TestEncoder waiting for a |
| // call to ContinueEncode. |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| - vie_encoder_->IncomingCapturedFrame(CreateFrame(3, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(2, nullptr)); |
| + forwarder_.IncomingCapturedFrame(CreateFrame(3, nullptr)); |
| fake_encoder_.ContinueEncode(); |
| sink_.WaitForEncodedFrame(3); |