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 28 matching lines...) Expand all Loading... | |
39 | 39 |
40 if (!media::IsMediaLibraryInitialized()) { | 40 if (!media::IsMediaLibraryInitialized()) { |
41 base::FilePath module_dir; | 41 base::FilePath module_dir; |
42 CHECK(PathService::Get(base::DIR_EXE, &module_dir)); | 42 CHECK(PathService::Get(base::DIR_EXE, &module_dir)); |
43 CHECK(media::InitializeMediaLibrary(module_dir)); | 43 CHECK(media::InitializeMediaLibrary(module_dir)); |
44 } | 44 } |
45 } | 45 } |
46 | 46 |
47 WebMediaPlayerFactory::~WebMediaPlayerFactory() { | 47 WebMediaPlayerFactory::~WebMediaPlayerFactory() { |
48 } | 48 } |
49 | 49 |
xhwang
2014/12/13 01:06:31
err, I'll add #if !defined(OS_ANDROID) here...
xhwang
2014/12/15 19:51:11
Done.
| |
50 // Helper function to take the ownership of |service_provider_ptr|. Note that | |
51 // mojo::ConnectToService takes a raw pointer which doesn't take the ownership. | |
52 static void ConnectToMediaRendererService( | |
53 ServiceProviderPtr service_provider_ptr, | |
54 InterfacePtr<MediaRenderer>* media_renderer_ptr) { | |
55 ConnectToService(service_provider_ptr.get(), media_renderer_ptr); | |
56 } | |
57 | |
50 blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer( | 58 blink::WebMediaPlayer* WebMediaPlayerFactory::CreateMediaPlayer( |
51 blink::WebLocalFrame* frame, | 59 blink::WebLocalFrame* frame, |
52 const blink::WebURL& url, | 60 const blink::WebURL& url, |
53 blink::WebMediaPlayerClient* client, | 61 blink::WebMediaPlayerClient* client, |
54 Shell* shell) { | 62 Shell* shell) { |
55 #if defined(OS_ANDROID) | 63 #if defined(OS_ANDROID) |
56 return nullptr; | 64 return nullptr; |
57 #else | 65 #else |
58 scoped_refptr<media::MediaLog> media_log(new media::MediaLog()); | 66 scoped_refptr<media::MediaLog> media_log(new media::MediaLog()); |
59 scoped_ptr<media::RendererFactory> media_renderer_factory; | 67 scoped_ptr<media::RendererFactory> media_renderer_factory; |
60 | 68 |
61 if (enable_mojo_media_renderer_) { | 69 if (enable_mojo_media_renderer_) { |
62 ServiceProviderPtr media_renderer_service_provider; | 70 ServiceProviderPtr media_renderer_service_provider; |
63 shell->ConnectToApplication("mojo:media", | 71 shell->ConnectToApplication("mojo:media", |
64 GetProxy(&media_renderer_service_provider)); | 72 GetProxy(&media_renderer_service_provider)); |
65 media_renderer_factory.reset( | 73 media_renderer_factory.reset(new media::MojoRendererFactory( |
66 new media::MojoRendererFactory(media_renderer_service_provider.Pass())); | 74 base::Bind(&ConnectToMediaRendererService, |
75 base::Passed(&media_renderer_service_provider)))); | |
67 } else { | 76 } else { |
68 media_renderer_factory.reset( | 77 media_renderer_factory.reset( |
69 new media::DefaultRendererFactory(media_log, | 78 new media::DefaultRendererFactory(media_log, |
70 nullptr, // No GPU factory. | 79 nullptr, // No GPU factory. |
71 GetAudioHardwareConfig())); | 80 GetAudioHardwareConfig())); |
72 } | 81 } |
73 | 82 |
74 media::WebMediaPlayerParams params( | 83 media::WebMediaPlayerParams params( |
75 media::WebMediaPlayerParams::DeferLoadCB(), CreateAudioRendererSink(), | 84 media::WebMediaPlayerParams::DeferLoadCB(), CreateAudioRendererSink(), |
76 media_log, GetMediaThreadTaskRunner(), compositor_task_runner_, nullptr); | 85 media_log, GetMediaThreadTaskRunner(), compositor_task_runner_, nullptr); |
(...skipping 19 matching lines...) Expand all Loading... | |
96 | 105 |
97 scoped_refptr<base::SingleThreadTaskRunner> | 106 scoped_refptr<base::SingleThreadTaskRunner> |
98 WebMediaPlayerFactory::GetMediaThreadTaskRunner() { | 107 WebMediaPlayerFactory::GetMediaThreadTaskRunner() { |
99 if (!media_thread_.IsRunning()) | 108 if (!media_thread_.IsRunning()) |
100 media_thread_.Start(); | 109 media_thread_.Start(); |
101 | 110 |
102 return media_thread_.message_loop_proxy(); | 111 return media_thread_.message_loop_proxy(); |
103 } | 112 } |
104 | 113 |
105 } // namespace mojo | 114 } // namespace mojo |
OLD | NEW |