Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 test generate synthetic data. For audio it's a sinusoid waveform with | 5 // This test generate synthetic data. For audio it's a sinusoid waveform with |
| 6 // frequency kSoundFrequency and different amplitudes. For video it's a pattern | 6 // frequency kSoundFrequency and different amplitudes. For video it's a pattern |
| 7 // that is shifting by one pixel per frame, each pixels neighbors right and down | 7 // that is shifting by one pixel per frame, each pixels neighbors right and down |
| 8 // is this pixels value +1, since the pixel value is 8 bit it will wrap | 8 // is this pixels value +1, since the pixel value is 8 bit it will wrap |
| 9 // frequently within the image. Visually this will create diagonally color bands | 9 // frequently within the image. Visually this will create diagonally color bands |
| 10 // that moves across the screen | 10 // that moves across the screen |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 425 receiver_to_sender_(new LoopBackTransport(cast_environment_receiver_)), | 425 receiver_to_sender_(new LoopBackTransport(cast_environment_receiver_)), |
| 426 sender_to_receiver_(new LoopBackTransport(cast_environment_sender_)), | 426 sender_to_receiver_(new LoopBackTransport(cast_environment_sender_)), |
| 427 test_receiver_audio_callback_(new TestReceiverAudioCallback()), | 427 test_receiver_audio_callback_(new TestReceiverAudioCallback()), |
| 428 test_receiver_video_callback_(new TestReceiverVideoCallback()) { | 428 test_receiver_video_callback_(new TestReceiverVideoCallback()) { |
| 429 testing_clock_.Advance( | 429 testing_clock_.Advance( |
| 430 base::TimeDelta::FromMilliseconds(kStartMillisecond)); | 430 base::TimeDelta::FromMilliseconds(kStartMillisecond)); |
| 431 cast_environment_sender_->logger()->Subscribe(&event_subscriber_sender_); | 431 cast_environment_sender_->logger()->Subscribe(&event_subscriber_sender_); |
| 432 } | 432 } |
| 433 | 433 |
| 434 void Configure(Codec video_codec, Codec audio_codec) { | 434 void Configure(Codec video_codec, Codec audio_codec) { |
| 435 audio_sender_config_.ssrc = 1; | 435 audio_sender_config_.sender_ssrc = 1; |
| 436 audio_sender_config_.receiver_ssrc = 2; | 436 audio_sender_config_.receiver_ssrc = 2; |
| 437 audio_sender_config_.max_playout_delay = | 437 audio_sender_config_.max_playout_delay = |
| 438 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); | 438 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); |
| 439 audio_sender_config_.rtp_payload_type = 96; | 439 audio_sender_config_.rtp_payload_type = RtpPayloadType::AUDIO_OPUS; |
| 440 audio_sender_config_.use_external_encoder = false; | 440 audio_sender_config_.use_external_encoder = false; |
| 441 audio_sender_config_.frequency = kDefaultAudioSamplingRate; | 441 audio_sender_config_.frequency = kDefaultAudioSamplingRate; |
| 442 audio_sender_config_.channels = kAudioChannels; | 442 audio_sender_config_.channels = kAudioChannels; |
| 443 audio_sender_config_.bitrate = kDefaultAudioEncoderBitrate; | 443 audio_sender_config_.max_bitrate = kDefaultAudioEncoderBitrate; |
| 444 audio_sender_config_.codec = audio_codec; | 444 audio_sender_config_.codec = audio_codec; |
| 445 audio_sender_config_.aes_iv_mask = | 445 audio_sender_config_.aes_iv_mask = |
| 446 ConvertFromBase16String("abcdeffedcba12345678900987654321"); | 446 ConvertFromBase16String("abcdeffedcba12345678900987654321"); |
| 447 audio_sender_config_.aes_key = | 447 audio_sender_config_.aes_key = |
| 448 ConvertFromBase16String("deadbeefcafecafedeadbeefb0b0b0b0"); | 448 ConvertFromBase16String("deadbeefcafecafedeadbeefb0b0b0b0"); |
| 449 | 449 |
| 450 audio_receiver_config_.receiver_ssrc = | 450 audio_receiver_config_.receiver_ssrc = |
| 451 audio_sender_config_.receiver_ssrc; | 451 audio_sender_config_.receiver_ssrc; |
| 452 audio_receiver_config_.sender_ssrc = audio_sender_config_.ssrc; | 452 audio_receiver_config_.sender_ssrc = audio_sender_config_.sender_ssrc; |
| 453 audio_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; | 453 audio_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; |
| 454 audio_receiver_config_.rtp_payload_type = | 454 audio_receiver_config_.rtp_payload_type = |
| 455 audio_sender_config_.rtp_payload_type; | 455 audio_sender_config_.rtp_payload_type; |
| 456 audio_receiver_config_.rtp_timebase = audio_sender_config_.frequency; | 456 audio_receiver_config_.rtp_timebase = audio_sender_config_.frequency; |
| 457 audio_receiver_config_.channels = kAudioChannels; | 457 audio_receiver_config_.channels = kAudioChannels; |
| 458 audio_receiver_config_.target_frame_rate = 100; | 458 audio_receiver_config_.target_frame_rate = 100; |
| 459 audio_receiver_config_.codec = audio_sender_config_.codec; | 459 audio_receiver_config_.codec = audio_sender_config_.codec; |
| 460 audio_receiver_config_.aes_iv_mask = audio_sender_config_.aes_iv_mask; | 460 audio_receiver_config_.aes_iv_mask = audio_sender_config_.aes_iv_mask; |
| 461 audio_receiver_config_.aes_key = audio_sender_config_.aes_key; | 461 audio_receiver_config_.aes_key = audio_sender_config_.aes_key; |
| 462 | 462 |
| 463 test_receiver_audio_callback_->SetExpectedSamplingFrequency( | 463 test_receiver_audio_callback_->SetExpectedSamplingFrequency( |
| 464 audio_receiver_config_.rtp_timebase); | 464 audio_receiver_config_.rtp_timebase); |
| 465 | 465 |
| 466 video_sender_config_.ssrc = 3; | 466 video_sender_config_.sender_ssrc = 3; |
| 467 video_sender_config_.receiver_ssrc = 4; | 467 video_sender_config_.receiver_ssrc = 4; |
| 468 video_sender_config_.max_playout_delay = | 468 video_sender_config_.max_playout_delay = |
| 469 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); | 469 base::TimeDelta::FromMilliseconds(kTargetPlayoutDelayMs); |
| 470 video_sender_config_.rtp_payload_type = 97; | 470 video_sender_config_.rtp_payload_type = RtpPayloadType::VIDEO_VP8; |
| 471 video_sender_config_.use_external_encoder = false; | 471 video_sender_config_.use_external_encoder = false; |
| 472 video_sender_config_.max_bitrate = 50000; | 472 video_sender_config_.max_bitrate = 50000; |
| 473 video_sender_config_.min_bitrate = 10000; | 473 video_sender_config_.min_bitrate = 10000; |
| 474 video_sender_config_.start_bitrate = 10000; | 474 video_sender_config_.codec_specific_params.start_bitrate = 10000; |
| 475 video_sender_config_.max_qp = 30; | 475 video_sender_config_.codec_specific_params.max_qp = 30; |
| 476 video_sender_config_.min_qp = 4; | 476 video_sender_config_.codec_specific_params.min_qp = 4; |
| 477 video_sender_config_.max_frame_rate = 30; | 477 video_sender_config_.max_frame_rate = 30; |
| 478 video_sender_config_.codec = video_codec; | 478 video_sender_config_.codec = video_codec; |
| 479 video_sender_config_.aes_iv_mask = | 479 video_sender_config_.aes_iv_mask = |
| 480 ConvertFromBase16String("1234567890abcdeffedcba0987654321"); | 480 ConvertFromBase16String("1234567890abcdeffedcba0987654321"); |
| 481 video_sender_config_.aes_key = | 481 video_sender_config_.aes_key = |
| 482 ConvertFromBase16String("deadbeefcafeb0b0b0b0cafedeadbeef"); | 482 ConvertFromBase16String("deadbeefcafeb0b0b0b0cafedeadbeef"); |
| 483 | 483 |
| 484 video_receiver_config_.receiver_ssrc = | 484 video_receiver_config_.receiver_ssrc = |
| 485 video_sender_config_.receiver_ssrc; | 485 video_sender_config_.receiver_ssrc; |
| 486 video_receiver_config_.sender_ssrc = video_sender_config_.ssrc; | 486 video_receiver_config_.sender_ssrc = video_sender_config_.sender_ssrc; |
| 487 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; | 487 video_receiver_config_.rtp_max_delay_ms = kTargetPlayoutDelayMs; |
| 488 video_receiver_config_.rtp_payload_type = | 488 video_receiver_config_.rtp_payload_type = |
| 489 video_sender_config_.rtp_payload_type; | 489 video_sender_config_.rtp_payload_type; |
| 490 video_receiver_config_.rtp_timebase = kVideoFrequency; | 490 video_receiver_config_.rtp_timebase = kVideoFrequency; |
| 491 video_receiver_config_.channels = 1; | 491 video_receiver_config_.channels = 1; |
| 492 video_receiver_config_.target_frame_rate = | 492 video_receiver_config_.target_frame_rate = |
| 493 video_sender_config_.max_frame_rate; | 493 video_sender_config_.max_frame_rate; |
|
miu
2016/06/30 21:59:43
Now this is a double being assigned to an int-type
xjz
2016/07/01 23:52:09
I changed the target_frame_rate to double too.
| |
| 494 video_receiver_config_.codec = video_sender_config_.codec; | 494 video_receiver_config_.codec = video_sender_config_.codec; |
| 495 video_receiver_config_.aes_iv_mask = video_sender_config_.aes_iv_mask; | 495 video_receiver_config_.aes_iv_mask = video_sender_config_.aes_iv_mask; |
| 496 video_receiver_config_.aes_key = video_sender_config_.aes_key; | 496 video_receiver_config_.aes_key = video_sender_config_.aes_key; |
| 497 } | 497 } |
| 498 | 498 |
| 499 void SetReceiverSkew(double skew, base::TimeDelta offset) { | 499 void SetReceiverSkew(double skew, base::TimeDelta offset) { |
| 500 testing_clock_receiver_->SetSkew(skew, offset); | 500 testing_clock_receiver_->SetSkew(skew, offset); |
| 501 task_runner_receiver_->SetSkew(1.0 / skew); | 501 task_runner_receiver_->SetSkew(1.0 / skew); |
| 502 } | 502 } |
| 503 | 503 |
| (...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 827 cast_receiver_->RequestDecodedVideoFrame( | 827 cast_receiver_->RequestDecodedVideoFrame( |
| 828 base::Bind(&End2EndTest::BasicPlayerGotVideoFrame, | 828 base::Bind(&End2EndTest::BasicPlayerGotVideoFrame, |
| 829 base::Unretained(this))); | 829 base::Unretained(this))); |
| 830 cast_receiver_->RequestDecodedAudioFrame( | 830 cast_receiver_->RequestDecodedAudioFrame( |
| 831 base::Bind(&End2EndTest::BasicPlayerGotAudioFrame, | 831 base::Bind(&End2EndTest::BasicPlayerGotAudioFrame, |
| 832 base::Unretained(this))); | 832 base::Unretained(this))); |
| 833 } | 833 } |
| 834 | 834 |
| 835 FrameReceiverConfig audio_receiver_config_; | 835 FrameReceiverConfig audio_receiver_config_; |
| 836 FrameReceiverConfig video_receiver_config_; | 836 FrameReceiverConfig video_receiver_config_; |
| 837 AudioSenderConfig audio_sender_config_; | 837 FrameSenderConfig audio_sender_config_; |
| 838 VideoSenderConfig video_sender_config_; | 838 FrameSenderConfig video_sender_config_; |
| 839 | 839 |
| 840 base::TimeTicks start_time_; | 840 base::TimeTicks start_time_; |
| 841 | 841 |
| 842 // These run in "test time" | 842 // These run in "test time" |
| 843 base::SimpleTestTickClock testing_clock_; | 843 base::SimpleTestTickClock testing_clock_; |
| 844 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; | 844 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; |
| 845 | 845 |
| 846 // These run on the sender timeline. | 846 // These run on the sender timeline. |
| 847 test::SkewedTickClock* testing_clock_sender_; | 847 test::SkewedTickClock* testing_clock_sender_; |
| 848 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_; | 848 scoped_refptr<test::SkewedSingleThreadTaskRunner> task_runner_sender_; |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1271 EXPECT_EQ(0u, jump); | 1271 EXPECT_EQ(0u, jump); |
| 1272 jump = i; | 1272 jump = i; |
| 1273 } | 1273 } |
| 1274 } | 1274 } |
| 1275 EXPECT_GT(jump, 49u); | 1275 EXPECT_GT(jump, 49u); |
| 1276 EXPECT_LT(jump, 120u); | 1276 EXPECT_LT(jump, 120u); |
| 1277 } | 1277 } |
| 1278 | 1278 |
| 1279 } // namespace cast | 1279 } // namespace cast |
| 1280 } // namespace media | 1280 } // namespace media |
| OLD | NEW |