OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
10 #include "base/test/simple_test_tick_clock.h" | 10 #include "base/test/simple_test_tick_clock.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 if (start_status == PIPELINE_OK) { | 200 if (start_status == PIPELINE_OK) { |
201 EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_)); | 201 EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_)); |
202 | 202 |
203 if (audio_stream_) { | 203 if (audio_stream_) { |
204 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); | 204 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); |
205 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); | 205 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); |
206 EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta())); | 206 EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta())); |
207 EXPECT_CALL(*audio_renderer_, StartPlaying()) | 207 EXPECT_CALL(*audio_renderer_, StartPlaying()) |
208 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, | 208 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, |
209 BUFFERING_HAVE_ENOUGH)); | 209 BUFFERING_HAVE_ENOUGH)); |
210 EXPECT_CALL(*audio_renderer_, StartRendering()); | 210 EXPECT_CALL(*audio_renderer_, StartTicking()); |
211 } | 211 } |
212 | 212 |
213 if (video_stream_) { | 213 if (video_stream_) { |
214 EXPECT_CALL(*video_renderer_, StartPlaying()) | 214 EXPECT_CALL(*video_renderer_, StartPlaying()) |
215 .WillOnce(SetBufferingState(&video_buffering_state_cb_, | 215 .WillOnce(SetBufferingState(&video_buffering_state_cb_, |
216 BUFFERING_HAVE_ENOUGH)); | 216 BUFFERING_HAVE_ENOUGH)); |
217 } | 217 } |
218 | 218 |
219 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); | 219 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
220 } | 220 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 return text_stream_.get(); | 259 return text_stream_.get(); |
260 } | 260 } |
261 | 261 |
262 void ExpectSeek(const base::TimeDelta& seek_time, bool underflowed) { | 262 void ExpectSeek(const base::TimeDelta& seek_time, bool underflowed) { |
263 // Every filter should receive a call to Seek(). | 263 // Every filter should receive a call to Seek(). |
264 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) | 264 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) |
265 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 265 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
266 | 266 |
267 if (audio_stream_) { | 267 if (audio_stream_) { |
268 if (!underflowed) | 268 if (!underflowed) |
269 EXPECT_CALL(*audio_renderer_, StopRendering()); | 269 EXPECT_CALL(*audio_renderer_, StopTicking()); |
270 EXPECT_CALL(*audio_renderer_, Flush(_)) | 270 EXPECT_CALL(*audio_renderer_, Flush(_)) |
271 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, | 271 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, |
272 BUFFERING_HAVE_NOTHING), | 272 BUFFERING_HAVE_NOTHING), |
273 RunClosure<0>())); | 273 RunClosure<0>())); |
274 EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time)); | 274 EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time)); |
275 EXPECT_CALL(*audio_renderer_, StartPlaying()) | 275 EXPECT_CALL(*audio_renderer_, StartPlaying()) |
276 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, | 276 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, |
277 BUFFERING_HAVE_ENOUGH)); | 277 BUFFERING_HAVE_ENOUGH)); |
278 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); | 278 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); |
279 EXPECT_CALL(*audio_renderer_, SetVolume(_)); | 279 EXPECT_CALL(*audio_renderer_, SetVolume(_)); |
280 EXPECT_CALL(*audio_renderer_, StartRendering()); | 280 EXPECT_CALL(*audio_renderer_, StartTicking()); |
281 } | 281 } |
282 | 282 |
283 if (video_stream_) { | 283 if (video_stream_) { |
284 EXPECT_CALL(*video_renderer_, Flush(_)) | 284 EXPECT_CALL(*video_renderer_, Flush(_)) |
285 .WillOnce(DoAll(SetBufferingState(&video_buffering_state_cb_, | 285 .WillOnce(DoAll(SetBufferingState(&video_buffering_state_cb_, |
286 BUFFERING_HAVE_NOTHING), | 286 BUFFERING_HAVE_NOTHING), |
287 RunClosure<0>())); | 287 RunClosure<0>())); |
288 EXPECT_CALL(*video_renderer_, StartPlaying()) | 288 EXPECT_CALL(*video_renderer_, StartPlaying()) |
289 .WillOnce(SetBufferingState(&video_buffering_state_cb_, | 289 .WillOnce(SetBufferingState(&video_buffering_state_cb_, |
290 BUFFERING_HAVE_ENOUGH)); | 290 BUFFERING_HAVE_ENOUGH)); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 | 601 |
602 AddTextStream(); | 602 AddTextStream(); |
603 | 603 |
604 // The ended callback shouldn't run until all renderers have ended. | 604 // The ended callback shouldn't run until all renderers have ended. |
605 audio_ended_cb_.Run(); | 605 audio_ended_cb_.Run(); |
606 message_loop_.RunUntilIdle(); | 606 message_loop_.RunUntilIdle(); |
607 | 607 |
608 video_ended_cb_.Run(); | 608 video_ended_cb_.Run(); |
609 message_loop_.RunUntilIdle(); | 609 message_loop_.RunUntilIdle(); |
610 | 610 |
611 EXPECT_CALL(*audio_renderer_, StopRendering()); | 611 EXPECT_CALL(*audio_renderer_, StopTicking()); |
612 EXPECT_CALL(callbacks_, OnEnded()); | 612 EXPECT_CALL(callbacks_, OnEnded()); |
613 text_stream()->SendEosNotification(); | 613 text_stream()->SendEosNotification(); |
614 message_loop_.RunUntilIdle(); | 614 message_loop_.RunUntilIdle(); |
615 } | 615 } |
616 | 616 |
617 TEST_F(PipelineTest, AudioStreamShorterThanVideo) { | 617 TEST_F(PipelineTest, AudioStreamShorterThanVideo) { |
618 base::TimeDelta duration = base::TimeDelta::FromSeconds(10); | 618 base::TimeDelta duration = base::TimeDelta::FromSeconds(10); |
619 | 619 |
620 CreateAudioStream(); | 620 CreateAudioStream(); |
621 CreateVideoStream(); | 621 CreateVideoStream(); |
(...skipping 28 matching lines...) Expand all Loading... |
650 // Signal end of audio stream. | 650 // Signal end of audio stream. |
651 audio_ended_cb_.Run(); | 651 audio_ended_cb_.Run(); |
652 message_loop_.RunUntilIdle(); | 652 message_loop_.RunUntilIdle(); |
653 | 653 |
654 // Verify that the clock advances. | 654 // Verify that the clock advances. |
655 start_time = pipeline_->GetMediaTime().ToInternalValue(); | 655 start_time = pipeline_->GetMediaTime().ToInternalValue(); |
656 test_tick_clock_.Advance(base::TimeDelta::FromMilliseconds(100)); | 656 test_tick_clock_.Advance(base::TimeDelta::FromMilliseconds(100)); |
657 EXPECT_GT(pipeline_->GetMediaTime().ToInternalValue(), start_time); | 657 EXPECT_GT(pipeline_->GetMediaTime().ToInternalValue(), start_time); |
658 | 658 |
659 // Signal end of video stream and make sure OnEnded() callback occurs. | 659 // Signal end of video stream and make sure OnEnded() callback occurs. |
660 EXPECT_CALL(*audio_renderer_, StopRendering()); | 660 EXPECT_CALL(*audio_renderer_, StopTicking()); |
661 EXPECT_CALL(callbacks_, OnEnded()); | 661 EXPECT_CALL(callbacks_, OnEnded()); |
662 video_ended_cb_.Run(); | 662 video_ended_cb_.Run(); |
663 } | 663 } |
664 | 664 |
665 TEST_F(PipelineTest, ErrorDuringSeek) { | 665 TEST_F(PipelineTest, ErrorDuringSeek) { |
666 CreateAudioStream(); | 666 CreateAudioStream(); |
667 MockDemuxerStreamVector streams; | 667 MockDemuxerStreamVector streams; |
668 streams.push_back(audio_stream()); | 668 streams.push_back(audio_stream()); |
669 | 669 |
670 SetDemuxerExpectations(&streams); | 670 SetDemuxerExpectations(&streams); |
671 SetAudioRendererExpectations(audio_stream()); | 671 SetAudioRendererExpectations(audio_stream()); |
672 StartPipeline(PIPELINE_OK); | 672 StartPipeline(PIPELINE_OK); |
673 | 673 |
674 float playback_rate = 1.0f; | 674 float playback_rate = 1.0f; |
675 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate)); | 675 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate)); |
676 pipeline_->SetPlaybackRate(playback_rate); | 676 pipeline_->SetPlaybackRate(playback_rate); |
677 message_loop_.RunUntilIdle(); | 677 message_loop_.RunUntilIdle(); |
678 | 678 |
679 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); | 679 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); |
680 | 680 |
681 // Preroll() isn't called as the demuxer errors out first. | 681 // Preroll() isn't called as the demuxer errors out first. |
682 EXPECT_CALL(*audio_renderer_, StopRendering()); | 682 EXPECT_CALL(*audio_renderer_, StopTicking()); |
683 EXPECT_CALL(*audio_renderer_, Flush(_)) | 683 EXPECT_CALL(*audio_renderer_, Flush(_)) |
684 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, | 684 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, |
685 BUFFERING_HAVE_NOTHING), | 685 BUFFERING_HAVE_NOTHING), |
686 RunClosure<0>())); | 686 RunClosure<0>())); |
687 EXPECT_CALL(*audio_renderer_, Stop(_)) | 687 EXPECT_CALL(*audio_renderer_, Stop(_)) |
688 .WillOnce(RunClosure<0>()); | 688 .WillOnce(RunClosure<0>()); |
689 | 689 |
690 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) | 690 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) |
691 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); | 691 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); |
692 EXPECT_CALL(*demuxer_, Stop(_)) | 692 EXPECT_CALL(*demuxer_, Stop(_)) |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 | 728 |
729 // Trigger additional requests on the pipeline during tear down from error. | 729 // Trigger additional requests on the pipeline during tear down from error. |
730 base::Callback<void(PipelineStatus)> cb = base::Bind( | 730 base::Callback<void(PipelineStatus)> cb = base::Bind( |
731 &TestNoCallsAfterError, pipeline_.get(), &message_loop_); | 731 &TestNoCallsAfterError, pipeline_.get(), &message_loop_); |
732 ON_CALL(callbacks_, OnError(_)) | 732 ON_CALL(callbacks_, OnError(_)) |
733 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); | 733 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); |
734 | 734 |
735 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); | 735 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); |
736 | 736 |
737 // Seek() isn't called as the demuxer errors out first. | 737 // Seek() isn't called as the demuxer errors out first. |
738 EXPECT_CALL(*audio_renderer_, StopRendering()); | 738 EXPECT_CALL(*audio_renderer_, StopTicking()); |
739 EXPECT_CALL(*audio_renderer_, Flush(_)) | 739 EXPECT_CALL(*audio_renderer_, Flush(_)) |
740 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, | 740 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, |
741 BUFFERING_HAVE_NOTHING), | 741 BUFFERING_HAVE_NOTHING), |
742 RunClosure<0>())); | 742 RunClosure<0>())); |
743 EXPECT_CALL(*audio_renderer_, Stop(_)) | 743 EXPECT_CALL(*audio_renderer_, Stop(_)) |
744 .WillOnce(RunClosure<0>()); | 744 .WillOnce(RunClosure<0>()); |
745 | 745 |
746 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) | 746 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) |
747 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); | 747 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); |
748 EXPECT_CALL(*demuxer_, Stop(_)) | 748 EXPECT_CALL(*demuxer_, Stop(_)) |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
783 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); | 783 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); |
784 | 784 |
785 // Arrange to trigger a time update while the demuxer is in the middle of | 785 // Arrange to trigger a time update while the demuxer is in the middle of |
786 // seeking. This update should be ignored by the pipeline and the clock should | 786 // seeking. This update should be ignored by the pipeline and the clock should |
787 // not get updated. | 787 // not get updated. |
788 base::Closure closure = base::Bind(&RunTimeCB, audio_time_cb_, 300, 700); | 788 base::Closure closure = base::Bind(&RunTimeCB, audio_time_cb_, 300, 700); |
789 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) | 789 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) |
790 .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run), | 790 .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run), |
791 RunCallback<1>(PIPELINE_OK))); | 791 RunCallback<1>(PIPELINE_OK))); |
792 | 792 |
793 EXPECT_CALL(*audio_renderer_, StopRendering()); | 793 EXPECT_CALL(*audio_renderer_, StopTicking()); |
794 EXPECT_CALL(*audio_renderer_, Flush(_)) | 794 EXPECT_CALL(*audio_renderer_, Flush(_)) |
795 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, | 795 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, |
796 BUFFERING_HAVE_NOTHING), | 796 BUFFERING_HAVE_NOTHING), |
797 RunClosure<0>())); | 797 RunClosure<0>())); |
798 EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time)); | 798 EXPECT_CALL(*audio_renderer_, SetMediaTime(seek_time)); |
799 EXPECT_CALL(*audio_renderer_, StartPlaying()) | 799 EXPECT_CALL(*audio_renderer_, StartPlaying()) |
800 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, | 800 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, |
801 BUFFERING_HAVE_ENOUGH)); | 801 BUFFERING_HAVE_ENOUGH)); |
802 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); | 802 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); |
803 EXPECT_CALL(*audio_renderer_, SetVolume(_)); | 803 EXPECT_CALL(*audio_renderer_, SetVolume(_)); |
804 EXPECT_CALL(*audio_renderer_, StartRendering()); | 804 EXPECT_CALL(*audio_renderer_, StartTicking()); |
805 | 805 |
806 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); | 806 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); |
807 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); | 807 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
808 DoSeek(seek_time); | 808 DoSeek(seek_time); |
809 | 809 |
810 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time); | 810 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time); |
811 | 811 |
812 // Now that the seek is complete, verify that time updates advance the current | 812 // Now that the seek is complete, verify that time updates advance the current |
813 // time. | 813 // time. |
814 base::TimeDelta new_time = seek_time + base::TimeDelta::FromMilliseconds(100); | 814 base::TimeDelta new_time = seek_time + base::TimeDelta::FromMilliseconds(100); |
(...skipping 27 matching lines...) Expand all Loading... |
842 MockDemuxerStreamVector streams; | 842 MockDemuxerStreamVector streams; |
843 streams.push_back(audio_stream()); | 843 streams.push_back(audio_stream()); |
844 streams.push_back(video_stream()); | 844 streams.push_back(video_stream()); |
845 | 845 |
846 SetDemuxerExpectations(&streams); | 846 SetDemuxerExpectations(&streams); |
847 SetAudioRendererExpectations(audio_stream()); | 847 SetAudioRendererExpectations(audio_stream()); |
848 SetVideoRendererExpectations(video_stream()); | 848 SetVideoRendererExpectations(video_stream()); |
849 StartPipeline(PIPELINE_OK); | 849 StartPipeline(PIPELINE_OK); |
850 | 850 |
851 // Simulate underflow. | 851 // Simulate underflow. |
852 EXPECT_CALL(*audio_renderer_, StopRendering()); | 852 EXPECT_CALL(*audio_renderer_, StopTicking()); |
853 audio_buffering_state_cb_.Run(BUFFERING_HAVE_NOTHING); | 853 audio_buffering_state_cb_.Run(BUFFERING_HAVE_NOTHING); |
854 | 854 |
855 // Seek while underflowed. We shouldn't call StopRendering() again. | 855 // Seek while underflowed. We shouldn't call StopTicking() again. |
856 base::TimeDelta expected = base::TimeDelta::FromSeconds(5); | 856 base::TimeDelta expected = base::TimeDelta::FromSeconds(5); |
857 ExpectSeek(expected, true); | 857 ExpectSeek(expected, true); |
858 DoSeek(expected); | 858 DoSeek(expected); |
859 } | 859 } |
860 | 860 |
861 class PipelineTeardownTest : public PipelineTest { | 861 class PipelineTeardownTest : public PipelineTest { |
862 public: | 862 public: |
863 enum TeardownState { | 863 enum TeardownState { |
864 kInitDemuxer, | 864 kInitDemuxer, |
865 kInitAudioRenderer, | 865 kInitAudioRenderer, |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
999 EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta())); | 999 EXPECT_CALL(*audio_renderer_, SetMediaTime(base::TimeDelta())); |
1000 EXPECT_CALL(*audio_renderer_, StartPlaying()) | 1000 EXPECT_CALL(*audio_renderer_, StartPlaying()) |
1001 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, | 1001 .WillOnce(SetBufferingState(&audio_buffering_state_cb_, |
1002 BUFFERING_HAVE_ENOUGH)); | 1002 BUFFERING_HAVE_ENOUGH)); |
1003 EXPECT_CALL(*video_renderer_, StartPlaying()) | 1003 EXPECT_CALL(*video_renderer_, StartPlaying()) |
1004 .WillOnce(SetBufferingState(&video_buffering_state_cb_, | 1004 .WillOnce(SetBufferingState(&video_buffering_state_cb_, |
1005 BUFFERING_HAVE_ENOUGH)); | 1005 BUFFERING_HAVE_ENOUGH)); |
1006 | 1006 |
1007 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); | 1007 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); |
1008 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); | 1008 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); |
1009 EXPECT_CALL(*audio_renderer_, StartRendering()); | 1009 EXPECT_CALL(*audio_renderer_, StartTicking()); |
1010 | 1010 |
1011 if (status == PIPELINE_OK) | 1011 if (status == PIPELINE_OK) |
1012 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); | 1012 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); |
1013 | 1013 |
1014 return status; | 1014 return status; |
1015 } | 1015 } |
1016 | 1016 |
1017 void DoSeek(TeardownState state, StopOrError stop_or_error) { | 1017 void DoSeek(TeardownState state, StopOrError stop_or_error) { |
1018 InSequence s; | 1018 InSequence s; |
1019 PipelineStatus status = SetSeekExpectations(state, stop_or_error); | 1019 PipelineStatus status = SetSeekExpectations(state, stop_or_error); |
(...skipping 11 matching lines...) Expand all Loading... |
1031 &CallbackHelper::OnSeek, base::Unretained(&callbacks_))); | 1031 &CallbackHelper::OnSeek, base::Unretained(&callbacks_))); |
1032 message_loop_.RunUntilIdle(); | 1032 message_loop_.RunUntilIdle(); |
1033 } | 1033 } |
1034 | 1034 |
1035 PipelineStatus SetSeekExpectations(TeardownState state, | 1035 PipelineStatus SetSeekExpectations(TeardownState state, |
1036 StopOrError stop_or_error) { | 1036 StopOrError stop_or_error) { |
1037 PipelineStatus status = PIPELINE_OK; | 1037 PipelineStatus status = PIPELINE_OK; |
1038 base::Closure stop_cb = base::Bind( | 1038 base::Closure stop_cb = base::Bind( |
1039 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); | 1039 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); |
1040 | 1040 |
1041 EXPECT_CALL(*audio_renderer_, StopRendering()); | 1041 EXPECT_CALL(*audio_renderer_, StopTicking()); |
1042 | 1042 |
1043 if (state == kFlushing) { | 1043 if (state == kFlushing) { |
1044 if (stop_or_error == kStop) { | 1044 if (stop_or_error == kStop) { |
1045 EXPECT_CALL(*audio_renderer_, Flush(_)) | 1045 EXPECT_CALL(*audio_renderer_, Flush(_)) |
1046 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), | 1046 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
1047 SetBufferingState(&audio_buffering_state_cb_, | 1047 SetBufferingState(&audio_buffering_state_cb_, |
1048 BUFFERING_HAVE_NOTHING), | 1048 BUFFERING_HAVE_NOTHING), |
1049 RunClosure<0>())); | 1049 RunClosure<0>())); |
1050 } else { | 1050 } else { |
1051 status = PIPELINE_ERROR_READ; | 1051 status = PIPELINE_ERROR_READ; |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1134 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); | 1134 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); |
1135 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); | 1135 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); |
1136 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); | 1136 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); |
1137 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); | 1137 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); |
1138 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); | 1138 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); |
1139 INSTANTIATE_TEARDOWN_TEST(Error, Playing); | 1139 INSTANTIATE_TEARDOWN_TEST(Error, Playing); |
1140 | 1140 |
1141 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); | 1141 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); |
1142 | 1142 |
1143 } // namespace media | 1143 } // namespace media |
OLD | NEW |