Index: talk/media/webrtc/webrtcvideoengine2_unittest.cc |
diff --git a/talk/media/webrtc/webrtcvideoengine2_unittest.cc b/talk/media/webrtc/webrtcvideoengine2_unittest.cc |
index e3e21dd39f4daea172a92551517491f868fa0488..5c17955584289ee1790d7ef650b647847c6d47c4 100644 |
--- a/talk/media/webrtc/webrtcvideoengine2_unittest.cc |
+++ b/talk/media/webrtc/webrtcvideoengine2_unittest.cc |
@@ -372,6 +372,7 @@ TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { |
EXPECT_TRUE( |
channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
+ ASSERT_TRUE(encoder_factory.WaitForCreatedVideoEncoder()); |
ASSERT_EQ(1u, encoder_factory.encoders().size()); |
EXPECT_TRUE(channel->SetSend(true)); |
@@ -380,11 +381,14 @@ TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { |
EXPECT_EQ(cricket::CS_RUNNING, |
capturer.Start(capturer.GetSupportedFormats()->front())); |
EXPECT_TRUE(capturer.CaptureFrame()); |
+ |
+ // Sending one frame will have reallocated the encoder since input size |
+ // changes from a small default to the actual frame width/height. Wait for |
+ // that to happen then for the frame to be sent. |
+ ASSERT_TRUE(encoder_factory.WaitForCreatedVideoEncoder()); |
EXPECT_TRUE_WAIT(encoder_factory.encoders()[0]->GetNumEncodedFrames() > 0, |
kTimeout); |
- // Sending one frame will have reallocated the encoder since input size |
- // changes from a small default to the actual frame width/height. |
int num_created_encoders = encoder_factory.GetNumCreatedEncoders(); |
EXPECT_EQ(num_created_encoders, 2); |
@@ -578,12 +582,14 @@ TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { |
capturer.Start(capturer.GetSupportedFormats()->front())); |
EXPECT_TRUE(capturer.CaptureFrame()); |
- EXPECT_GT(encoder_factory.encoders().size(), 1u); |
+ while (encoder_factory.encoders().size() <= 1) |
+ ASSERT_TRUE(encoder_factory.WaitForCreatedVideoEncoder()); |
// Verify that encoders are configured for simulcast through adapter |
// (increasing resolution and only configured to send one stream each). |
int prev_width = -1; |
for (size_t i = 0; i < encoder_factory.encoders().size(); ++i) { |
+ ASSERT_TRUE(encoder_factory.encoders()[i]->WaitForInitEncode()); |
webrtc::VideoCodec codec_settings = |
encoder_factory.encoders()[i]->GetCodecSettings(); |
EXPECT_EQ(0, codec_settings.numberOfSimulcastStreams); |
@@ -659,7 +665,10 @@ TEST_F(WebRtcVideoEngine2Test, |
capturer.Start(capturer.GetSupportedFormats()->front())); |
EXPECT_TRUE(capturer.CaptureFrame()); |
- ASSERT_GT(encoder_factory.encoders().size(), 1u); |
+ while (encoder_factory.encoders().size() <= 1) |
+ ASSERT_TRUE(encoder_factory.WaitForCreatedVideoEncoder()); |
+ |
+ ASSERT_TRUE(encoder_factory.encoders()[0]->WaitForInitEncode()); |
EXPECT_EQ(webrtc::kVideoCodecVP8, |
encoder_factory.encoders()[0]->GetCodecSettings().codecType); |
@@ -683,6 +692,7 @@ TEST_F(WebRtcVideoEngine2Test, |
EXPECT_TRUE( |
channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
ASSERT_EQ(1u, encoder_factory.encoders().size()); |
+ ASSERT_TRUE(encoder_factory.encoders()[0]->WaitForInitEncode()); |
EXPECT_EQ(webrtc::kVideoCodecH264, |
encoder_factory.encoders()[0]->GetCodecSettings().codecType); |
@@ -710,6 +720,7 @@ TEST_F(WebRtcVideoEngine2Test, SimulcastDisabledForH264) { |
EXPECT_TRUE(channel->SetSendStreamFormat(ssrcs[0], format)); |
ASSERT_EQ(1u, encoder_factory.encoders().size()); |
FakeWebRtcVideoEncoder* encoder = encoder_factory.encoders()[0]; |
+ ASSERT_TRUE(encoder_factory.encoders()[0]->WaitForInitEncode()); |
EXPECT_EQ(webrtc::kVideoCodecH264, encoder->GetCodecSettings().codecType); |
EXPECT_EQ(1u, encoder->GetCodecSettings().numberOfSimulcastStreams); |
} |