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

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

Issue 163553006: Cast: Refactoring Cast API's (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactoring and responding to review Created 6 years, 10 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 | Annotate | Revision Log
OLDNEW
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 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 task_runner_, 399 task_runner_,
400 task_runner_, 400 task_runner_,
401 task_runner_, 401 task_runner_,
402 task_runner_, 402 task_runner_,
403 task_runner_, 403 task_runner_,
404 task_runner_, 404 task_runner_,
405 GetLoggingConfigWithRawEventsAndStatsEnabled())), 405 GetLoggingConfigWithRawEventsAndStatsEnabled())),
406 receiver_to_sender_(cast_environment_), 406 receiver_to_sender_(cast_environment_),
407 sender_to_receiver_(cast_environment_), 407 sender_to_receiver_(cast_environment_),
408 test_receiver_audio_callback_(new TestReceiverAudioCallback()), 408 test_receiver_audio_callback_(new TestReceiverAudioCallback()),
409 test_receiver_video_callback_(new TestReceiverVideoCallback()) { 409 test_receiver_video_callback_(new TestReceiverVideoCallback()),
410 audio_initialization_cnt_(0),
411 video_initialization_cnt_(0) {
410 testing_clock_->Advance( 412 testing_clock_->Advance(
411 base::TimeDelta::FromMilliseconds(kStartMillisecond)); 413 base::TimeDelta::FromMilliseconds(kStartMillisecond));
412 cast_environment_->Logging()->AddRawEventSubscriber(&event_subscriber_); 414 cast_environment_->Logging()->AddRawEventSubscriber(&event_subscriber_);
413 } 415 }
414 416
415 void SetupConfig(transport::AudioCodec audio_codec, 417 void SetupConfig(transport::AudioCodec audio_codec,
416 int audio_sampling_frequency, 418 int audio_sampling_frequency,
417 // TODO(miu): 3rd arg is meaningless?!? 419 // TODO(miu): 3rd arg is meaningless?!?
418 bool external_audio_decoder, 420 bool external_audio_decoder,
419 int max_number_of_video_buffers_used) { 421 int max_number_of_video_buffers_used) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 transport_config_.video_ssrc = video_sender_config_.sender_ssrc; 470 transport_config_.video_ssrc = video_sender_config_.sender_ssrc;
469 transport_config_.video_codec = video_sender_config_.codec; 471 transport_config_.video_codec = video_sender_config_.codec;
470 transport_config_.audio_codec = audio_sender_config_.codec; 472 transport_config_.audio_codec = audio_sender_config_.codec;
471 transport_config_.video_rtp_config = video_sender_config_.rtp_config; 473 transport_config_.video_rtp_config = video_sender_config_.rtp_config;
472 transport_config_.audio_rtp_config = audio_sender_config_.rtp_config; 474 transport_config_.audio_rtp_config = audio_sender_config_.rtp_config;
473 transport_config_.audio_frequency = audio_sender_config_.frequency; 475 transport_config_.audio_frequency = audio_sender_config_.frequency;
474 transport_config_.audio_channels = audio_sender_config_.channels; 476 transport_config_.audio_channels = audio_sender_config_.channels;
475 } 477 }
476 478
477 void Create() { 479 void Create() {
478 cast_receiver_.reset( 480 cast_receiver_ = CastReceiver::Create(cast_environment_,
479 CastReceiver::CreateCastReceiver(cast_environment_, 481 audio_receiver_config_,
480 audio_receiver_config_, 482 video_receiver_config_,
481 video_receiver_config_, 483 &receiver_to_sender_);
482 &receiver_to_sender_));
483 transport_sender_.reset(new transport::CastTransportSenderImpl( 484 transport_sender_.reset(new transport::CastTransportSenderImpl(
484 testing_clock_, 485 testing_clock_,
485 transport_config_, 486 transport_config_,
486 base::Bind(&UpdateCastTransportStatus), 487 base::Bind(&UpdateCastTransportStatus),
487 task_runner_, 488 task_runner_,
488 &sender_to_receiver_)); 489 &sender_to_receiver_));
489 490
490 cast_sender_.reset(CastSender::CreateCastSender( 491 cast_sender_ = CastSender::Create(
491 cast_environment_, 492 cast_environment_,
492 &audio_sender_config_,
493 &video_sender_config_,
494 NULL,
495 base::Bind(&End2EndTest::InitializationResult, base::Unretained(this)), 493 base::Bind(&End2EndTest::InitializationResult, base::Unretained(this)),
496 transport_sender_.get())); 494 transport_sender_.get());
495
496 // Initializing audio and video senders.
497 cast_sender_->InitializeAudio(audio_sender_config_);
498 cast_sender_->InitializeVideo(video_sender_config_, NULL);
497 499
498 receiver_to_sender_.SetPacketReceiver(cast_sender_->packet_receiver()); 500 receiver_to_sender_.SetPacketReceiver(cast_sender_->packet_receiver());
499 sender_to_receiver_.SetPacketReceiver(cast_receiver_->packet_receiver()); 501 sender_to_receiver_.SetPacketReceiver(cast_receiver_->packet_receiver());
500 502
501 frame_input_ = cast_sender_->frame_input(); 503 audio_frame_input_ = cast_sender_->audio_frame_input();
504 video_frame_input_ = cast_sender_->video_frame_input();
505
502 frame_receiver_ = cast_receiver_->frame_receiver(); 506 frame_receiver_ = cast_receiver_->frame_receiver();
503 507
504 audio_bus_factory_.reset( 508 audio_bus_factory_.reset(
505 new TestAudioBusFactory(audio_sender_config_.channels, 509 new TestAudioBusFactory(audio_sender_config_.channels,
506 audio_sender_config_.frequency, 510 audio_sender_config_.frequency,
507 kSoundFrequency, 511 kSoundFrequency,
508 kSoundVolume)); 512 kSoundVolume));
509 } 513 }
510 514
511 virtual ~End2EndTest() { 515 virtual ~End2EndTest() {
(...skipping 11 matching lines...) Expand all
523 if (start_time_.is_null()) 527 if (start_time_.is_null())
524 start_time_ = capture_time; 528 start_time_ = capture_time;
525 base::TimeDelta time_diff = capture_time - start_time_; 529 base::TimeDelta time_diff = capture_time - start_time_;
526 gfx::Size size(video_sender_config_.width, video_sender_config_.height); 530 gfx::Size size(video_sender_config_.width, video_sender_config_.height);
527 EXPECT_TRUE(VideoFrame::IsValidConfig( 531 EXPECT_TRUE(VideoFrame::IsValidConfig(
528 VideoFrame::I420, size, gfx::Rect(size), size)); 532 VideoFrame::I420, size, gfx::Rect(size), size));
529 scoped_refptr<media::VideoFrame> video_frame = 533 scoped_refptr<media::VideoFrame> video_frame =
530 media::VideoFrame::CreateFrame( 534 media::VideoFrame::CreateFrame(
531 VideoFrame::I420, size, gfx::Rect(size), size, time_diff); 535 VideoFrame::I420, size, gfx::Rect(size), size, time_diff);
532 PopulateVideoFrame(video_frame, start_value); 536 PopulateVideoFrame(video_frame, start_value);
533 frame_input_->InsertRawVideoFrame(video_frame, capture_time); 537 video_frame_input_->InsertRawVideoFrame(video_frame, capture_time);
534 } 538 }
535 539
536 void RunTasks(int during_ms) { 540 void RunTasks(int during_ms) {
537 for (int i = 0; i < during_ms; ++i) { 541 for (int i = 0; i < during_ms; ++i) {
538 // Call process the timers every 1 ms. 542 // Call process the timers every 1 ms.
539 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(1)); 543 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(1));
540 task_runner_->RunTasks(); 544 task_runner_->RunTasks();
541 } 545 }
542 } 546 }
543 547
544 void InitializationResult(CastInitializationStatus result) { 548 void InitializationResult(CastInitializationStatus result) {
545 EXPECT_EQ(result, STATUS_INITIALIZED); 549 // Result should be STATUS_AUDIO_INITIALIZED or STATUS_VIDEO_INITIALIZED;
550 // each should be called only once.
551 if (result == STATUS_AUDIO_INITIALIZED) {
552 ++audio_initialization_cnt_;
553 } else if (result == STATUS_VIDEO_INITIALIZED) {
554 ++video_initialization_cnt_;
555 } else {
556 FAIL();
557 }
558 EXPECT_GE(1, audio_initialization_cnt_);
559 EXPECT_GE(1, video_initialization_cnt_);
546 } 560 }
547 561
548 AudioReceiverConfig audio_receiver_config_; 562 AudioReceiverConfig audio_receiver_config_;
549 VideoReceiverConfig video_receiver_config_; 563 VideoReceiverConfig video_receiver_config_;
550 AudioSenderConfig audio_sender_config_; 564 AudioSenderConfig audio_sender_config_;
551 VideoSenderConfig video_sender_config_; 565 VideoSenderConfig video_sender_config_;
552 transport::CastTransportConfig transport_config_; 566 transport::CastTransportConfig transport_config_;
553 567
554 base::TimeTicks start_time_; 568 base::TimeTicks start_time_;
555 base::SimpleTestTickClock* testing_clock_; 569 base::SimpleTestTickClock* testing_clock_;
556 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 570 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
557 scoped_refptr<CastEnvironment> cast_environment_; 571 scoped_refptr<CastEnvironment> cast_environment_;
558 572
559 LoopBackTransport receiver_to_sender_; 573 LoopBackTransport receiver_to_sender_;
560 LoopBackTransport sender_to_receiver_; 574 LoopBackTransport sender_to_receiver_;
561 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_; 575 scoped_ptr<transport::CastTransportSenderImpl> transport_sender_;
562 576
563 scoped_ptr<CastReceiver> cast_receiver_; 577 scoped_ptr<CastReceiver> cast_receiver_;
564 scoped_ptr<CastSender> cast_sender_; 578 scoped_ptr<CastSender> cast_sender_;
565 scoped_refptr<FrameInput> frame_input_; 579 scoped_refptr<AudioFrameInput> audio_frame_input_;
580 scoped_refptr<VideoFrameInput> video_frame_input_;
566 scoped_refptr<FrameReceiver> frame_receiver_; 581 scoped_refptr<FrameReceiver> frame_receiver_;
567 582
568 scoped_refptr<TestReceiverAudioCallback> test_receiver_audio_callback_; 583 scoped_refptr<TestReceiverAudioCallback> test_receiver_audio_callback_;
569 scoped_refptr<TestReceiverVideoCallback> test_receiver_video_callback_; 584 scoped_refptr<TestReceiverVideoCallback> test_receiver_video_callback_;
570 585
571 scoped_ptr<TestAudioBusFactory> audio_bus_factory_; 586 scoped_ptr<TestAudioBusFactory> audio_bus_factory_;
572 587
573 SimpleEventSubscriber event_subscriber_; 588 SimpleEventSubscriber event_subscriber_;
574 std::vector<FrameEvent> frame_events_; 589 std::vector<FrameEvent> frame_events_;
575 std::vector<PacketEvent> packet_events_; 590 std::vector<PacketEvent> packet_events_;
576 std::vector<GenericEvent> generic_events_; 591 std::vector<GenericEvent> generic_events_;
592 int audio_initialization_cnt_;
593 int video_initialization_cnt_;
577 }; 594 };
578 595
579 #if defined(OS_WIN) 596 #if defined(OS_WIN)
580 #define MAYBE_LoopNoLossPcm16 DISABLED_LoopNoLossPcm16 597 #define MAYBE_LoopNoLossPcm16 DISABLED_LoopNoLossPcm16
581 #else 598 #else
582 #define MAYBE_LoopNoLossPcm16 LoopNoLossPcm16 599 #define MAYBE_LoopNoLossPcm16 LoopNoLossPcm16
583 #endif 600 #endif
584 // TODO(mikhal): Crashes in win bots (http://crbug.com/329563) 601 // TODO(mikhal): Crashes in win bots (http://crbug.com/329563)
585 TEST_F(End2EndTest, MAYBE_LoopNoLossPcm16) { 602 TEST_F(End2EndTest, MAYBE_LoopNoLossPcm16) {
586 SetupConfig(transport::kPcm16, 32000, false, 1); 603 SetupConfig(transport::kPcm16, 32000, false, 1);
(...skipping 20 matching lines...) Expand all
607 // first samples will be 0 and then slowly ramp up to its real 624 // first samples will be 0 and then slowly ramp up to its real
608 // amplitude; 625 // amplitude;
609 // ignore the first frame. 626 // ignore the first frame.
610 test_receiver_audio_callback_->AddExpectedResult( 627 test_receiver_audio_callback_->AddExpectedResult(
611 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 628 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
612 num_10ms_blocks, 629 num_10ms_blocks,
613 send_time); 630 send_time);
614 } 631 }
615 632
616 AudioBus* const audio_bus_ptr = audio_bus.get(); 633 AudioBus* const audio_bus_ptr = audio_bus.get();
617 frame_input_->InsertAudio( 634 audio_frame_input_->InsertAudio(
618 audio_bus_ptr, 635 audio_bus_ptr,
619 send_time, 636 send_time,
620 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 637 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
621 638
622 test_receiver_video_callback_->AddExpectedResult( 639 test_receiver_video_callback_->AddExpectedResult(
623 video_start, 640 video_start,
624 video_sender_config_.width, 641 video_sender_config_.width,
625 video_sender_config_.height, 642 video_sender_config_.height,
626 send_time); 643 send_time);
627 SendVideoFrame(video_start, send_time); 644 SendVideoFrame(video_start, send_time);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 for (; i < 10; ++i) { 689 for (; i < 10; ++i) {
673 base::TimeTicks send_time = testing_clock_->NowTicks(); 690 base::TimeTicks send_time = testing_clock_->NowTicks();
674 scoped_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus( 691 scoped_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus(
675 base::TimeDelta::FromMilliseconds(10))); 692 base::TimeDelta::FromMilliseconds(10)));
676 test_receiver_audio_callback_->AddExpectedResult( 693 test_receiver_audio_callback_->AddExpectedResult(
677 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 694 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
678 1, 695 1,
679 send_time); 696 send_time);
680 697
681 AudioBus* const audio_bus_ptr = audio_bus.get(); 698 AudioBus* const audio_bus_ptr = audio_bus.get();
682 frame_input_->InsertAudio( 699 audio_frame_input_->InsertAudio(
683 audio_bus_ptr, 700 audio_bus_ptr,
684 send_time, 701 send_time,
685 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 702 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
686 703
687 RunTasks(10); 704 RunTasks(10);
688 frame_receiver_->GetCodedAudioFrame( 705 frame_receiver_->GetCodedAudioFrame(
689 base::Bind(&TestReceiverAudioCallback::CheckCodedPcmAudioFrame, 706 base::Bind(&TestReceiverAudioCallback::CheckCodedPcmAudioFrame,
690 test_receiver_audio_callback_)); 707 test_receiver_audio_callback_));
691 } 708 }
692 RunTasks(2 * kFrameTimerMs + 1); // Empty the receiver pipeline. 709 RunTasks(2 * kFrameTimerMs + 1); // Empty the receiver pipeline.
(...skipping 20 matching lines...) Expand all
713 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks)); 730 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks));
714 731
715 if (i != 0) { 732 if (i != 0) {
716 test_receiver_audio_callback_->AddExpectedResult( 733 test_receiver_audio_callback_->AddExpectedResult(
717 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 734 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
718 num_10ms_blocks, 735 num_10ms_blocks,
719 send_time); 736 send_time);
720 } 737 }
721 738
722 AudioBus* const audio_bus_ptr = audio_bus.get(); 739 AudioBus* const audio_bus_ptr = audio_bus.get();
723 frame_input_->InsertAudio( 740 audio_frame_input_->InsertAudio(
724 audio_bus_ptr, 741 audio_bus_ptr,
725 send_time, 742 send_time,
726 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 743 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
727 744
728 RunTasks(30); 745 RunTasks(30);
729 746
730 if (i == 0) { 747 if (i == 0) {
731 frame_receiver_->GetRawAudioFrame( 748 frame_receiver_->GetRawAudioFrame(
732 num_10ms_blocks, 749 num_10ms_blocks,
733 audio_sender_config_.frequency, 750 audio_sender_config_.frequency,
(...skipping 26 matching lines...) Expand all
760 777
761 for (int i = 0; i < 3; ++i) { 778 for (int i = 0; i < 3; ++i) {
762 int num_10ms_blocks = audio_diff / 10; 779 int num_10ms_blocks = audio_diff / 10;
763 audio_diff -= num_10ms_blocks * 10; 780 audio_diff -= num_10ms_blocks * 10;
764 781
765 base::TimeTicks send_time = testing_clock_->NowTicks(); 782 base::TimeTicks send_time = testing_clock_->NowTicks();
766 scoped_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus( 783 scoped_ptr<AudioBus> audio_bus(audio_bus_factory_->NextAudioBus(
767 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks)); 784 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks));
768 785
769 AudioBus* const audio_bus_ptr = audio_bus.get(); 786 AudioBus* const audio_bus_ptr = audio_bus.get();
770 frame_input_->InsertAudio( 787 audio_frame_input_->InsertAudio(
771 audio_bus_ptr, 788 audio_bus_ptr,
772 send_time, 789 send_time,
773 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 790 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
774 791
775 SendVideoFrame(video_start, send_time); 792 SendVideoFrame(video_start, send_time);
776 RunTasks(kFrameTimerMs); 793 RunTasks(kFrameTimerMs);
777 audio_diff += kFrameTimerMs; 794 audio_diff += kFrameTimerMs;
778 video_start++; 795 video_start++;
779 } 796 }
780 RunTasks(100); 797 RunTasks(100);
(...skipping 10 matching lines...) Expand all
791 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks)); 808 base::TimeDelta::FromMilliseconds(10) * num_10ms_blocks));
792 809
793 if (j >= number_of_audio_frames_to_ignore) { 810 if (j >= number_of_audio_frames_to_ignore) {
794 test_receiver_audio_callback_->AddExpectedResult( 811 test_receiver_audio_callback_->AddExpectedResult(
795 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 812 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
796 num_10ms_blocks, 813 num_10ms_blocks,
797 send_time); 814 send_time);
798 } 815 }
799 816
800 AudioBus* const audio_bus_ptr = audio_bus.get(); 817 AudioBus* const audio_bus_ptr = audio_bus.get();
801 frame_input_->InsertAudio( 818 audio_frame_input_->InsertAudio(
802 audio_bus_ptr, 819 audio_bus_ptr,
803 send_time, 820 send_time,
804 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 821 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
805 822
806 test_receiver_video_callback_->AddExpectedResult( 823 test_receiver_video_callback_->AddExpectedResult(
807 video_start, 824 video_start,
808 video_sender_config_.width, 825 video_sender_config_.width,
809 video_sender_config_.height, 826 video_sender_config_.height,
810 send_time); 827 send_time);
811 828
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 // Due to the re-sampler and NetEq in the webrtc AudioCodingModule the 1045 // Due to the re-sampler and NetEq in the webrtc AudioCodingModule the
1029 // first samples will be 0 and then slowly ramp up to its real 1046 // first samples will be 0 and then slowly ramp up to its real
1030 // amplitude; 1047 // amplitude;
1031 // ignore the first frame. 1048 // ignore the first frame.
1032 test_receiver_audio_callback_->AddExpectedResult( 1049 test_receiver_audio_callback_->AddExpectedResult(
1033 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 1050 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
1034 num_10ms_blocks, 1051 num_10ms_blocks,
1035 send_time); 1052 send_time);
1036 } 1053 }
1037 AudioBus* const audio_bus_ptr = audio_bus.get(); 1054 AudioBus* const audio_bus_ptr = audio_bus.get();
1038 frame_input_->InsertAudio( 1055 audio_frame_input_->InsertAudio(
1039 audio_bus_ptr, 1056 audio_bus_ptr,
1040 send_time, 1057 send_time,
1041 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 1058 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
1042 1059
1043 RunTasks(num_10ms_blocks * 10); 1060 RunTasks(num_10ms_blocks * 10);
1044 1061
1045 if (frames_counter == 0) { 1062 if (frames_counter == 0) {
1046 frame_receiver_->GetRawAudioFrame( 1063 frame_receiver_->GetRawAudioFrame(
1047 num_10ms_blocks, 1064 num_10ms_blocks,
1048 32000, 1065 32000,
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1199 // first samples will be 0 and then slowly ramp up to its real 1216 // first samples will be 0 and then slowly ramp up to its real
1200 // amplitude; 1217 // amplitude;
1201 // ignore the first frame. 1218 // ignore the first frame.
1202 test_receiver_audio_callback_->AddExpectedResult( 1219 test_receiver_audio_callback_->AddExpectedResult(
1203 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency), 1220 ToPcmAudioFrame(*audio_bus, audio_sender_config_.frequency),
1204 num_10ms_blocks, 1221 num_10ms_blocks,
1205 send_time); 1222 send_time);
1206 } 1223 }
1207 1224
1208 AudioBus* const audio_bus_ptr = audio_bus.get(); 1225 AudioBus* const audio_bus_ptr = audio_bus.get();
1209 frame_input_->InsertAudio( 1226 audio_frame_input_->InsertAudio(
1210 audio_bus_ptr, 1227 audio_bus_ptr,
1211 send_time, 1228 send_time,
1212 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus))); 1229 base::Bind(&OwnThatAudioBus, base::Passed(&audio_bus)));
1213 1230
1214 RunTasks(kFrameTimerMs); 1231 RunTasks(kFrameTimerMs);
1215 audio_diff += kFrameTimerMs; 1232 audio_diff += kFrameTimerMs;
1216 1233
1217 if (i == 0) { 1234 if (i == 0) {
1218 frame_receiver_->GetRawAudioFrame( 1235 frame_receiver_->GetRawAudioFrame(
1219 num_10ms_blocks, 1236 num_10ms_blocks,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1284 EXPECT_EQ(total_event_count_for_frame, expected_event_count_for_frame); 1301 EXPECT_EQ(total_event_count_for_frame, expected_event_count_for_frame);
1285 } 1302 }
1286 1303
1287 // TODO(pwestin): Add repeatable packet loss test. 1304 // TODO(pwestin): Add repeatable packet loss test.
1288 // TODO(pwestin): Add test for misaligned send get calls. 1305 // TODO(pwestin): Add test for misaligned send get calls.
1289 // TODO(pwestin): Add more tests that does not resample. 1306 // TODO(pwestin): Add more tests that does not resample.
1290 // TODO(pwestin): Add test when we have starvation for our RunTask. 1307 // TODO(pwestin): Add test when we have starvation for our RunTask.
1291 1308
1292 } // namespace cast 1309 } // namespace cast
1293 } // namespace media 1310 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698