Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(925)

Unified Diff: media/cast/test/end2end_unittest.cc

Issue 339743002: Cast: Make vp8 3-buffer mode work (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge, fix, cleanup, rince, repeat Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« media/cast/sender/vp8_encoder.cc ('K') | « media/cast/sender/vp8_encoder.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/test/end2end_unittest.cc
diff --git a/media/cast/test/end2end_unittest.cc b/media/cast/test/end2end_unittest.cc
index 4760a7cacb3c9891d830278cf703322ce94eeb6b..681d582086946aae61d54a698cfc41cec007bdd9 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());
}
« media/cast/sender/vp8_encoder.cc ('K') | « media/cast/sender/vp8_encoder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698