OLD | NEW |
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 "mojo/services/html_viewer/webmediaplayer_factory.h" | 5 #include "mojo/services/html_viewer/webmediaplayer_factory.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/threading/thread.h" | 10 #include "base/threading/thread.h" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 if (enable_mojo_media_renderer_) { | 58 if (enable_mojo_media_renderer_) { |
59 ServiceProviderPtr media_renderer_service_provider; | 59 ServiceProviderPtr media_renderer_service_provider; |
60 shell->ConnectToApplication("mojo:mojo_media_renderer_app", | 60 shell->ConnectToApplication("mojo:mojo_media_renderer_app", |
61 GetProxy(&media_renderer_service_provider)); | 61 GetProxy(&media_renderer_service_provider)); |
62 renderer.reset(new media::MojoRendererImpl( | 62 renderer.reset(new media::MojoRendererImpl( |
63 GetMediaThreadTaskRunner(), media_renderer_service_provider.get())); | 63 GetMediaThreadTaskRunner(), media_renderer_service_provider.get())); |
64 } | 64 } |
65 | 65 |
66 media::WebMediaPlayerParams params( | 66 media::WebMediaPlayerParams params( |
67 media::WebMediaPlayerParams::DeferLoadCB(), | 67 media::WebMediaPlayerParams::DeferLoadCB(), CreateAudioRendererSink(), |
68 CreateAudioRendererSink(), | 68 GetAudioHardwareConfig(), new media::MediaLog(), |
69 GetAudioHardwareConfig(), | |
70 new media::MediaLog(), | |
71 scoped_refptr<media::GpuVideoAcceleratorFactories>(), | 69 scoped_refptr<media::GpuVideoAcceleratorFactories>(), |
72 GetMediaThreadTaskRunner(), | 70 GetMediaThreadTaskRunner(), compositor_task_runner_, |
73 compositor_task_runner_, | 71 media::WebMediaPlayerParams::Context3DCB(), nullptr); |
74 NULL); | |
75 base::WeakPtr<media::WebMediaPlayerDelegate> delegate; | 72 base::WeakPtr<media::WebMediaPlayerDelegate> delegate; |
76 | 73 |
77 // TODO(xhwang): Provide a media based CdmFactory implementation. | 74 // TODO(xhwang): Provide a media based CdmFactory implementation. |
78 return new media::WebMediaPlayerImpl(frame, client, delegate, renderer.Pass(), | 75 return new media::WebMediaPlayerImpl(frame, client, delegate, renderer.Pass(), |
79 nullptr, params); | 76 nullptr, params); |
80 #endif | 77 #endif |
81 } | 78 } |
82 | 79 |
83 const media::AudioHardwareConfig& | 80 const media::AudioHardwareConfig& |
84 WebMediaPlayerFactory::GetAudioHardwareConfig() { | 81 WebMediaPlayerFactory::GetAudioHardwareConfig() { |
85 return audio_hardware_config_; | 82 return audio_hardware_config_; |
86 } | 83 } |
87 | 84 |
88 scoped_refptr<media::AudioRendererSink> | 85 scoped_refptr<media::AudioRendererSink> |
89 WebMediaPlayerFactory::CreateAudioRendererSink() { | 86 WebMediaPlayerFactory::CreateAudioRendererSink() { |
90 // TODO(dalecurtis): Replace this with an interface to an actual mojo service; | 87 // TODO(dalecurtis): Replace this with an interface to an actual mojo service; |
91 // the AudioOutputStreamSink will not work in sandboxed processes. | 88 // the AudioOutputStreamSink will not work in sandboxed processes. |
92 return new media::AudioOutputStreamSink(); | 89 return new media::AudioOutputStreamSink(); |
93 } | 90 } |
94 | 91 |
95 scoped_refptr<base::SingleThreadTaskRunner> | 92 scoped_refptr<base::SingleThreadTaskRunner> |
96 WebMediaPlayerFactory::GetMediaThreadTaskRunner() { | 93 WebMediaPlayerFactory::GetMediaThreadTaskRunner() { |
97 if (!media_thread_.IsRunning()) | 94 if (!media_thread_.IsRunning()) |
98 media_thread_.Start(); | 95 media_thread_.Start(); |
99 | 96 |
100 return media_thread_.message_loop_proxy(); | 97 return media_thread_.message_loop_proxy(); |
101 } | 98 } |
102 | 99 |
103 } // namespace mojo | 100 } // namespace mojo |
OLD | NEW |