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

Side by Side Diff: media/test/pipeline_integration_test_base.cc

Issue 1904793002: Move Pipeline permanent callbacks into Pipeline::Client interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: post stop callback Created 4 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
« no previous file with comments | « media/test/pipeline_integration_test_base.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/test/pipeline_integration_test_base.h" 5 #include "media/test/pipeline_integration_test_base.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 PipelineStatus PipelineIntegrationTestBase::StartInternal( 117 PipelineStatus PipelineIntegrationTestBase::StartInternal(
118 std::unique_ptr<DataSource> data_source, 118 std::unique_ptr<DataSource> data_source,
119 CdmContext* cdm_context, 119 CdmContext* cdm_context,
120 uint8_t test_type) { 120 uint8_t test_type) {
121 hashing_enabled_ = test_type & kHashed; 121 hashing_enabled_ = test_type & kHashed;
122 clockless_playback_ = test_type & kClockless; 122 clockless_playback_ = test_type & kClockless;
123 123
124 EXPECT_CALL(*this, OnMetadata(_)) 124 EXPECT_CALL(*this, OnMetadata(_))
125 .Times(AtMost(1)) 125 .Times(AtMost(1))
126 .WillRepeatedly(SaveArg<0>(&metadata_)); 126 .WillRepeatedly(SaveArg<0>(&metadata_));
127 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 127 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH))
128 .Times(AnyNumber()); 128 .Times(AnyNumber());
129 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_NOTHING)) 129 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_NOTHING))
130 .Times(AnyNumber()); 130 .Times(AnyNumber());
131 CreateDemuxer(std::move(data_source)); 131 CreateDemuxer(std::move(data_source));
132 132
133 if (cdm_context) { 133 if (cdm_context) {
134 EXPECT_CALL(*this, DecryptorAttached(true)); 134 EXPECT_CALL(*this, DecryptorAttached(true));
135 pipeline_->SetCdm( 135 pipeline_->SetCdm(
136 cdm_context, base::Bind(&PipelineIntegrationTestBase::DecryptorAttached, 136 cdm_context, base::Bind(&PipelineIntegrationTestBase::DecryptorAttached,
137 base::Unretained(this))); 137 base::Unretained(this)));
138 } 138 }
139 139
140 // Should never be called as the required decryption keys for the encrypted 140 // Should never be called as the required decryption keys for the encrypted
141 // media files are provided in advance. 141 // media files are provided in advance.
142 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0); 142 EXPECT_CALL(*this, OnWaitingForDecryptionKey()).Times(0);
143 143
144 pipeline_->Start( 144 pipeline_->Start(demuxer_.get(), CreateRenderer(), this,
145 demuxer_.get(), CreateRenderer(), 145 base::Bind(&PipelineIntegrationTestBase::OnStatusCallback,
146 base::Bind(&PipelineIntegrationTestBase::OnEnded, base::Unretained(this)), 146 base::Unretained(this)));
147 base::Bind(&PipelineIntegrationTestBase::OnError, base::Unretained(this)),
148 base::Bind(&PipelineIntegrationTestBase::OnStatusCallback,
149 base::Unretained(this)),
150 base::Bind(&PipelineIntegrationTestBase::OnMetadata,
151 base::Unretained(this)),
152 base::Bind(&PipelineIntegrationTestBase::OnBufferingStateChanged,
153 base::Unretained(this)),
154 base::Closure(), base::Bind(&PipelineIntegrationTestBase::OnAddTextTrack,
155 base::Unretained(this)),
156 base::Bind(&PipelineIntegrationTestBase::OnWaitingForDecryptionKey,
157 base::Unretained(this)));
158 message_loop_.Run(); 147 message_loop_.Run();
159 return pipeline_status_; 148 return pipeline_status_;
160 } 149 }
161 150
162 PipelineStatus PipelineIntegrationTestBase::StartWithFile( 151 PipelineStatus PipelineIntegrationTestBase::StartWithFile(
163 const std::string& filename, 152 const std::string& filename,
164 CdmContext* cdm_context, 153 CdmContext* cdm_context,
165 uint8_t test_type) { 154 uint8_t test_type) {
166 std::unique_ptr<FileDataSource> file_data_source(new FileDataSource()); 155 std::unique_ptr<FileDataSource> file_data_source(new FileDataSource());
167 base::FilePath file_path(GetTestDataFilePath(filename)); 156 base::FilePath file_path(GetTestDataFilePath(filename));
(...skipping 27 matching lines...) Expand all
195 pipeline_->SetPlaybackRate(1); 184 pipeline_->SetPlaybackRate(1);
196 } 185 }
197 186
198 void PipelineIntegrationTestBase::Pause() { 187 void PipelineIntegrationTestBase::Pause() {
199 pipeline_->SetPlaybackRate(0); 188 pipeline_->SetPlaybackRate(0);
200 } 189 }
201 190
202 bool PipelineIntegrationTestBase::Seek(base::TimeDelta seek_time) { 191 bool PipelineIntegrationTestBase::Seek(base::TimeDelta seek_time) {
203 ended_ = false; 192 ended_ = false;
204 193
205 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 194 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH))
206 .WillOnce(InvokeWithoutArgs(&message_loop_, &base::MessageLoop::QuitNow)); 195 .WillOnce(InvokeWithoutArgs(&message_loop_, &base::MessageLoop::QuitNow));
207 pipeline_->Seek(seek_time, base::Bind(&PipelineIntegrationTestBase::OnSeeked, 196 pipeline_->Seek(seek_time, base::Bind(&PipelineIntegrationTestBase::OnSeeked,
208 base::Unretained(this), seek_time)); 197 base::Unretained(this), seek_time));
209 message_loop_.Run(); 198 message_loop_.Run();
210 return (pipeline_status_ == PIPELINE_OK); 199 return (pipeline_status_ == PIPELINE_OK);
211 } 200 }
212 201
213 bool PipelineIntegrationTestBase::Suspend() { 202 bool PipelineIntegrationTestBase::Suspend() {
214 pipeline_->Suspend(base::Bind(&PipelineIntegrationTestBase::OnStatusCallback, 203 pipeline_->Suspend(base::Bind(&PipelineIntegrationTestBase::OnStatusCallback,
215 base::Unretained(this))); 204 base::Unretained(this)));
216 message_loop_.Run(); 205 message_loop_.Run();
217 return (pipeline_status_ == PIPELINE_OK); 206 return (pipeline_status_ == PIPELINE_OK);
218 } 207 }
219 208
220 bool PipelineIntegrationTestBase::Resume(base::TimeDelta seek_time) { 209 bool PipelineIntegrationTestBase::Resume(base::TimeDelta seek_time) {
221 ended_ = false; 210 ended_ = false;
222 211
223 EXPECT_CALL(*this, OnBufferingStateChanged(BUFFERING_HAVE_ENOUGH)) 212 EXPECT_CALL(*this, OnBufferingStateChange(BUFFERING_HAVE_ENOUGH))
224 .WillOnce(InvokeWithoutArgs(&message_loop_, &base::MessageLoop::QuitNow)); 213 .WillOnce(InvokeWithoutArgs(&message_loop_, &base::MessageLoop::QuitNow));
225 pipeline_->Resume(CreateRenderer(), seek_time, 214 pipeline_->Resume(CreateRenderer(), seek_time,
226 base::Bind(&PipelineIntegrationTestBase::OnSeeked, 215 base::Bind(&PipelineIntegrationTestBase::OnSeeked,
227 base::Unretained(this), seek_time)); 216 base::Unretained(this), seek_time));
228 message_loop_.Run(); 217 message_loop_.Run();
229 return (pipeline_status_ == PIPELINE_OK); 218 return (pipeline_status_ == PIPELINE_OK);
230 } 219 }
231 220
232 void PipelineIntegrationTestBase::Stop() { 221 void PipelineIntegrationTestBase::Stop() {
233 DCHECK(pipeline_->IsRunning()); 222 DCHECK(pipeline_->IsRunning());
234 pipeline_->Stop(base::MessageLoop::QuitWhenIdleClosure()); 223 pipeline_->Stop();
235 message_loop_.Run(); 224 message_loop_.RunUntilIdle();
236 } 225 }
237 226
238 void PipelineIntegrationTestBase::FailTest(PipelineStatus status) { 227 void PipelineIntegrationTestBase::FailTest(PipelineStatus status) {
239 DCHECK_NE(PIPELINE_OK, status); 228 DCHECK_NE(PIPELINE_OK, status);
240 OnError(status); 229 OnError(status);
241 } 230 }
242 231
243 void PipelineIntegrationTestBase::QuitAfterCurrentTimeTask( 232 void PipelineIntegrationTestBase::QuitAfterCurrentTimeTask(
244 const base::TimeDelta& quit_time) { 233 const base::TimeDelta& quit_time) {
245 if (pipeline_->GetMediaTime() >= quit_time || 234 if (pipeline_->GetMediaTime() >= quit_time ||
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 DCHECK(clockless_playback_); 378 DCHECK(clockless_playback_);
390 return clockless_audio_sink_->render_time(); 379 return clockless_audio_sink_->render_time();
391 } 380 }
392 381
393 base::TimeTicks DummyTickClock::NowTicks() { 382 base::TimeTicks DummyTickClock::NowTicks() {
394 now_ += base::TimeDelta::FromSeconds(60); 383 now_ += base::TimeDelta::FromSeconds(60);
395 return now_; 384 return now_;
396 } 385 }
397 386
398 } // namespace media 387 } // namespace media
OLDNEW
« no previous file with comments | « media/test/pipeline_integration_test_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698