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

Unified Diff: content/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: delegates Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/webmediaplayer_impl.cc
diff --git a/webkit/renderer/media/webmediaplayer_impl.cc b/content/renderer/media/webmediaplayer_impl.cc
similarity index 96%
rename from webkit/renderer/media/webmediaplayer_impl.cc
rename to content/renderer/media/webmediaplayer_impl.cc
index 65fd073d3619dc666c8ea2e2766e1f9cc57bf091..2d16db6a7b1795e68d94242defe54e55579a42b7 100644
--- a/webkit/renderer/media/webmediaplayer_impl.cc
+++ b/content/renderer/media/webmediaplayer_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "webkit/renderer/media/webmediaplayer_impl.h"
+#include "content/renderer/media/webmediaplayer_impl.h"
#include <algorithm>
#include <limits>
@@ -18,6 +18,15 @@
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/waitable_event.h"
#include "cc/layers/video_layer.h"
+#include "content/public/renderer/media_player_load_delegate.h"
+#include "content/renderer/media/buffered_data_source.h"
+#include "content/renderer/media/texttrack_impl.h"
+#include "content/renderer/media/webaudiosourceprovider_impl.h"
+#include "content/renderer/media/webinbandtexttrack_impl.h"
+#include "content/renderer/media/webmediaplayer_delegate.h"
+#include "content/renderer/media/webmediaplayer_params.h"
+#include "content/renderer/media/webmediaplayer_util.h"
+#include "content/renderer/media/webmediasourceclient_impl.h"
#include "gpu/GLES2/gl2extchromium.h"
#include "media/audio/null_audio_sink.h"
#include "media/base/bind_to_loop.h"
@@ -45,15 +54,7 @@
#include "v8/include/v8.h"
#include "webkit/plugins/ppapi/ppapi_webplugin_impl.h"
#include "webkit/renderer/compositor_bindings/web_layer_impl.h"
-#include "webkit/renderer/media/buffered_data_source.h"
#include "webkit/renderer/media/crypto/key_systems.h"
-#include "webkit/renderer/media/texttrack_impl.h"
-#include "webkit/renderer/media/webaudiosourceprovider_impl.h"
-#include "webkit/renderer/media/webinbandtexttrack_impl.h"
-#include "webkit/renderer/media/webmediaplayer_delegate.h"
-#include "webkit/renderer/media/webmediaplayer_params.h"
-#include "webkit/renderer/media/webmediaplayer_util.h"
-#include "webkit/renderer/media/webmediasourceclient_impl.h"
using WebKit::WebCanvas;
using WebKit::WebMediaPlayer;
@@ -61,6 +62,9 @@ using WebKit::WebRect;
using WebKit::WebSize;
using WebKit::WebString;
using media::PipelineStatus;
+using webkit_media::IsSupportedKeySystem;
+using webkit_media::KeySystemNameForUMA;
+using webkit_media::ProxyDecryptor;
namespace {
@@ -97,7 +101,7 @@ const double kMaxRate = 16.0;
const char* kMediaEme = "Media.EME.";
} // namespace
-namespace webkit_media {
+namespace content {
#define COMPILE_ASSERT_MATCHING_ENUM(name) \
COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::CORSMode ## name) == \
@@ -138,6 +142,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
pending_seek_(false),
pending_seek_seconds_(0.0f),
client_(client),
+ load_delegate_(params.load_delegate()),
delegate_(delegate),
media_log_(params.media_log()),
accelerated_compositing_reported_(false),
@@ -242,37 +247,26 @@ URLSchemeForHistogram URLScheme(const GURL& url) {
} // anonymous namespace
void WebMediaPlayerImpl::load(const WebKit::WebURL& url, CORSMode cors_mode) {
- DCHECK(main_loop_->BelongsToCurrentThread());
-
- LoadSetup(url);
-
- // Otherwise it's a regular request which requires resolving the URL first.
- GURL gurl(url);
- data_source_.reset(new BufferedDataSource(
- main_loop_,
- frame_,
- media_log_.get(),
- base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
- data_source_->Initialize(
- url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
- base::Bind(
- &WebMediaPlayerImpl::DataSourceInitialized,
- AsWeakPtr(), gurl));
-
- is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
+ load(url, NULL, cors_mode);
}
void WebMediaPlayerImpl::load(const WebKit::WebURL& url,
WebKit::WebMediaSource* media_source,
CORSMode cors_mode) {
- LoadSetup(url);
-
- // Media source pipelines can start immediately.
- supports_save_ = false;
- StartPipeline(media_source);
+ if (load_delegate_) {
+ load_delegate_->DeferLoad(base::Bind(
+ &WebMediaPlayerImpl::ContinueLoad, AsWeakPtr(), url, media_source,
+ cors_mode));
+ return;
+ }
+ ContinueLoad(url, media_source, cors_mode);
}
-void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) {
+void WebMediaPlayerImpl::ContinueLoad(const WebKit::WebURL& url,
+ WebKit::WebMediaSource* media_source,
+ CORSMode cors_mode) {
+ DCHECK(main_loop_->BelongsToCurrentThread());
+
GURL gurl(url);
UMA_HISTOGRAM_ENUMERATION("Media.URLScheme", URLScheme(gurl), kMaxURLScheme);
@@ -286,6 +280,27 @@ void WebMediaPlayerImpl::LoadSetup(const WebKit::WebURL& url) {
SetNetworkState(WebMediaPlayer::NetworkStateLoading);
SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
media_log_->AddEvent(media_log_->CreateLoadEvent(url.spec()));
+
+ // Media source pipelines can start immediately.
+ if (media_source) {
+ supports_save_ = false;
+ StartPipeline(media_source);
+ return;
+ }
+
+ // Otherwise it's a regular request which requires resolving the URL first.
+ data_source_.reset(new BufferedDataSource(
+ main_loop_,
+ frame_,
+ media_log_.get(),
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
+ data_source_->Initialize(
+ url, static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
+ base::Bind(
+ &WebMediaPlayerImpl::DataSourceInitialized,
+ AsWeakPtr(), gurl));
+
+ is_local_source_ = !gurl.SchemeIs("http") && !gurl.SchemeIs("https");
}
void WebMediaPlayerImpl::play() {
@@ -383,7 +398,7 @@ void WebMediaPlayerImpl::setVolume(double volume) {
#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, chromium_name) \
COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::webkit_name) == \
- static_cast<int>(webkit_media::chromium_name), \
+ static_cast<int>(content::chromium_name), \
mismatching_enums)
COMPILE_ASSERT_MATCHING_ENUM(PreloadNone, NONE);
COMPILE_ASSERT_MATCHING_ENUM(PreloadMetaData, METADATA);
@@ -394,7 +409,7 @@ void WebMediaPlayerImpl::setPreload(WebMediaPlayer::Preload preload) {
DCHECK(main_loop_->BelongsToCurrentThread());
if (data_source_)
- data_source_->SetPreload(static_cast<webkit_media::Preload>(preload));
+ data_source_->SetPreload(static_cast<content::Preload>(preload));
}
bool WebMediaPlayerImpl::hasVideo() const {
@@ -1223,4 +1238,4 @@ void WebMediaPlayerImpl::FrameReady(
&WebMediaPlayerImpl::Repaint, AsWeakPtr()));
}
-} // namespace webkit_media
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698