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

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

Issue 277123002: Rename AudioRenderer::Play/Pause() to Start/StopRendering(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 if (start_status == PIPELINE_OK) { 201 if (start_status == PIPELINE_OK) {
202 EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_)); 202 EXPECT_CALL(callbacks_, OnMetadata(_)).WillOnce(SaveArg<0>(&metadata_));
203 203
204 if (audio_stream_) { 204 if (audio_stream_) {
205 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); 205 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
206 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); 206 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
207 207
208 // Startup sequence. 208 // Startup sequence.
209 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _)) 209 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _))
210 .WillOnce(RunCallback<1>(PIPELINE_OK)); 210 .WillOnce(RunCallback<1>(PIPELINE_OK));
211 EXPECT_CALL(*audio_renderer_, Play()); 211 EXPECT_CALL(*audio_renderer_, StartRendering());
212 } 212 }
213 EXPECT_CALL(callbacks_, OnPrerollCompleted()); 213 EXPECT_CALL(callbacks_, OnPrerollCompleted());
214 } 214 }
215 215
216 pipeline_->Start( 216 pipeline_->Start(
217 filter_collection_.Pass(), 217 filter_collection_.Pass(),
218 base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)), 218 base::Bind(&CallbackHelper::OnEnded, base::Unretained(&callbacks_)),
219 base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)), 219 base::Bind(&CallbackHelper::OnError, base::Unretained(&callbacks_)),
220 base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)), 220 base::Bind(&CallbackHelper::OnStart, base::Unretained(&callbacks_)),
221 base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)), 221 base::Bind(&CallbackHelper::OnMetadata, base::Unretained(&callbacks_)),
(...skipping 29 matching lines...) Expand all
251 FakeTextTrackStream* text_stream() { 251 FakeTextTrackStream* text_stream() {
252 return text_stream_.get(); 252 return text_stream_.get();
253 } 253 }
254 254
255 void ExpectSeek(const base::TimeDelta& seek_time) { 255 void ExpectSeek(const base::TimeDelta& seek_time) {
256 // Every filter should receive a call to Seek(). 256 // Every filter should receive a call to Seek().
257 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 257 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
258 .WillOnce(RunCallback<1>(PIPELINE_OK)); 258 .WillOnce(RunCallback<1>(PIPELINE_OK));
259 259
260 if (audio_stream_) { 260 if (audio_stream_) {
261 EXPECT_CALL(*audio_renderer_, Pause()); 261 EXPECT_CALL(*audio_renderer_, StopRendering());
262 EXPECT_CALL(*audio_renderer_, Flush(_)) 262 EXPECT_CALL(*audio_renderer_, Flush(_))
263 .WillOnce(RunClosure<0>()); 263 .WillOnce(RunClosure<0>());
264 EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _)) 264 EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _))
265 .WillOnce(RunCallback<1>(PIPELINE_OK)); 265 .WillOnce(RunCallback<1>(PIPELINE_OK));
266 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); 266 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
267 EXPECT_CALL(*audio_renderer_, SetVolume(_)); 267 EXPECT_CALL(*audio_renderer_, SetVolume(_));
268 EXPECT_CALL(*audio_renderer_, Play()); 268 EXPECT_CALL(*audio_renderer_, StartRendering());
269 } 269 }
270 270
271 if (video_stream_) { 271 if (video_stream_) {
272 EXPECT_CALL(*video_renderer_, Flush(_)) 272 EXPECT_CALL(*video_renderer_, Flush(_))
273 .WillOnce(RunClosure<0>()); 273 .WillOnce(RunClosure<0>());
274 EXPECT_CALL(*video_renderer_, Preroll(seek_time, _)) 274 EXPECT_CALL(*video_renderer_, Preroll(seek_time, _))
275 .WillOnce(RunCallback<1>(PIPELINE_OK)); 275 .WillOnce(RunCallback<1>(PIPELINE_OK));
276 EXPECT_CALL(*video_renderer_, SetPlaybackRate(_)); 276 EXPECT_CALL(*video_renderer_, SetPlaybackRate(_));
277 EXPECT_CALL(*video_renderer_, Play(_)) 277 EXPECT_CALL(*video_renderer_, Play(_))
278 .WillOnce(RunClosure<0>()); 278 .WillOnce(RunClosure<0>());
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 InitializePipeline(PIPELINE_OK); 657 InitializePipeline(PIPELINE_OK);
658 658
659 float playback_rate = 1.0f; 659 float playback_rate = 1.0f;
660 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate)); 660 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(playback_rate));
661 pipeline_->SetPlaybackRate(playback_rate); 661 pipeline_->SetPlaybackRate(playback_rate);
662 message_loop_.RunUntilIdle(); 662 message_loop_.RunUntilIdle();
663 663
664 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 664 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
665 665
666 // Preroll() isn't called as the demuxer errors out first. 666 // Preroll() isn't called as the demuxer errors out first.
667 EXPECT_CALL(*audio_renderer_, Pause()); 667 EXPECT_CALL(*audio_renderer_, StopRendering());
668 EXPECT_CALL(*audio_renderer_, Flush(_)) 668 EXPECT_CALL(*audio_renderer_, Flush(_))
669 .WillOnce(RunClosure<0>()); 669 .WillOnce(RunClosure<0>());
670 EXPECT_CALL(*audio_renderer_, Stop(_)) 670 EXPECT_CALL(*audio_renderer_, Stop(_))
671 .WillOnce(RunClosure<0>()); 671 .WillOnce(RunClosure<0>());
672 672
673 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 673 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
674 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 674 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
675 EXPECT_CALL(*demuxer_, Stop(_)) 675 EXPECT_CALL(*demuxer_, Stop(_))
676 .WillOnce(RunClosure<0>()); 676 .WillOnce(RunClosure<0>());
677 677
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 711
712 // Trigger additional requests on the pipeline during tear down from error. 712 // Trigger additional requests on the pipeline during tear down from error.
713 base::Callback<void(PipelineStatus)> cb = base::Bind( 713 base::Callback<void(PipelineStatus)> cb = base::Bind(
714 &TestNoCallsAfterError, pipeline_.get(), &message_loop_); 714 &TestNoCallsAfterError, pipeline_.get(), &message_loop_);
715 ON_CALL(callbacks_, OnError(_)) 715 ON_CALL(callbacks_, OnError(_))
716 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); 716 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run));
717 717
718 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 718 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
719 719
720 // Seek() isn't called as the demuxer errors out first. 720 // Seek() isn't called as the demuxer errors out first.
721 EXPECT_CALL(*audio_renderer_, Pause()); 721 EXPECT_CALL(*audio_renderer_, StopRendering());
722 EXPECT_CALL(*audio_renderer_, Flush(_)) 722 EXPECT_CALL(*audio_renderer_, Flush(_))
723 .WillOnce(RunClosure<0>()); 723 .WillOnce(RunClosure<0>());
724 EXPECT_CALL(*audio_renderer_, Stop(_)) 724 EXPECT_CALL(*audio_renderer_, Stop(_))
725 .WillOnce(RunClosure<0>()); 725 .WillOnce(RunClosure<0>());
726 726
727 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 727 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
728 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ)); 728 .WillOnce(RunCallback<1>(PIPELINE_ERROR_READ));
729 EXPECT_CALL(*demuxer_, Stop(_)) 729 EXPECT_CALL(*demuxer_, Stop(_))
730 .WillOnce(RunClosure<0>()); 730 .WillOnce(RunClosure<0>());
731 731
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); 801 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5);
802 802
803 // Arrange to trigger a time update while the demuxer is in the middle of 803 // Arrange to trigger a time update while the demuxer is in the middle of
804 // seeking. This update should be ignored by the pipeline and the clock should 804 // seeking. This update should be ignored by the pipeline and the clock should
805 // not get updated. 805 // not get updated.
806 base::Closure closure = base::Bind(&RunTimeCB, audio_time_cb_, 300, 700); 806 base::Closure closure = base::Bind(&RunTimeCB, audio_time_cb_, 300, 700);
807 EXPECT_CALL(*demuxer_, Seek(seek_time, _)) 807 EXPECT_CALL(*demuxer_, Seek(seek_time, _))
808 .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run), 808 .WillOnce(DoAll(InvokeWithoutArgs(&closure, &base::Closure::Run),
809 RunCallback<1>(PIPELINE_OK))); 809 RunCallback<1>(PIPELINE_OK)));
810 810
811 EXPECT_CALL(*audio_renderer_, Pause()); 811 EXPECT_CALL(*audio_renderer_, StopRendering());
812 EXPECT_CALL(*audio_renderer_, Flush(_)) 812 EXPECT_CALL(*audio_renderer_, Flush(_))
813 .WillOnce(RunClosure<0>()); 813 .WillOnce(RunClosure<0>());
814 EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _)) 814 EXPECT_CALL(*audio_renderer_, Preroll(seek_time, _))
815 .WillOnce(RunCallback<1>(PIPELINE_OK)); 815 .WillOnce(RunCallback<1>(PIPELINE_OK));
816 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_)); 816 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(_));
817 EXPECT_CALL(*audio_renderer_, SetVolume(_)); 817 EXPECT_CALL(*audio_renderer_, SetVolume(_));
818 EXPECT_CALL(*audio_renderer_, Play()); 818 EXPECT_CALL(*audio_renderer_, StartRendering());
819 819
820 EXPECT_CALL(callbacks_, OnPrerollCompleted()); 820 EXPECT_CALL(callbacks_, OnPrerollCompleted());
821 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK)); 821 EXPECT_CALL(callbacks_, OnSeek(PIPELINE_OK));
822 DoSeek(seek_time); 822 DoSeek(seek_time);
823 823
824 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time); 824 EXPECT_EQ(pipeline_->GetMediaTime(), seek_time);
825 825
826 // Now that the seek is complete, verify that time updates advance the current 826 // Now that the seek is complete, verify that time updates advance the current
827 // time. 827 // time.
828 base::TimeDelta new_time = seek_time + base::TimeDelta::FromMilliseconds(100); 828 base::TimeDelta new_time = seek_time + base::TimeDelta::FromMilliseconds(100);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 // If we get here it's a successful initialization. 994 // If we get here it's a successful initialization.
995 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _)) 995 EXPECT_CALL(*audio_renderer_, Preroll(base::TimeDelta(), _))
996 .WillOnce(RunCallback<1>(PIPELINE_OK)); 996 .WillOnce(RunCallback<1>(PIPELINE_OK));
997 EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _)) 997 EXPECT_CALL(*video_renderer_, Preroll(base::TimeDelta(), _))
998 .WillOnce(RunCallback<1>(PIPELINE_OK)); 998 .WillOnce(RunCallback<1>(PIPELINE_OK));
999 999
1000 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); 1000 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
1001 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); 1001 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f));
1002 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); 1002 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
1003 1003
1004 EXPECT_CALL(*audio_renderer_, Play()); 1004 EXPECT_CALL(*audio_renderer_, StartRendering());
1005 EXPECT_CALL(*video_renderer_, Play(_)) 1005 EXPECT_CALL(*video_renderer_, Play(_))
1006 .WillOnce(RunClosure<0>()); 1006 .WillOnce(RunClosure<0>());
1007 1007
1008 if (status == PIPELINE_OK) 1008 if (status == PIPELINE_OK)
1009 EXPECT_CALL(callbacks_, OnPrerollCompleted()); 1009 EXPECT_CALL(callbacks_, OnPrerollCompleted());
1010 1010
1011 return status; 1011 return status;
1012 } 1012 }
1013 1013
1014 void DoSeek(TeardownState state, StopOrError stop_or_error) { 1014 void DoSeek(TeardownState state, StopOrError stop_or_error) {
(...skipping 15 matching lines...) Expand all
1030 } 1030 }
1031 1031
1032 PipelineStatus SetSeekExpectations(TeardownState state, 1032 PipelineStatus SetSeekExpectations(TeardownState state,
1033 StopOrError stop_or_error) { 1033 StopOrError stop_or_error) {
1034 PipelineStatus status = PIPELINE_OK; 1034 PipelineStatus status = PIPELINE_OK;
1035 base::Closure stop_cb = base::Bind( 1035 base::Closure stop_cb = base::Bind(
1036 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); 1036 &CallbackHelper::OnStop, base::Unretained(&callbacks_));
1037 1037
1038 if (state == kPausing) { 1038 if (state == kPausing) {
1039 if (stop_or_error == kStop) { 1039 if (stop_or_error == kStop) {
1040 EXPECT_CALL(*audio_renderer_, Pause()) 1040 EXPECT_CALL(*audio_renderer_, StopRendering())
1041 .WillOnce(Stop(pipeline_.get(), stop_cb)); 1041 .WillOnce(Stop(pipeline_.get(), stop_cb));
1042 } else { 1042 } else {
1043 status = PIPELINE_ERROR_READ; 1043 status = PIPELINE_ERROR_READ;
1044 EXPECT_CALL(*audio_renderer_, Pause()) 1044 EXPECT_CALL(*audio_renderer_, StopRendering())
1045 .WillOnce(SetError(pipeline_.get(), status)); 1045 .WillOnce(SetError(pipeline_.get(), status));
1046 } 1046 }
1047 1047
1048 return status; 1048 return status;
1049 } 1049 }
1050 1050
1051 EXPECT_CALL(*audio_renderer_, Pause()); 1051 EXPECT_CALL(*audio_renderer_, StopRendering());
1052 1052
1053 if (state == kFlushing) { 1053 if (state == kFlushing) {
1054 if (stop_or_error == kStop) { 1054 if (stop_or_error == kStop) {
1055 EXPECT_CALL(*audio_renderer_, Flush(_)) 1055 EXPECT_CALL(*audio_renderer_, Flush(_))
1056 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); 1056 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>()));
1057 } else { 1057 } else {
1058 status = PIPELINE_ERROR_READ; 1058 status = PIPELINE_ERROR_READ;
1059 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce( 1059 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(
1060 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); 1060 DoAll(SetError(pipeline_.get(), status), RunClosure<0>()));
1061 } 1061 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 EXPECT_CALL(*video_renderer_, Preroll(_, _)) 1102 EXPECT_CALL(*video_renderer_, Preroll(_, _))
1103 .WillOnce(RunCallback<1>(PIPELINE_OK)); 1103 .WillOnce(RunCallback<1>(PIPELINE_OK));
1104 1104
1105 // Playback rate and volume are updated prior to starting. 1105 // Playback rate and volume are updated prior to starting.
1106 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); 1106 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f));
1107 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); 1107 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f));
1108 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); 1108 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f));
1109 1109
1110 if (state == kStarting) { 1110 if (state == kStarting) {
1111 if (stop_or_error == kStop) { 1111 if (stop_or_error == kStop) {
1112 EXPECT_CALL(*audio_renderer_, Play()) 1112 EXPECT_CALL(*video_renderer_, Play(_))
1113 .WillOnce(Stop(pipeline_.get(), stop_cb)); 1113 .WillOnce(Stop(pipeline_.get(), stop_cb));
1114 } else { 1114 } else {
1115 status = PIPELINE_ERROR_READ; 1115 status = PIPELINE_ERROR_READ;
1116 EXPECT_CALL(*audio_renderer_, Play()) 1116 EXPECT_CALL(*video_renderer_, Play(_))
1117 .WillOnce(SetError(pipeline_.get(), status)); 1117 .WillOnce(SetError(pipeline_.get(), status));
1118 } 1118 }
1119 return status; 1119 return status;
1120 } 1120 }
1121 1121
1122 NOTREACHED() << "State not supported: " << state; 1122 NOTREACHED() << "State not supported: " << state;
1123 return status; 1123 return status;
1124 } 1124 }
1125 1125
1126 void DoStopOrError(StopOrError stop_or_error) { 1126 void DoStopOrError(StopOrError stop_or_error) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1177 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); 1177 INSTANTIATE_TEARDOWN_TEST(Error, Pausing);
1178 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); 1178 INSTANTIATE_TEARDOWN_TEST(Error, Flushing);
1179 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); 1179 INSTANTIATE_TEARDOWN_TEST(Error, Seeking);
1180 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); 1180 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling);
1181 INSTANTIATE_TEARDOWN_TEST(Error, Starting); 1181 INSTANTIATE_TEARDOWN_TEST(Error, Starting);
1182 INSTANTIATE_TEARDOWN_TEST(Error, Playing); 1182 INSTANTIATE_TEARDOWN_TEST(Error, Playing);
1183 1183
1184 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing); 1184 INSTANTIATE_TEARDOWN_TEST(ErrorAndStop, Playing);
1185 1185
1186 } // namespace media 1186 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698