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

Side by Side Diff: media/base/pipeline_unittest.cc

Issue 407583002: Fold AudioRenderer::Stop() into the dtor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comments addressed Created 6 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 | Annotate | Revision Log
OLDNEW
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 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 // We expect the time to be updated only after the seek has completed. 303 // We expect the time to be updated only after the seek has completed.
304 EXPECT_NE(seek_time, pipeline_->GetMediaTime()); 304 EXPECT_NE(seek_time, pipeline_->GetMediaTime());
305 message_loop_.RunUntilIdle(); 305 message_loop_.RunUntilIdle();
306 EXPECT_EQ(seek_time, pipeline_->GetMediaTime()); 306 EXPECT_EQ(seek_time, pipeline_->GetMediaTime());
307 } 307 }
308 308
309 void ExpectStop() { 309 void ExpectStop() {
310 if (demuxer_) 310 if (demuxer_)
311 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 311 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
312 312
313 if (audio_stream_)
314 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
315
316 if (video_stream_) 313 if (video_stream_)
317 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 314 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
318 } 315 }
319 316
320 MOCK_METHOD2(OnAddTextTrack, void(const TextTrackConfig&, 317 MOCK_METHOD2(OnAddTextTrack, void(const TextTrackConfig&,
321 const AddTextTrackDoneCB&)); 318 const AddTextTrackDoneCB&));
322 319
323 void DoOnAddTextTrack(const TextTrackConfig& config, 320 void DoOnAddTextTrack(const TextTrackConfig& config,
324 const AddTextTrackDoneCB& done_cb) { 321 const AddTextTrackDoneCB& done_cb) {
325 scoped_ptr<TextTrack> text_track(new MockTextTrack); 322 scoped_ptr<TextTrack> text_track(new MockTextTrack);
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 message_loop_.RunUntilIdle(); 674 message_loop_.RunUntilIdle();
678 675
679 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 676 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
680 677
681 // Preroll() isn't called as the demuxer errors out first. 678 // Preroll() isn't called as the demuxer errors out first.
682 EXPECT_CALL(*audio_renderer_, StopRendering()); 679 EXPECT_CALL(*audio_renderer_, StopRendering());
683 EXPECT_CALL(*audio_renderer_, Flush(_)) 680 EXPECT_CALL(*audio_renderer_, Flush(_))
684 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, 681 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
685 BUFFERING_HAVE_NOTHING), 682 BUFFERING_HAVE_NOTHING),
686 RunClosure<0>())); 683 RunClosure<0>()));
687 EXPECT_CALL(*audio_renderer_, Stop(_))
688 .WillOnce(RunClosure<0>());
689 684
690 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 685 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
691 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 686 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
692 EXPECT_CALL(*demuxer_, Stop(_)) 687 EXPECT_CALL(*demuxer_, Stop(_))
693 .WillOnce(RunClosure<0>()); 688 .WillOnce(RunClosure<0>());
694 689
695 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, 690 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek,
696 base::Unretained(&callbacks_))); 691 base::Unretained(&callbacks_)));
697 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ)); 692 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ));
698 message_loop_.RunUntilIdle(); 693 message_loop_.RunUntilIdle();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); 728 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run));
734 729
735 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 730 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
736 731
737 // Seek() isn't called as the demuxer errors out first. 732 // Seek() isn't called as the demuxer errors out first.
738 EXPECT_CALL(*audio_renderer_, StopRendering()); 733 EXPECT_CALL(*audio_renderer_, StopRendering());
739 EXPECT_CALL(*audio_renderer_, Flush(_)) 734 EXPECT_CALL(*audio_renderer_, Flush(_))
740 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_, 735 .WillOnce(DoAll(SetBufferingState(&audio_buffering_state_cb_,
741 BUFFERING_HAVE_NOTHING), 736 BUFFERING_HAVE_NOTHING),
742 RunClosure<0>())); 737 RunClosure<0>()));
743 EXPECT_CALL(*audio_renderer_, Stop(_))
744 .WillOnce(RunClosure<0>());
745 738
746 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 739 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
747 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 740 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
748 EXPECT_CALL(*demuxer_, Stop(_)) 741 EXPECT_CALL(*demuxer_, Stop(_))
749 .WillOnce(RunClosure<0>()); 742 .WillOnce(RunClosure<0>());
750 743
751 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek, 744 pipeline_->Seek(seek_time, base::Bind(&CallbackHelper::OnSeek,
752 base::Unretained(&callbacks_))); 745 base::Unretained(&callbacks_)));
753 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ)); 746 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_ERROR_READ));
754 message_loop_.RunUntilIdle(); 747 message_loop_.RunUntilIdle();
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), 949 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
957 RunCallback<1>(PIPELINE_OK))); 950 RunCallback<1>(PIPELINE_OK)));
958 EXPECT_CALL(callbacks_, OnStop()); 951 EXPECT_CALL(callbacks_, OnStop());
959 } else { 952 } else {
960 status = PIPELINE_ERROR_INITIALIZATION_FAILED; 953 status = PIPELINE_ERROR_INITIALIZATION_FAILED;
961 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) 954 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _))
962 .WillOnce(RunCallback<1>(status)); 955 .WillOnce(RunCallback<1>(status));
963 } 956 }
964 957
965 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 958 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
966 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
967 return status; 959 return status;
968 } 960 }
969 961
970 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _)) 962 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _))
971 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_), 963 .WillOnce(DoAll(SaveArg<4>(&audio_buffering_state_cb_),
972 RunCallback<1>(PIPELINE_OK))); 964 RunCallback<1>(PIPELINE_OK)));
973 965
974 if (state == kInitVideoRenderer) { 966 if (state == kInitVideoRenderer) {
975 if (stop_or_error == kStop) { 967 if (stop_or_error == kStop) {
976 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 968 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
977 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), 969 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb),
978 RunCallback<2>(PIPELINE_OK))); 970 RunCallback<2>(PIPELINE_OK)));
979 EXPECT_CALL(callbacks_, OnStop()); 971 EXPECT_CALL(callbacks_, OnStop());
980 } else { 972 } else {
981 status = PIPELINE_ERROR_INITIALIZATION_FAILED; 973 status = PIPELINE_ERROR_INITIALIZATION_FAILED;
982 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 974 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
983 .WillOnce(RunCallback<2>(status)); 975 .WillOnce(RunCallback<2>(status));
984 } 976 }
985 977
986 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 978 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
987 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
988 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 979 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
989 return status; 980 return status;
990 } 981 }
991 982
992 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _)) 983 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _, _))
993 .WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_), 984 .WillOnce(DoAll(SaveArg<5>(&video_buffering_state_cb_),
994 RunCallback<2>(PIPELINE_OK))); 985 RunCallback<2>(PIPELINE_OK)));
995 986
996 EXPECT_CALL(callbacks_, OnMetadata(_)); 987 EXPECT_CALL(callbacks_, OnMetadata(_));
997 988
(...skipping 14 matching lines...) Expand all
1012 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH)); 1003 EXPECT_CALL(callbacks_, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH));
1013 1004
1014 return status; 1005 return status;
1015 } 1006 }
1016 1007
1017 void DoSeek(TeardownState state, StopOrError stop_or_error) { 1008 void DoSeek(TeardownState state, StopOrError stop_or_error) {
1018 InSequence s; 1009 InSequence s;
1019 PipelineStatus status = SetSeekExpectations(state, stop_or_error); 1010 PipelineStatus status = SetSeekExpectations(state, stop_or_error);
1020 1011
1021 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1012 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1022 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1023 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1013 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1024 EXPECT_CALL(callbacks_, OnSeek(status)); 1014 EXPECT_CALL(callbacks_, OnSeek(status));
1025 1015
1026 if (status == PIPELINE_OK) { 1016 if (status == PIPELINE_OK) {
1027 EXPECT_CALL(callbacks_, OnStop()); 1017 EXPECT_CALL(callbacks_, OnStop());
1028 } 1018 }
1029 1019
1030 pipeline_->Seek(base::TimeDelta::FromSeconds(10), base::Bind( 1020 pipeline_->Seek(base::TimeDelta::FromSeconds(10), base::Bind(
1031 &CallbackHelper::OnSeek, base::Unretained(&callbacks_))); 1021 &CallbackHelper::OnSeek, base::Unretained(&callbacks_)));
1032 message_loop_.RunUntilIdle(); 1022 message_loop_.RunUntilIdle();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 } 1073 }
1084 1074
1085 NOTREACHED() << "State not supported: " << state; 1075 NOTREACHED() << "State not supported: " << state;
1086 return status; 1076 return status;
1087 } 1077 }
1088 1078
1089 void DoStopOrError(StopOrError stop_or_error) { 1079 void DoStopOrError(StopOrError stop_or_error) {
1090 InSequence s; 1080 InSequence s;
1091 1081
1092 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); 1082 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>());
1093 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1094 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>()); 1083 EXPECT_CALL(*video_renderer_, Stop(_)).WillOnce(RunClosure<0>());
1095 1084
1096 switch (stop_or_error) { 1085 switch (stop_or_error) {
1097 case kStop: 1086 case kStop:
1098 EXPECT_CALL(callbacks_, OnStop()); 1087 EXPECT_CALL(callbacks_, OnStop());
1099 pipeline_->Stop(base::Bind( 1088 pipeline_->Stop(base::Bind(
1100 &CallbackHelper::OnStop, base::Unretained(&callbacks_))); 1089 &CallbackHelper::OnStop, base::Unretained(&callbacks_)));
1101 break; 1090 break;
1102 1091
1103 case kError: 1092 case kError:
(...skipping 30 matching lines...) Expand all
1134 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer); 1123 INSTANTIATE_TEARDOWN_TEST(Error, InitDemuxer);
1135 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); 1124 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer);
1136 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); 1125 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer);
1137 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); 1126 INSTANTIATE_TEARDOWN_TEST(Error, Flushing);
1138 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1127 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1139 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1128 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1140 1129
1141 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); 1130 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing);
1142 1131
1143 } // namespace media 1132 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698