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

Side by Side Diff: media/mojo/services/test_mojo_media_client.cc

Issue 1942803002: Caching AudioOutputDevice instances in mixer manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review comments addressed, map->vector in AudioRendererCacheImpl 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
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 "media/mojo/services/test_mojo_media_client.h" 5 #include "media/mojo/services/test_mojo_media_client.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "media/audio/audio_device_description.h" 10 #include "media/audio/audio_device_description.h"
(...skipping 19 matching lines...) Expand all
30 // across multiple threads... 30 // across multiple threads...
31 AudioManager* audio_manager = AudioManager::Get(); 31 AudioManager* audio_manager = AudioManager::Get();
32 if (!audio_manager) { 32 if (!audio_manager) {
33 audio_manager_ = media::AudioManager::CreateForTesting( 33 audio_manager_ = media::AudioManager::CreateForTesting(
34 base::ThreadTaskRunnerHandle::Get()); 34 base::ThreadTaskRunnerHandle::Get());
35 audio_manager = audio_manager_.get(); 35 audio_manager = audio_manager_.get();
36 // Flush the message loop to ensure that the audio manager is initialized. 36 // Flush the message loop to ensure that the audio manager is initialized.
37 base::RunLoop().RunUntilIdle(); 37 base::RunLoop().RunUntilIdle();
38 } 38 }
39 39
40 audio_hardware_config_.reset(new AudioHardwareConfig(
41 audio_manager->GetInputStreamParameters(
42 AudioDeviceDescription::kDefaultDeviceId),
43 audio_manager->GetDefaultOutputStreamParameters()));
44 } 40 }
45 41
46 void TestMojoMediaClient::WillQuit() { 42 void TestMojoMediaClient::WillQuit() {
47 DVLOG(1) << __FUNCTION__; 43 DVLOG(1) << __FUNCTION__;
48 // AudioManager destructor requires MessageLoop. 44 // AudioManager destructor requires MessageLoop.
49 // Destroy it before the message loop goes away. 45 // Destroy it before the message loop goes away.
50 audio_manager_.reset(); 46 audio_manager_.reset();
51 // Flush the message loop to ensure that the audio manager is destroyed. 47 // Flush the message loop to ensure that the audio manager is destroyed.
52 base::RunLoop().RunUntilIdle(); 48 base::RunLoop().RunUntilIdle();
53 } 49 }
54 50
55 std::unique_ptr<RendererFactory> TestMojoMediaClient::CreateRendererFactory( 51 std::unique_ptr<RendererFactory> TestMojoMediaClient::CreateRendererFactory(
56 const scoped_refptr<MediaLog>& media_log) { 52 const scoped_refptr<MediaLog>& media_log) {
57 DVLOG(1) << __FUNCTION__; 53 DVLOG(1) << __FUNCTION__;
58 return base::WrapUnique(new DefaultRendererFactory( 54 return base::WrapUnique(new DefaultRendererFactory(
59 media_log, nullptr, DefaultRendererFactory::GetGpuFactoriesCB(), 55 media_log, nullptr, DefaultRendererFactory::GetGpuFactoriesCB()));
60 *audio_hardware_config_));
61 } 56 }
62 57
63 AudioRendererSink* TestMojoMediaClient::CreateAudioRendererSink() { 58 AudioRendererSink* TestMojoMediaClient::CreateAudioRendererSink() {
64 if (!audio_renderer_sink_) 59 if (!audio_renderer_sink_)
65 audio_renderer_sink_ = new AudioOutputStreamSink(); 60 audio_renderer_sink_ = new AudioOutputStreamSink();
66 61
67 return audio_renderer_sink_.get(); 62 return audio_renderer_sink_.get();
68 } 63 }
69 64
70 VideoRendererSink* TestMojoMediaClient::CreateVideoRendererSink( 65 VideoRendererSink* TestMojoMediaClient::CreateVideoRendererSink(
71 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) { 66 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) {
72 if (!video_renderer_sink_) { 67 if (!video_renderer_sink_) {
73 video_renderer_sink_ = base::WrapUnique( 68 video_renderer_sink_ = base::WrapUnique(
74 new NullVideoSink(false, base::TimeDelta::FromSecondsD(1.0 / 60), 69 new NullVideoSink(false, base::TimeDelta::FromSecondsD(1.0 / 60),
75 NullVideoSink::NewFrameCB(), task_runner)); 70 NullVideoSink::NewFrameCB(), task_runner));
76 } 71 }
77 72
78 return video_renderer_sink_.get(); 73 return video_renderer_sink_.get();
79 } 74 }
80 75
81 std::unique_ptr<CdmFactory> TestMojoMediaClient::CreateCdmFactory( 76 std::unique_ptr<CdmFactory> TestMojoMediaClient::CreateCdmFactory(
82 shell::mojom::InterfaceProvider* /* interface_provider */) { 77 shell::mojom::InterfaceProvider* /* interface_provider */) {
83 DVLOG(1) << __FUNCTION__; 78 DVLOG(1) << __FUNCTION__;
84 return base::WrapUnique(new DefaultCdmFactory()); 79 return base::WrapUnique(new DefaultCdmFactory());
85 } 80 }
86 81
87 } // namespace media 82 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698