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

Side by Side Diff: chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc

Issue 1142513004: Chromecast: MessageLoopProxy cleanup --> SingleThreadTaskRunner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/files/memory_mapped_file.h" 11 #include "base/files/memory_mapped_file.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/memory/scoped_vector.h" 15 #include "base/memory/scoped_vector.h"
16 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
17 #include "base/message_loop/message_loop_proxy.h"
18 #include "base/path_service.h" 17 #include "base/path_service.h"
18 #include "base/single_thread_task_runner.h"
19 #include "base/thread_task_runner_handle.h"
19 #include "base/threading/thread.h" 20 #include "base/threading/thread.h"
20 #include "base/time/time.h" 21 #include "base/time/time.h"
21 #include "chromecast/media/base/decrypt_context.h" 22 #include "chromecast/media/base/decrypt_context.h"
22 #include "chromecast/media/cma/backend/audio_pipeline_device.h" 23 #include "chromecast/media/cma/backend/audio_pipeline_device.h"
23 #include "chromecast/media/cma/backend/media_clock_device.h" 24 #include "chromecast/media/cma/backend/media_clock_device.h"
24 #include "chromecast/media/cma/backend/media_pipeline_device.h" 25 #include "chromecast/media/cma/backend/media_pipeline_device.h"
25 #include "chromecast/media/cma/backend/media_pipeline_device_params.h" 26 #include "chromecast/media/cma/backend/media_pipeline_device_params.h"
26 #include "chromecast/media/cma/backend/video_pipeline_device.h" 27 #include "chromecast/media/cma/backend/video_pipeline_device.h"
27 #include "chromecast/media/cma/base/decoder_buffer_adapter.h" 28 #include "chromecast/media/cma/base/decoder_buffer_adapter.h"
28 #include "chromecast/media/cma/base/decoder_buffer_base.h" 29 #include "chromecast/media/cma/base/decoder_buffer_base.h"
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 base::Unretained(this), 231 base::Unretained(this),
231 device_feeder)); 232 device_feeder));
232 component_device_feeders_.push_back(device_feeder); 233 component_device_feeders_.push_back(device_feeder);
233 } 234 }
234 235
235 void AudioVideoPipelineDeviceTest::Start() { 236 void AudioVideoPipelineDeviceTest::Start() {
236 pause_time_ = base::TimeDelta(); 237 pause_time_ = base::TimeDelta();
237 pause_pattern_idx_ = 0; 238 pause_pattern_idx_ = 0;
238 239
239 for (size_t i = 0; i < component_device_feeders_.size(); i++) { 240 for (size_t i = 0; i < component_device_feeders_.size(); i++) {
240 base::MessageLoopProxy::current()->PostTask( 241 base::ThreadTaskRunnerHandle::Get()->PostTask(
241 FROM_HERE, 242 FROM_HERE, base::Bind(&MediaComponentDeviceFeederForTest::Feed,
242 base::Bind(&MediaComponentDeviceFeederForTest::Feed, 243 base::Unretained(component_device_feeders_[i])));
243 base::Unretained(component_device_feeders_[i])));
244 } 244 }
245 245
246 media_clock_device_->SetState(MediaClockDevice::kStateRunning); 246 media_clock_device_->SetState(MediaClockDevice::kStateRunning);
247 247
248 base::MessageLoopProxy::current()->PostTask( 248 base::ThreadTaskRunnerHandle::Get()->PostTask(
249 FROM_HERE, 249 FROM_HERE, base::Bind(&AudioVideoPipelineDeviceTest::MonitorLoop,
250 base::Bind(&AudioVideoPipelineDeviceTest::MonitorLoop, 250 base::Unretained(this)));
251 base::Unretained(this)));
252 } 251 }
253 252
254 void AudioVideoPipelineDeviceTest::MonitorLoop() { 253 void AudioVideoPipelineDeviceTest::MonitorLoop() {
255 base::TimeDelta media_time = media_clock_device_->GetTime(); 254 base::TimeDelta media_time = media_clock_device_->GetTime();
256 255
257 if (!pause_pattern_.empty() && 256 if (!pause_pattern_.empty() &&
258 pause_pattern_[pause_pattern_idx_].delay >= base::TimeDelta() && 257 pause_pattern_[pause_pattern_idx_].delay >= base::TimeDelta() &&
259 media_time >= pause_time_ + pause_pattern_[pause_pattern_idx_].delay) { 258 media_time >= pause_time_ + pause_pattern_[pause_pattern_idx_].delay) {
260 // Do Pause 259 // Do Pause
261 media_clock_device_->SetRate(0.0); 260 media_clock_device_->SetRate(0.0);
262 pause_time_ = media_clock_device_->GetTime(); 261 pause_time_ = media_clock_device_->GetTime();
263 262
264 VLOG(2) << "Pausing at " << pause_time_.InMilliseconds() << "ms for " << 263 VLOG(2) << "Pausing at " << pause_time_.InMilliseconds() << "ms for " <<
265 pause_pattern_[pause_pattern_idx_].length.InMilliseconds() << "ms"; 264 pause_pattern_[pause_pattern_idx_].length.InMilliseconds() << "ms";
266 265
267 // Wait for pause finish 266 // Wait for pause finish
268 base::MessageLoopProxy::current()->PostDelayedTask( 267 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
269 FROM_HERE, 268 FROM_HERE, base::Bind(&AudioVideoPipelineDeviceTest::OnPauseCompleted,
270 base::Bind(&AudioVideoPipelineDeviceTest::OnPauseCompleted, 269 base::Unretained(this)),
271 base::Unretained(this)),
272 pause_pattern_[pause_pattern_idx_].length); 270 pause_pattern_[pause_pattern_idx_].length);
273 return; 271 return;
274 } 272 }
275 273
276 // Check state again in a little while 274 // Check state again in a little while
277 base::MessageLoopProxy::current()->PostDelayedTask( 275 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
278 FROM_HERE, 276 FROM_HERE, base::Bind(&AudioVideoPipelineDeviceTest::MonitorLoop,
279 base::Bind(&AudioVideoPipelineDeviceTest::MonitorLoop, 277 base::Unretained(this)),
280 base::Unretained(this)),
281 kMonitorLoopDelay); 278 kMonitorLoopDelay);
282 } 279 }
283 280
284 void AudioVideoPipelineDeviceTest::OnPauseCompleted() { 281 void AudioVideoPipelineDeviceTest::OnPauseCompleted() {
285 // Make sure the media time didn't move during that time. 282 // Make sure the media time didn't move during that time.
286 base::TimeDelta media_time = media_clock_device_->GetTime(); 283 base::TimeDelta media_time = media_clock_device_->GetTime();
287 284
288 // TODO(damienv): 285 // TODO(damienv):
289 // Should be: 286 // Should be:
290 // EXPECT_EQ(media_time, media_time_); 287 // EXPECT_EQ(media_time, media_time_);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback) { 380 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback) {
384 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); 381 scoped_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
385 382
386 ConfigureForFile("bear-640x360.webm"); 383 ConfigureForFile("bear-640x360.webm");
387 Start(); 384 Start();
388 message_loop->Run(); 385 message_loop->Run();
389 } 386 }
390 387
391 } // namespace media 388 } // namespace media
392 } // namespace chromecast 389 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cdm/browser_cdm_cast.cc ('k') | chromecast/media/cma/backend/media_pipeline_device_fake.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698