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

Side by Side Diff: webkit/renderer/media/webmediaplayer_impl.cc

Issue 18123002: Migrate webkit/renderer/media/ to content/renderer/media/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: trim things down Created 7 years, 5 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 | Annotate | Revision Log
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 "webkit/renderer/media/webmediaplayer_impl.h" 5 #include "webkit/renderer/media/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 29 matching lines...) Expand all
40 #include "third_party/WebKit/public/platform/WebString.h" 40 #include "third_party/WebKit/public/platform/WebString.h"
41 #include "third_party/WebKit/public/platform/WebURL.h" 41 #include "third_party/WebKit/public/platform/WebURL.h"
42 #include "third_party/WebKit/public/web/WebMediaSource.h" 42 #include "third_party/WebKit/public/web/WebMediaSource.h"
43 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" 43 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h"
44 #include "third_party/WebKit/public/web/WebView.h" 44 #include "third_party/WebKit/public/web/WebView.h"
45 #include "v8/include/v8.h" 45 #include "v8/include/v8.h"
46 #include "webkit/plugins/ppapi/ppapi_webplugin_impl.h" 46 #include "webkit/plugins/ppapi/ppapi_webplugin_impl.h"
47 #include "webkit/renderer/compositor_bindings/web_layer_impl.h" 47 #include "webkit/renderer/compositor_bindings/web_layer_impl.h"
48 #include "webkit/renderer/media/buffered_data_source.h" 48 #include "webkit/renderer/media/buffered_data_source.h"
49 #include "webkit/renderer/media/crypto/key_systems.h" 49 #include "webkit/renderer/media/crypto/key_systems.h"
50 #include "webkit/renderer/media/media_load_delegate.h"
50 #include "webkit/renderer/media/texttrack_impl.h" 51 #include "webkit/renderer/media/texttrack_impl.h"
51 #include "webkit/renderer/media/webaudiosourceprovider_impl.h" 52 #include "webkit/renderer/media/webaudiosourceprovider_impl.h"
52 #include "webkit/renderer/media/webinbandtexttrack_impl.h" 53 #include "webkit/renderer/media/webinbandtexttrack_impl.h"
53 #include "webkit/renderer/media/webmediaplayer_delegate.h" 54 #include "webkit/renderer/media/webmediaplayer_delegate.h"
54 #include "webkit/renderer/media/webmediaplayer_params.h" 55 #include "webkit/renderer/media/webmediaplayer_params.h"
55 #include "webkit/renderer/media/webmediaplayer_util.h" 56 #include "webkit/renderer/media/webmediaplayer_util.h"
56 #include "webkit/renderer/media/webmediasourceclient_impl.h" 57 #include "webkit/renderer/media/webmediasourceclient_impl.h"
57 58
58 using WebKit::WebCanvas; 59 using WebKit::WebCanvas;
59 using WebKit::WebMediaPlayer; 60 using WebKit::WebMediaPlayer;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 ready_state_(WebMediaPlayer::ReadyStateHaveNothing), 133 ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
133 main_loop_(base::MessageLoopProxy::current()), 134 main_loop_(base::MessageLoopProxy::current()),
134 media_loop_(params.message_loop_proxy()), 135 media_loop_(params.message_loop_proxy()),
135 paused_(true), 136 paused_(true),
136 seeking_(false), 137 seeking_(false),
137 playback_rate_(0.0f), 138 playback_rate_(0.0f),
138 pending_seek_(false), 139 pending_seek_(false),
139 pending_seek_seconds_(0.0f), 140 pending_seek_seconds_(0.0f),
140 client_(client), 141 client_(client),
141 delegate_(delegate), 142 delegate_(delegate),
143 load_delegate_(params.load_delegate()),
142 media_log_(params.media_log()), 144 media_log_(params.media_log()),
143 accelerated_compositing_reported_(false), 145 accelerated_compositing_reported_(false),
144 incremented_externally_allocated_memory_(false), 146 incremented_externally_allocated_memory_(false),
145 gpu_factories_(params.gpu_factories()), 147 gpu_factories_(params.gpu_factories()),
146 is_local_source_(false), 148 is_local_source_(false),
147 supports_save_(true), 149 supports_save_(true),
148 starting_(false), 150 starting_(false),
149 chunk_demuxer_(NULL), 151 chunk_demuxer_(NULL),
150 pending_repaint_(false), 152 pending_repaint_(false),
151 pending_size_change_(false), 153 pending_size_change_(false),
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 if (url.SchemeIs("file")) return kFileURLScheme; 237 if (url.SchemeIs("file")) return kFileURLScheme;
236 if (url.SchemeIs("blob")) return kBlobURLScheme; 238 if (url.SchemeIs("blob")) return kBlobURLScheme;
237 if (url.SchemeIs("data")) return kDataURLScheme; 239 if (url.SchemeIs("data")) return kDataURLScheme;
238 if (url.SchemeIs("filesystem")) return kFileSystemScheme; 240 if (url.SchemeIs("filesystem")) return kFileSystemScheme;
239 return kUnknownURLScheme; 241 return kUnknownURLScheme;
240 } 242 }
241 243
242 } // anonymous namespace 244 } // anonymous namespace
243 245
244 void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) { 246 void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) {
245 DCHECK(main_loop_->BelongsToCurrentThread()); 247 load(url, NULL, cors_mode);
ddorwin 2013/06/29 01:38:30 overloading not allowed?
scherkus (not reviewing) 2013/07/02 01:46:23 this is an interface defined in WK AFAIK it's OK
246
247 LoadSetup(url);
248
249 // Otherwise it's a regular request which requires resolving the URL first.
250 GURL gurl(url);
251 data_source_.reset(new BufferedDataSource(
252 main_loop_,
253 frame_,
254 media_log_.get(),
255 base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
256 data_source_->Initialize(
257 url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
258 base::Bind(
259 &WebMediaPlayerImpl::DataSourceInitialized,
260 AsWeakPtr(), gurl));
261
262 is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
263 } 248 }
264 249
265 void WebMediaPlayerImpl::load(const WebKit::WebURL& url, 250 void WebMediaPlayerImpl::load(const WebKit::WebURL& url,
266 WebKit::WebMediaSource* media_source, 251 WebKit::WebMediaSource* media_source,
ddorwin 2013/06/29 01:38:30 nit: Should be last parameter? (Fine to change lat
scherkus (not reviewing) 2013/07/02 01:46:23 ditto
267 CORSMode cors_mode) { 252 CORSMode cors_mode) {
268 LoadSetup(url); 253 if (load_delegate_) {
269 254 load_delegate_->DeferLoad(base::Bind(
270 // Media source pipelines can start immediately. 255 &WebMediaPlayerImpl::ContinueLoad, AsWeakPtr(), url, media_source,
271 supports_save_ = false; 256 cors_mode));
272 StartPipeline(media_source); 257 return;
258 }
259 ContinueLoad(url, media_source, cors_mode);
273 } 260 }
274 261
275 void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) { 262 void WebMediaPlayerImpl::ContinueLoad(const WebKit::WebURL& url,
263 WebKit::WebMediaSource* media_source,
264 CORSMode cors_mode) {
265 DCHECK(main_loop_->BelongsToCurrentThread());
266
276 GURL gurl(url); 267 GURL gurl(url);
277 UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme); 268 UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme);
278 269
279 // Set subresource URL for crash reporting. 270 // Set subresource URL for crash reporting.
280 base::debug::SetCrashKeyValue("subresource_url", gurl.spec()); 271 base::debug::SetCrashKeyValue("subresource_url", gurl.spec());
281 272
282 // Handle any volume/preload changes that occurred before load(). 273 // Handle any volume/preload changes that occurred before load().
283 setVolume(GetClient()->volume()); 274 setVolume(GetClient()->volume());
284 setPreload(GetClient()->preload()); 275 setPreload(GetClient()->preload());
285 276
286 SetNetworkState(WebMediaPlayer::NetworkStateLoading); 277 SetNetworkState(WebMediaPlayer::NetworkStateLoading);
287 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing); 278 SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
288 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec())); 279 media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
280
281 // Media source pipelines can start immediately.
282 if (media_source) {
283 supports_save_ = false;
284 StartPipeline(media_source);
285 return;
286 }
287
288 // Otherwise it's a regular request which requires resolving the URL first.
289 data_source_.reset(new BufferedDataSource(
290 main_loop_,
291 frame_,
292 media_log_.get(),
293 base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
294 data_source_->Initialize(
295 url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
296 base::Bind(
297 &WebMediaPlayerImpl::DataSourceInitialized,
298 AsWeakPtr(), gurl));
299
300 is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
289 } 301 }
290 302
291 void WebMediaPlayerImpl::play() { 303 void WebMediaPlayerImpl::play() {
292 DCHECK(main_loop_->BelongsToCurrentThread()); 304 DCHECK(main_loop_->BelongsToCurrentThread());
293 305
294 paused_ = false; 306 paused_ = false;
295 pipeline_->SetPlaybackRate(playback_rate_); 307 pipeline_->SetPlaybackRate(playback_rate_);
296 308
297 media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY)); 309 media_log_->AddEvent(media_log_->CreateEvent(media::MediaLogEvent::PLAY));
298 310
(...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 1229
1218 if (pending_repaint_) 1230 if (pending_repaint_)
1219 return; 1231 return;
1220 1232
1221 pending_repaint_ = true; 1233 pending_repaint_ = true;
1222 main_loop_->PostTask(FROM_HERE, base::Bind( 1234 main_loop_->PostTask(FROM_HERE, base::Bind(
1223 &WebMediaPlayerImpl::Repaint, AsWeakPtr())); 1235 &WebMediaPlayerImpl::Repaint, AsWeakPtr()));
1224 } 1236 }
1225 1237
1226 } // namespace webkit_media 1238 } // namespace webkit_media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698