| 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, | 192 url, |
| 184 frame->GetRoutingID()); | 193 frame->GetRoutingID()); |
| 185 | 194 |
| 186 if (!video_frame_provider_ && !audio_renderer_) { | 195 if (!video_frame_provider_ && !audio_renderer_) { |
| 187 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 196 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
| 188 return; | 197 return; |
| 189 } | 198 } |
| (...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 763 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() { | 772 bool WebMediaPlayerMS::Compositor::GetAlgorithmEnabled() { |
| 764 DCHECK(thread_checker_.CalledOnValidThread()); | 773 DCHECK(thread_checker_.CalledOnValidThread()); |
| 765 return !!frame_pool_; | 774 return !!frame_pool_; |
| 766 } | 775 } |
| 767 | 776 |
| 768 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) { | 777 void WebMediaPlayerMS::Compositor::SetSerial(uint32 serial) { |
| 769 DCHECK(thread_checker_.CalledOnValidThread()); | 778 DCHECK(thread_checker_.CalledOnValidThread()); |
| 770 serial_ = serial; | 779 serial_ = serial; |
| 771 } | 780 } |
| 772 } // namespace content | 781 } // namespace content |
| OLD | NEW |