| Index: media/cast/test/end2end_unittest.cc
|
| diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
|
| index bb8b62d791fd2f297c49af45e8e2c9b1ffaddbca..f26a1e0e8dd18d711739f52fceef5a3d10d12564 100644
|
| --- a/media/cast/test/end2end_unittest.cc
|
| +++ b/media/cast/test/end2end_unittest.cc
|
| @@ -210,7 +210,7 @@ class LoopBackTransport : public PacketSender {
|
| const base::Closure& cb) OVERRIDE {
|
| DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
|
| if (!send_packets_)
|
| - return false;
|
| + return true;
|
|
|
| bytes_sent_ += packet->data.size();
|
| if (drop_packets_belonging_to_odd_frames_) {
|
| @@ -405,7 +405,9 @@ class TestReceiverVideoCallback
|
| VideoFrame::I420, size, gfx::Rect(size), size, base::TimeDelta());
|
| PopulateVideoFrame(expected_I420_frame, expected_video_frame.start_value);
|
|
|
| - EXPECT_GE(I420PSNR(expected_I420_frame, video_frame), kVideoAcceptedPSNR);
|
| + if (expected_video_frame.should_be_continuous) {
|
| + EXPECT_GE(I420PSNR(expected_I420_frame, video_frame), kVideoAcceptedPSNR);
|
| + }
|
|
|
| EXPECT_NEAR(
|
| (playout_time - expected_video_frame.playout_time).InMillisecondsF(),
|
| @@ -987,79 +989,12 @@ TEST_F(End2EndTest, DISABLED_StartSenderBeforeReceiver) {
|
| EXPECT_EQ(10, test_receiver_video_callback_->number_times_called());
|
| }
|
|
|
| -// This tests a network glitch lasting for 10 video frames.
|
| -// Flaky. See crbug.com/351596.
|
| -TEST_F(End2EndTest, DISABLED_GlitchWith3Buffers) {
|
| - Configure(CODEC_VIDEO_VP8, CODEC_AUDIO_OPUS,
|
| - kDefaultAudioSamplingRate, 3);
|
| - video_sender_config_.target_playout_delay =
|
| - base::TimeDelta::FromMilliseconds(67);
|
| - video_receiver_config_.rtp_max_delay_ms = 67;
|
| - Create();
|
| -
|
| - int video_start = kVideoStart;
|
| - base::TimeTicks capture_time;
|
| - // Frames will rendered on completion until the render time stabilizes, i.e.
|
| - // we got enough data.
|
| - const int frames_before_glitch = 20;
|
| - for (int i = 0; i < frames_before_glitch; ++i) {
|
| - capture_time = testing_clock_sender_->NowTicks();
|
| - SendVideoFrame(video_start, capture_time);
|
| - test_receiver_video_callback_->AddExpectedResult(
|
| - video_start,
|
| - video_sender_config_.width,
|
| - video_sender_config_.height,
|
| - capture_time + base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
|
| - true);
|
| - cast_receiver_->RequestDecodedVideoFrame(
|
| - base::Bind(&TestReceiverVideoCallback::CheckVideoFrame,
|
| - test_receiver_video_callback_));
|
| - RunTasks(kFrameTimerMs);
|
| - video_start++;
|
| - }
|
| -
|
| - // Introduce a glitch lasting for 10 frames.
|
| - sender_to_receiver_.SetSendPackets(false);
|
| - for (int i = 0; i < 10; ++i) {
|
| - capture_time = testing_clock_sender_->NowTicks();
|
| - // First 3 will be sent and lost.
|
| - SendVideoFrame(video_start, capture_time);
|
| - RunTasks(kFrameTimerMs);
|
| - video_start++;
|
| - }
|
| - sender_to_receiver_.SetSendPackets(true);
|
| - RunTasks(100);
|
| - capture_time = testing_clock_sender_->NowTicks();
|
| -
|
| - // Frame 1 should be acked by now and we should have an opening to send 4.
|
| - SendVideoFrame(video_start, capture_time);
|
| - RunTasks(kFrameTimerMs);
|
| -
|
| - // Frames 1-3 are old frames by now, and therefore should be decoded, but
|
| - // not rendered. The next frame we expect to render is frame #4.
|
| - test_receiver_video_callback_->AddExpectedResult(
|
| - video_start,
|
| - video_sender_config_.width,
|
| - video_sender_config_.height,
|
| - capture_time + base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
|
| - true);
|
| -
|
| - cast_receiver_->RequestDecodedVideoFrame(
|
| - base::Bind(&TestReceiverVideoCallback::CheckVideoFrame,
|
| - test_receiver_video_callback_));
|
| -
|
| - RunTasks(2 * kFrameTimerMs + 1); // Empty the receiver pipeline.
|
| - EXPECT_EQ(frames_before_glitch + 1,
|
| - test_receiver_video_callback_->number_times_called());
|
| -}
|
| -
|
| -// Disabled due to flakiness and crashiness. http://crbug.com/360951
|
| -TEST_F(End2EndTest, DISABLED_DropEveryOtherFrame3Buffers) {
|
| - Configure(CODEC_VIDEO_VP8, CODEC_AUDIO_OPUS,
|
| - kDefaultAudioSamplingRate, 3);
|
| +TEST_F(End2EndTest, DropEveryOtherFrame3Buffers) {
|
| + Configure(CODEC_VIDEO_VP8, CODEC_AUDIO_OPUS, kDefaultAudioSamplingRate, 3);
|
| + int target_delay = 300;
|
| video_sender_config_.target_playout_delay =
|
| - base::TimeDelta::FromMilliseconds(67);
|
| - video_receiver_config_.rtp_max_delay_ms = 67;
|
| + base::TimeDelta::FromMilliseconds(target_delay);
|
| + video_receiver_config_.rtp_max_delay_ms = target_delay;
|
| Create();
|
| sender_to_receiver_.DropAllPacketsBelongingToOddFrames();
|
|
|
| @@ -1077,7 +1012,7 @@ TEST_F(End2EndTest, DISABLED_DropEveryOtherFrame3Buffers) {
|
| video_sender_config_.width,
|
| video_sender_config_.height,
|
| capture_time +
|
| - base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs),
|
| + base::TimeDelta::FromMilliseconds(target_delay),
|
| i == 0);
|
|
|
| // GetRawVideoFrame will not return the frame until we are close in
|
| @@ -1090,7 +1025,7 @@ TEST_F(End2EndTest, DISABLED_DropEveryOtherFrame3Buffers) {
|
| video_start++;
|
| }
|
|
|
| - RunTasks(2 * kFrameTimerMs + 1); // Empty the pipeline.
|
| + RunTasks(2 * kFrameTimerMs + target_delay); // Empty the pipeline.
|
| EXPECT_EQ(i / 2, test_receiver_video_callback_->number_times_called());
|
| }
|
|
|
|
|