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); |