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

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

Issue 560223002: [Cast] Limit frames in flight by duration, and not by number of frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed auto-eviction from PacketStorage, since that should never happen. Created 6 years, 3 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/video_sender.cc ('K') | « media/cast/sender/video_sender.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 a0a7d1e047c900a4fd133997e380957c8190c6ec..a80912a900afd3555fb16dd744b661018657deea 100644
--- a/media/cast/test/end2end_unittest.cc
+++ b/media/cast/test/end2end_unittest.cc
@@ -1398,6 +1398,32 @@ TEST_F(End2EndTest, EvilNetwork) {
base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
EXPECT_GT(video_ticks_.size(), 100ul);
+ VLOG(1) << "Fully transmitted " << video_ticks_.size()
+ << " out of 10000 frames.";
+ EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
+}
+
+// Tests that a system configured for 30 FPS drops frames when input is provided
+// at a much higher frame rate.
+TEST_F(End2EndTest, ShoveHighFrameRateDownYerThroat) {
+ Configure(CODEC_VIDEO_FAKE, CODEC_AUDIO_PCM16, 32000,
+ 1);
+ receiver_to_sender_.SetPacketPipe(test::EvilNetwork().Pass());
+ sender_to_receiver_.SetPacketPipe(test::EvilNetwork().Pass());
+ Create();
+ StartBasicPlayer();
+
+ int frames_counter = 0;
+ for (; frames_counter < 10000; ++frames_counter) {
+ SendFakeVideoFrame(testing_clock_sender_->NowTicks());
+ RunTasks(10 /* 10 ms, but 33.3 expected by system */);
+ }
+ base::TimeTicks test_end = testing_clock_receiver_->NowTicks();
+ RunTasks(100 * kFrameTimerMs + 1); // Empty the pipeline.
+ EXPECT_LT(100ul, video_ticks_.size());
+ EXPECT_GE(3334ul, video_ticks_.size());
+ VLOG(1) << "Fully transmitted " << video_ticks_.size()
+ << " out of 10000 frames.";
EXPECT_LT((video_ticks_.back().second - test_end).InMilliseconds(), 1000);
}
« media/cast/sender/video_sender.cc ('K') | « media/cast/sender/video_sender.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698