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

Side by Side Diff: media/cast/test/cast_benchmarks.cc

Issue 2133903002: RELAND: Merge VideoSenderConfig and AudioSenderConfig. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disabled two unittests. Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « media/cast/sender/vp8_quantizer_parser_unittest.cc ('k') | media/cast/test/end2end_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This program benchmarks the theoretical throughput of the cast library. 5 // This program benchmarks the theoretical throughput of the cast library.
6 // It runs using a fake clock, simulated network and fake codecs. This allows 6 // It runs using a fake clock, simulated network and fake codecs. This allows
7 // tests to run much faster than real time. 7 // tests to run much faster than real time.
8 // To run the program, run: 8 // To run the program, run:
9 // $ ./out/Release/cast_benchmarks | tee benchmarkoutput.asc 9 // $ ./out/Release/cast_benchmarks | tee benchmarkoutput.asc
10 // This may take a while, when it is done, you can view the data with 10 // This may take a while, when it is done, you can view the data with
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); 251 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
252 video_sender_config_.max_bitrate = 4000000; 252 video_sender_config_.max_bitrate = 4000000;
253 video_sender_config_.min_bitrate = 4000000; 253 video_sender_config_.min_bitrate = 4000000;
254 video_sender_config_.start_bitrate = 4000000; 254 video_sender_config_.start_bitrate = 4000000;
255 video_sender_config_.codec = video_codec; 255 video_sender_config_.codec = video_codec;
256 256
257 video_receiver_config_ = GetDefaultVideoReceiverConfig(); 257 video_receiver_config_ = GetDefaultVideoReceiverConfig();
258 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; 258 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs;
259 video_receiver_config_.codec = video_codec; 259 video_receiver_config_.codec = video_codec;
260 260
261 frame_duration_ = base::TimeDelta::FromSeconds(1) / 261 DCHECK_GT(video_sender_config_.max_frame_rate, 0);
262 video_sender_config_.max_frame_rate; 262 frame_duration_ = base::TimeDelta::FromSecondsD(
263 1.0 / video_sender_config_.max_frame_rate);
263 } 264 }
264 265
265 void SetSenderClockSkew(double skew, base::TimeDelta offset) { 266 void SetSenderClockSkew(double skew, base::TimeDelta offset) {
266 testing_clock_sender_->SetSkew(skew, offset); 267 testing_clock_sender_->SetSkew(skew, offset);
267 task_runner_sender_->SetSkew(1.0 / skew); 268 task_runner_sender_->SetSkew(1.0 / skew);
268 } 269 }
269 270
270 void SetReceiverClockSkew(double skew, base::TimeDelta offset) { 271 void SetReceiverClockSkew(double skew, base::TimeDelta offset) {
271 testing_clock_receiver_->SetSkew(skew, offset); 272 testing_clock_receiver_->SetSkew(skew, offset);
272 task_runner_receiver_->SetSkew(1.0 / skew); 273 task_runner_receiver_->SetSkew(1.0 / skew);
273 } 274 }
274 275
275 void Create(const MeasuringPoint& p); 276 void Create(const MeasuringPoint& p);
276 277
277 void ReceivePacket(std::unique_ptr<Packet> packet) { 278 void ReceivePacket(std::unique_ptr<Packet> packet) {
278 cast_receiver_->ReceivePacket(std::move(packet)); 279 cast_receiver_->ReceivePacket(std::move(packet));
279 } 280 }
280 281
281 virtual ~RunOneBenchmark() { 282 virtual ~RunOneBenchmark() {
282 cast_sender_.reset(); 283 cast_sender_.reset();
283 cast_receiver_.reset(); 284 cast_receiver_.reset();
284 task_runner_->RunTasks(); 285 task_runner_->RunTasks();
285 } 286 }
286 287
287 base::TimeDelta VideoTimestamp(int frame_number) { 288 base::TimeDelta VideoTimestamp(int frame_number) {
288 return (frame_number * base::TimeDelta::FromSeconds(1)) / 289 return frame_number * base::TimeDelta::FromSecondsD(
289 video_sender_config_.max_frame_rate; 290 1.0 / video_sender_config_.max_frame_rate);
290 } 291 }
291 292
292 void SendFakeVideoFrame() { 293 void SendFakeVideoFrame() {
293 // NB: Blackframe with timestamp 294 // NB: Blackframe with timestamp
294 cast_sender_->video_frame_input()->InsertRawVideoFrame( 295 cast_sender_->video_frame_input()->InsertRawVideoFrame(
295 media::VideoFrame::CreateColorFrame(gfx::Size(2, 2), 296 media::VideoFrame::CreateColorFrame(gfx::Size(2, 2),
296 0x00, 0x80, 0x80, VideoTimestamp(frames_sent_)), 297 0x00, 0x80, 0x80, VideoTimestamp(frames_sent_)),
297 testing_clock_sender_->NowTicks()); 298 testing_clock_sender_->NowTicks());
298 frames_sent_++; 299 frames_sent_++;
299 } 300 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 404
404 bool SimpleGood() { 405 bool SimpleGood() {
405 return frames_lost() <= 1 && late_frames() <= 1 && 406 return frames_lost() <= 1 && late_frames() <= 1 &&
406 video_bandwidth() > desired_video_bitrate() * 0.8 && 407 video_bandwidth() > desired_video_bitrate() * 0.8 &&
407 video_bandwidth() < desired_video_bitrate() * 1.2; 408 video_bandwidth() < desired_video_bitrate() * 1.2;
408 } 409 }
409 410
410 private: 411 private:
411 FrameReceiverConfig audio_receiver_config_; 412 FrameReceiverConfig audio_receiver_config_;
412 FrameReceiverConfig video_receiver_config_; 413 FrameReceiverConfig video_receiver_config_;
413 AudioSenderConfig audio_sender_config_; 414 FrameSenderConfig audio_sender_config_;
414 VideoSenderConfig video_sender_config_; 415 FrameSenderConfig video_sender_config_;
415 416
416 base::TimeTicks start_time_; 417 base::TimeTicks start_time_;
417 418
418 // These run in "test time" 419 // These run in "test time"
419 base::SimpleTestTickClock testing_clock_; 420 base::SimpleTestTickClock testing_clock_;
420 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; 421 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_;
421 422
422 // These run on the sender timeline. 423 // These run on the sender timeline.
423 test::SkewedTickClock* testing_clock_sender_; 424 test::SkewedTickClock* testing_clock_sender_;
424 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_; 425 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_;
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 media::cast::CastBenchmark benchmark; 728 media::cast::CastBenchmark benchmark;
728 if (getenv("PROFILE_FILE")) { 729 if (getenv("PROFILE_FILE")) {
729 std::string profile_file(getenv("PROFILE_FILE")); 730 std::string profile_file(getenv("PROFILE_FILE"));
730 base::debug::StartProfiling(profile_file); 731 base::debug::StartProfiling(profile_file);
731 benchmark.Run(); 732 benchmark.Run();
732 base::debug::StopProfiling(); 733 base::debug::StopProfiling();
733 } else { 734 } else {
734 benchmark.Run(); 735 benchmark.Run();
735 } 736 }
736 } 737 }
OLDNEW
« no previous file with comments | « media/cast/sender/vp8_quantizer_parser_unittest.cc ('k') | media/cast/test/end2end_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698