OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/renderer/media/webmediaplayer_ms.h" | 5 #include "content/renderer/media/webmediaplayer_ms.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 } | 96 } |
97 | 97 |
98 } // anonymous namespace | 98 } // anonymous namespace |
99 | 99 |
100 WebMediaPlayerMS::WebMediaPlayerMS( | 100 WebMediaPlayerMS::WebMediaPlayerMS( |
101 blink::WebFrame* frame, | 101 blink::WebFrame* frame, |
102 blink::WebMediaPlayerClient* client, | 102 blink::WebMediaPlayerClient* client, |
103 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, | 103 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
104 media::MediaLog* media_log, | 104 media::MediaLog* media_log, |
105 scoped_ptr<MediaStreamRendererFactory> factory, | 105 scoped_ptr<MediaStreamRendererFactory> factory, |
106 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner) | 106 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
| 107 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| 108 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| 109 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories) |
107 : frame_(frame), | 110 : frame_(frame), |
108 network_state_(WebMediaPlayer::NetworkStateEmpty), | 111 network_state_(WebMediaPlayer::NetworkStateEmpty), |
109 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 112 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
110 buffered_(static_cast<size_t>(0)), | 113 buffered_(static_cast<size_t>(0)), |
111 volume_(1.0f), | 114 volume_(1.0f), |
112 client_(client), | 115 client_(client), |
113 delegate_(delegate), | 116 delegate_(delegate), |
114 paused_(true), | 117 paused_(true), |
115 received_first_frame_(false), | 118 received_first_frame_(false), |
116 media_log_(media_log), | 119 media_log_(media_log), |
117 renderer_factory_(factory.Pass()), | 120 renderer_factory_(factory.Pass()), |
| 121 media_task_runner_(media_task_runner), |
| 122 worker_task_runner_(worker_task_runner), |
| 123 gpu_factories_(gpu_factories), |
118 compositor_(new Compositor(compositor_task_runner)), | 124 compositor_(new Compositor(compositor_task_runner)), |
119 compositor_task_runner_(compositor_task_runner) { | 125 compositor_task_runner_(compositor_task_runner) { |
120 DVLOG(1) << "WebMediaPlayerMS::ctor"; | 126 DVLOG(1) << "WebMediaPlayerMS::ctor"; |
121 media_log_->AddEvent( | 127 media_log_->AddEvent( |
122 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 128 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
123 } | 129 } |
124 | 130 |
125 WebMediaPlayerMS::~WebMediaPlayerMS() { | 131 WebMediaPlayerMS::~WebMediaPlayerMS() { |
126 DVLOG(1) << "WebMediaPlayerMS::dtor"; | 132 DVLOG(1) << "WebMediaPlayerMS::dtor"; |
127 DCHECK(thread_checker_.CalledOnValidThread()); | 133 DCHECK(thread_checker_.CalledOnValidThread()); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 uint32 hash_value = base::Hash(url.string().utf8()); | 175 uint32 hash_value = base::Hash(url.string().utf8()); |
170 compositor_->SetSerial(((hash_value & 0x7FFFFFFF) << 1) | (remote ? 1 : 0)); | 176 compositor_->SetSerial(((hash_value & 0x7FFFFFFF) << 1) | (remote ? 1 : 0)); |
171 | 177 |
172 SetNetworkState(WebMediaPlayer::NetworkStateLoading); | 178 SetNetworkState(WebMediaPlayer::NetworkStateLoading); |
173 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); | 179 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); |
174 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); | 180 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); |
175 | 181 |
176 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( | 182 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( |
177 url, | 183 url, |
178 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), | 184 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), |
179 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); | 185 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()), |
| 186 media_task_runner_, |
| 187 worker_task_runner_, |
| 188 gpu_factories_); |
180 | 189 |
181 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); | 190 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); |
182 audio_renderer_ = renderer_factory_->GetAudioRenderer( | 191 audio_renderer_ = renderer_factory_->GetAudioRenderer( |
183 url, frame->GetRoutingID(), std::string(), url::Origin()); | 192 url, frame->GetRoutingID(), std::string(), url::Origin()); |
184 | 193 |
185 if (!video_frame_provider_ && !audio_renderer_) { | 194 if (!video_frame_provider_ && !audio_renderer_) { |
186 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 195 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
187 return; | 196 return; |
188 } | 197 } |
189 | 198 |
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() { | 771 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() { |
763 DCHECK(thread_checker_.CalledOnValidThread()); | 772 DCHECK(thread_checker_.CalledOnValidThread()); |
764 return !!frame_pool_; | 773 return !!frame_pool_; |
765 } | 774 } |
766 | 775 |
767 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) { | 776 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) { |
768 DCHECK(thread_checker_.CalledOnValidThread()); | 777 DCHECK(thread_checker_.CalledOnValidThread()); |
769 serial_ = serial; | 778 serial_ = serial; |
770 } | 779 } |
771 } // namespace content | 780 } // namespace content |
OLD | NEW |