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

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

Issue 2113783002: Refactoring: Merge VideoSenderConfig and AudioSenderConfig. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 audio_receiver_config_.rtp_max_delay_ms = 243 audio_receiver_config_.rtp_max_delay_ms =
244 audio_sender_config_.max_playout_delay.InMicroseconds(); 244 audio_sender_config_.max_playout_delay.InMicroseconds();
245 audio_receiver_config_.codec = audio_codec; 245 audio_receiver_config_.codec = audio_codec;
246 246
247 video_sender_config_ = GetDefaultVideoSenderConfig(); 247 video_sender_config_ = GetDefaultVideoSenderConfig();
248 video_sender_config_.min_playout_delay = 248 video_sender_config_.min_playout_delay =
249 video_sender_config_.max_playout_delay = 249 video_sender_config_.max_playout_delay =
250 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); 250 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs);
251 video_sender_config_.max_bitrate = 4000000; 251 video_sender_config_.max_bitrate = 4000000;
252 video_sender_config_.min_bitrate = 4000000; 252 video_sender_config_.min_bitrate = 4000000;
253 video_sender_config_.start_bitrate = 4000000; 253 video_sender_config_.codec_specific_params.start_bitrate = 4000000;
254 video_sender_config_.codec = video_codec; 254 video_sender_config_.codec = video_codec;
255 255
256 video_receiver_config_ = GetDefaultVideoReceiverConfig(); 256 video_receiver_config_ = GetDefaultVideoReceiverConfig();
257 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; 257 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs;
258 video_receiver_config_.codec = video_codec; 258 video_receiver_config_.codec = video_codec;
259 259
260 frame_duration_ = base::TimeDelta::FromSeconds(1) / 260 DCHECK_GT(video_sender_config_.max_frame_rate, 0);
261 video_sender_config_.max_frame_rate; 261 frame_duration_ =
262 base::TimeDelta::FromSeconds(1) / video_sender_config_.max_frame_rate;
miu 2016/06/30 21:59:43 nit: base::TimeDelta::FromSecondsF(1.0 / video_sen
xjz 2016/07/01 23:52:09 Done.
262 } 263 }
263 264
264 void SetSenderClockSkew(double skew, base::TimeDelta offset) { 265 void SetSenderClockSkew(double skew, base::TimeDelta offset) {
265 testing_clock_sender_->SetSkew(skew, offset); 266 testing_clock_sender_->SetSkew(skew, offset);
266 task_runner_sender_->SetSkew(1.0 / skew); 267 task_runner_sender_->SetSkew(1.0 / skew);
267 } 268 }
268 269
269 void SetReceiverClockSkew(double skew, base::TimeDelta offset) { 270 void SetReceiverClockSkew(double skew, base::TimeDelta offset) {
270 testing_clock_receiver_->SetSkew(skew, offset); 271 testing_clock_receiver_->SetSkew(skew, offset);
271 task_runner_receiver_->SetSkew(1.0 / skew); 272 task_runner_receiver_->SetSkew(1.0 / skew);
272 } 273 }
273 274
274 void Create(const MeasuringPoint& p); 275 void Create(const MeasuringPoint& p);
275 276
276 void ReceivePacket(std::unique_ptr<Packet> packet) { 277 void ReceivePacket(std::unique_ptr<Packet> packet) {
277 cast_receiver_->ReceivePacket(std::move(packet)); 278 cast_receiver_->ReceivePacket(std::move(packet));
278 } 279 }
279 280
280 virtual ~RunOneBenchmark() { 281 virtual ~RunOneBenchmark() {
281 cast_sender_.reset(); 282 cast_sender_.reset();
282 cast_receiver_.reset(); 283 cast_receiver_.reset();
283 task_runner_->RunTasks(); 284 task_runner_->RunTasks();
284 } 285 }
285 286
286 base::TimeDelta VideoTimestamp(int frame_number) { 287 base::TimeDelta VideoTimestamp(int frame_number) {
287 return (frame_number * base::TimeDelta::FromSeconds(1)) / 288 return (frame_number * base::TimeDelta::FromSeconds(1)) /
288 video_sender_config_.max_frame_rate; 289 video_sender_config_.max_frame_rate;
miu 2016/06/30 21:59:43 ditto: base::TimeDelta::FromSecondsF(1.0 / video_s
xjz 2016/07/01 23:52:09 Done.
289 } 290 }
290 291
291 void SendFakeVideoFrame() { 292 void SendFakeVideoFrame() {
292 // NB: Blackframe with timestamp 293 // NB: Blackframe with timestamp
293 cast_sender_->video_frame_input()->InsertRawVideoFrame( 294 cast_sender_->video_frame_input()->InsertRawVideoFrame(
294 media::VideoFrame::CreateColorFrame(gfx::Size(2, 2), 295 media::VideoFrame::CreateColorFrame(gfx::Size(2, 2),
295 0x00, 0x80, 0x80, VideoTimestamp(frames_sent_)), 296 0x00, 0x80, 0x80, VideoTimestamp(frames_sent_)),
296 testing_clock_sender_->NowTicks()); 297 testing_clock_sender_->NowTicks());
297 frames_sent_++; 298 frames_sent_++;
298 } 299 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 403
403 bool SimpleGood() { 404 bool SimpleGood() {
404 return frames_lost() <= 1 && late_frames() <= 1 && 405 return frames_lost() <= 1 && late_frames() <= 1 &&
405 video_bandwidth() > desired_video_bitrate() * 0.8 && 406 video_bandwidth() > desired_video_bitrate() * 0.8 &&
406 video_bandwidth() < desired_video_bitrate() * 1.2; 407 video_bandwidth() < desired_video_bitrate() * 1.2;
407 } 408 }
408 409
409 private: 410 private:
410 FrameReceiverConfig audio_receiver_config_; 411 FrameReceiverConfig audio_receiver_config_;
411 FrameReceiverConfig video_receiver_config_; 412 FrameReceiverConfig video_receiver_config_;
412 AudioSenderConfig audio_sender_config_; 413 FrameSenderConfig audio_sender_config_;
413 VideoSenderConfig video_sender_config_; 414 FrameSenderConfig video_sender_config_;
414 415
415 base::TimeTicks start_time_; 416 base::TimeTicks start_time_;
416 417
417 // These run in "test time" 418 // These run in "test time"
418 base::SimpleTestTickClock testing_clock_; 419 base::SimpleTestTickClock testing_clock_;
419 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; 420 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_;
420 421
421 // These run on the sender timeline. 422 // These run on the sender timeline.
422 test::SkewedTickClock* testing_clock_sender_; 423 test::SkewedTickClock* testing_clock_sender_;
423 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_; 424 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_;
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 media::cast::CastBenchmark benchmark; 730 media::cast::CastBenchmark benchmark;
730 if (getenv("PROFILE_FILE")) { 731 if (getenv("PROFILE_FILE")) {
731 std::string profile_file(getenv("PROFILE_FILE")); 732 std::string profile_file(getenv("PROFILE_FILE"));
732 base::debug::StartProfiling(profile_file); 733 base::debug::StartProfiling(profile_file);
733 benchmark.Run(); 734 benchmark.Run();
734 base::debug::StopProfiling(); 735 base::debug::StopProfiling();
735 } else { 736 } else {
736 benchmark.Run(); 737 benchmark.Run();
737 } 738 }
738 } 739 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698