Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(410)

Side by Side Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 2815303006: Convert MediaLog from being ref counted to owned by WebMediaPlayer. (Closed)
Patch Set: Rebase. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 137
138 base::WeakPtrFactory<FrameDeliverer> weak_factory_; 138 base::WeakPtrFactory<FrameDeliverer> weak_factory_;
139 139
140 DISALLOW_COPY_AND_ASSIGN(FrameDeliverer); 140 DISALLOW_COPY_AND_ASSIGN(FrameDeliverer);
141 }; 141 };
142 142
143 WebMediaPlayerMS::WebMediaPlayerMS( 143 WebMediaPlayerMS::WebMediaPlayerMS(
144 blink::WebFrame* frame, 144 blink::WebFrame* frame,
145 blink::WebMediaPlayerClient* client, 145 blink::WebMediaPlayerClient* client,
146 media::WebMediaPlayerDelegate* delegate, 146 media::WebMediaPlayerDelegate* delegate,
147 media::MediaLog* media_log, 147 std::unique_ptr<media::MediaLog> media_log,
148 std::unique_ptr<MediaStreamRendererFactory> factory, 148 std::unique_ptr<MediaStreamRendererFactory> factory,
149 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 149 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
150 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner, 150 scoped_refptr<base::SingleThreadTaskRunner> compositor_task_runner,
151 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner, 151 scoped_refptr<base::SingleThreadTaskRunner> media_task_runner,
152 scoped_refptr<base::TaskRunner> worker_task_runner, 152 scoped_refptr<base::TaskRunner> worker_task_runner,
153 media::GpuVideoAcceleratorFactories* gpu_factories, 153 media::GpuVideoAcceleratorFactories* gpu_factories,
154 const blink::WebString& sink_id, 154 const blink::WebString& sink_id,
155 const blink::WebSecurityOrigin& security_origin) 155 const blink::WebSecurityOrigin& security_origin)
156 : frame_(frame), 156 : frame_(frame),
157 network_state_(WebMediaPlayer::kNetworkStateEmpty), 157 network_state_(WebMediaPlayer::kNetworkStateEmpty),
158 ready_state_(WebMediaPlayer::kReadyStateHaveNothing), 158 ready_state_(WebMediaPlayer::kReadyStateHaveNothing),
159 buffered_(static_cast<size_t>(0)), 159 buffered_(static_cast<size_t>(0)),
160 client_(client), 160 client_(client),
161 delegate_(delegate), 161 delegate_(delegate),
162 delegate_id_(0), 162 delegate_id_(0),
163 paused_(true), 163 paused_(true),
164 video_rotation_(media::VIDEO_ROTATION_0), 164 video_rotation_(media::VIDEO_ROTATION_0),
165 media_log_(media_log), 165 media_log_(std::move(media_log)),
166 renderer_factory_(std::move(factory)), 166 renderer_factory_(std::move(factory)),
167 io_task_runner_(io_task_runner), 167 io_task_runner_(io_task_runner),
168 compositor_task_runner_(compositor_task_runner), 168 compositor_task_runner_(compositor_task_runner),
169 media_task_runner_(media_task_runner), 169 media_task_runner_(media_task_runner),
170 worker_task_runner_(worker_task_runner), 170 worker_task_runner_(worker_task_runner),
171 gpu_factories_(gpu_factories), 171 gpu_factories_(gpu_factories),
172 initial_audio_output_device_id_(sink_id.Utf8()), 172 initial_audio_output_device_id_(sink_id.Utf8()),
173 initial_security_origin_(security_origin.IsNull() 173 initial_security_origin_(security_origin.IsNull()
174 ? url::Origin() 174 ? url::Origin()
175 : url::Origin(security_origin)), 175 : url::Origin(security_origin)),
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 CORSMode /*cors_mode*/) { 218 CORSMode /*cors_mode*/) {
219 DVLOG(1) << __func__; 219 DVLOG(1) << __func__;
220 DCHECK(thread_checker_.CalledOnValidThread()); 220 DCHECK(thread_checker_.CalledOnValidThread());
221 221
222 // TODO(acolwell): Change this to DCHECK_EQ(load_type, LoadTypeMediaStream) 222 // TODO(acolwell): Change this to DCHECK_EQ(load_type, LoadTypeMediaStream)
223 // once Blink-side changes land. 223 // once Blink-side changes land.
224 DCHECK_NE(load_type, kLoadTypeMediaSource); 224 DCHECK_NE(load_type, kLoadTypeMediaSource);
225 blink::WebMediaStream web_stream = 225 blink::WebMediaStream web_stream =
226 GetWebMediaStreamFromWebMediaPlayerSource(source); 226 GetWebMediaStreamFromWebMediaPlayerSource(source);
227 227
228 compositor_ = new WebMediaPlayerMSCompositor( 228 compositor_ = new WebMediaPlayerMSCompositor(compositor_task_runner_,
229 compositor_task_runner_, web_stream, AsWeakPtr(), media_log_); 229 web_stream, AsWeakPtr());
230 230
231 SetNetworkState(WebMediaPlayer::kNetworkStateLoading); 231 SetNetworkState(WebMediaPlayer::kNetworkStateLoading);
232 SetReadyState(WebMediaPlayer::kReadyStateHaveNothing); 232 SetReadyState(WebMediaPlayer::kReadyStateHaveNothing);
233 std::string stream_id = 233 std::string stream_id =
234 web_stream.IsNull() ? std::string() : web_stream.Id().Utf8(); 234 web_stream.IsNull() ? std::string() : web_stream.Id().Utf8();
235 media_log_->AddEvent(media_log_->CreateLoadEvent(stream_id)); 235 media_log_->AddEvent(media_log_->CreateLoadEvent(stream_id));
236 236
237 frame_deliverer_.reset(new WebMediaPlayerMS::FrameDeliverer( 237 frame_deliverer_.reset(new WebMediaPlayerMS::FrameDeliverer(
238 AsWeakPtr(), 238 AsWeakPtr(),
239 base::Bind(&WebMediaPlayerMSCompositor::EnqueueFrame, compositor_))); 239 base::Bind(&WebMediaPlayerMSCompositor::EnqueueFrame, compositor_)));
240 video_frame_provider_ = renderer_factory_->GetVideoRenderer( 240 video_frame_provider_ = renderer_factory_->GetVideoRenderer(
241 web_stream, media::BindToCurrentLoop(base::Bind( 241 web_stream, media::BindToCurrentLoop(base::Bind(
242 &WebMediaPlayerMS::OnSourceError, AsWeakPtr())), 242 &WebMediaPlayerMS::OnSourceError, AsWeakPtr())),
243 frame_deliverer_->GetRepaintCallback(), io_task_runner_, 243 frame_deliverer_->GetRepaintCallback(), io_task_runner_,
244 media_task_runner_, worker_task_runner_, gpu_factories_); 244 media_task_runner_, worker_task_runner_, gpu_factories_);
245 245
246 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); 246 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_);
247 247
248 if (frame) { 248 if (frame) {
249 // Report UMA and RAPPOR metrics. 249 // Report UMA and RAPPOR metrics.
250 GURL url = source.IsURL() ? GURL(source.GetAsURL()) : GURL(); 250 GURL url = source.IsURL() ? GURL(source.GetAsURL()) : GURL();
251 media::ReportMetrics(load_type, url, frame_->GetSecurityOrigin(), 251 media::ReportMetrics(load_type, url, frame_->GetSecurityOrigin(),
252 media_log_); 252 media_log_.get());
253 253
254 audio_renderer_ = renderer_factory_->GetAudioRenderer( 254 audio_renderer_ = renderer_factory_->GetAudioRenderer(
255 web_stream, frame->GetRoutingID(), initial_audio_output_device_id_, 255 web_stream, frame->GetRoutingID(), initial_audio_output_device_id_,
256 initial_security_origin_); 256 initial_security_origin_);
257 } 257 }
258 258
259 if (!video_frame_provider_ && !audio_renderer_) { 259 if (!video_frame_provider_ && !audio_renderer_) {
260 SetNetworkState(WebMediaPlayer::kNetworkStateNetworkError); 260 SetNetworkState(WebMediaPlayer::kNetworkStateNetworkError);
261 return; 261 return;
262 } 262 }
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 void WebMediaPlayerMS::ResetCanvasCache() { 707 void WebMediaPlayerMS::ResetCanvasCache() {
708 DCHECK(thread_checker_.CalledOnValidThread()); 708 DCHECK(thread_checker_.CalledOnValidThread());
709 video_renderer_.ResetCache(); 709 video_renderer_.ResetCache();
710 } 710 }
711 711
712 void WebMediaPlayerMS::TriggerResize() { 712 void WebMediaPlayerMS::TriggerResize() {
713 get_client()->SizeChanged(); 713 get_client()->SizeChanged();
714 } 714 }
715 715
716 } // namespace content 716 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webmediaplayer_ms.h ('k') | content/renderer/media/webmediaplayer_ms_compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698