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 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 } | 89 } |
90 | 90 |
91 } // anonymous namespace | 91 } // anonymous namespace |
92 | 92 |
93 WebMediaPlayerMS::WebMediaPlayerMS( | 93 WebMediaPlayerMS::WebMediaPlayerMS( |
94 blink::WebFrame* frame, | 94 blink::WebFrame* frame, |
95 blink::WebMediaPlayerClient* client, | 95 blink::WebMediaPlayerClient* client, |
96 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, | 96 base::WeakPtr<media::WebMediaPlayerDelegate> delegate, |
97 media::MediaLog* media_log, | 97 media::MediaLog* media_log, |
98 scoped_ptr<MediaStreamRendererFactory> factory, | 98 scoped_ptr<MediaStreamRendererFactory> factory, |
99 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner) | 99 const scoped_refptr<base::SingleThreadTaskRunner>& compositor_task_runner, |
| 100 const scoped_refptr<base::SingleThreadTaskRunner>& media_task_runner, |
| 101 const scoped_refptr<base::TaskRunner>& worker_task_runner, |
| 102 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories) |
100 : frame_(frame), | 103 : frame_(frame), |
101 network_state_(WebMediaPlayer::NetworkStateEmpty), | 104 network_state_(WebMediaPlayer::NetworkStateEmpty), |
102 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), | 105 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), |
103 buffered_(static_cast<size_t>(0)), | 106 buffered_(static_cast<size_t>(0)), |
104 volume_(1.0f), | 107 volume_(1.0f), |
105 client_(client), | 108 client_(client), |
106 delegate_(delegate), | 109 delegate_(delegate), |
107 paused_(true), | 110 paused_(true), |
108 received_first_frame_(false), | 111 received_first_frame_(false), |
109 media_log_(media_log), | 112 media_log_(media_log), |
110 renderer_factory_(factory.Pass()), | 113 renderer_factory_(factory.Pass()), |
| 114 media_task_runner_(media_task_runner), |
| 115 worker_task_runner_(worker_task_runner), |
| 116 gpu_factories_(gpu_factories), |
111 compositor_(new Compositor(compositor_task_runner)), | 117 compositor_(new Compositor(compositor_task_runner)), |
112 compositor_task_runner_(compositor_task_runner) { | 118 compositor_task_runner_(compositor_task_runner) { |
113 DVLOG(1) << "WebMediaPlayerMS::ctor"; | 119 DVLOG(1) << "WebMediaPlayerMS::ctor"; |
114 media_log_->AddEvent( | 120 media_log_->AddEvent( |
115 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 121 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
116 } | 122 } |
117 | 123 |
118 WebMediaPlayerMS::~WebMediaPlayerMS() { | 124 WebMediaPlayerMS::~WebMediaPlayerMS() { |
119 DVLOG(1) << "WebMediaPlayerMS::dtor"; | 125 DVLOG(1) << "WebMediaPlayerMS::dtor"; |
120 DCHECK(thread_checker_.CalledOnValidThread()); | 126 DCHECK(thread_checker_.CalledOnValidThread()); |
(...skipping 27 matching lines...) Expand all Loading... |
148 | 154 |
149 GURL gurl(url); | 155 GURL gurl(url); |
150 | 156 |
151 SetNetworkState(WebMediaPlayer::NetworkStateLoading); | 157 SetNetworkState(WebMediaPlayer::NetworkStateLoading); |
152 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); | 158 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); |
153 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); | 159 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); |
154 | 160 |
155 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( | 161 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( |
156 url, | 162 url, |
157 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), | 163 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), |
158 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr())); | 164 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()), |
| 165 media_task_runner_, |
| 166 worker_task_runner_, |
| 167 gpu_factories_); |
159 | 168 |
160 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); | 169 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); |
161 audio_renderer_ = renderer_factory_->GetAudioRenderer( | 170 audio_renderer_ = renderer_factory_->GetAudioRenderer( |
162 url, | 171 url, |
163 frame->GetRoutingID()); | 172 frame->GetRoutingID()); |
164 | 173 |
165 if (!video_frame_provider_ && !audio_renderer_) { | 174 if (!video_frame_provider_ && !audio_renderer_) { |
166 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 175 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
167 return; | 176 return; |
168 } | 177 } |
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 } | 652 } |
644 | 653 |
645 unsigned WebMediaPlayerMS::Compositor::GetTotalFrameCount() { | 654 unsigned WebMediaPlayerMS::Compositor::GetTotalFrameCount() { |
646 return total_frame_count_; | 655 return total_frame_count_; |
647 } | 656 } |
648 | 657 |
649 unsigned WebMediaPlayerMS::Compositor::GetDroppedFrameCount() { | 658 unsigned WebMediaPlayerMS::Compositor::GetDroppedFrameCount() { |
650 return dropped_frame_count_; | 659 return dropped_frame_count_; |
651 } | 660 } |
652 } // namespace content | 661 } // namespace content |
OLD | NEW |