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

Unified Diff: media/blink/webmediaplayer_impl.cc

Issue 1399603003: Tie multibuffers to URLs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_cache
Patch Set: compile fixes Created 5 years, 2 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: media/blink/webmediaplayer_impl.cc
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 2726552c4e18816ee0ea83d0fe5816fa9f60c524..5f6494ddf5a337c7f4a432d3114ac73208b47903 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -11,6 +11,7 @@
#include "base/bind.h"
#include "base/callback.h"
#include "base/callback_helpers.h"
+#include "base/command_line.h"
#include "base/debug/alias.h"
#include "base/debug/crash_logging.h"
#include "base/metrics/histogram.h"
@@ -26,6 +27,7 @@
#include "media/base/cdm_context.h"
#include "media/base/limits.h"
#include "media/base/media_log.h"
+#include "media/base/media_switches.h"
#include "media/base/text_renderer.h"
#include "media/base/timestamp_constants.h"
#include "media/base/video_frame.h"
@@ -88,7 +90,7 @@ class BufferedDataSourceHostImpl;
#define STATIC_ASSERT_MATCHING_ENUM(name) \
static_assert(static_cast<int>(WebMediaPlayer::CORSMode ## name) == \
- static_cast<int>(BufferedResourceLoader::k ## name), \
+ static_cast<int>(UrlData::k ## name), \
"mismatching enum values: " #name)
STATIC_ASSERT_MATCHING_ENUM(Unspecified);
STATIC_ASSERT_MATCHING_ENUM(Anonymous);
@@ -110,6 +112,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
base::WeakPtr<WebMediaPlayerDelegate> delegate,
scoped_ptr<RendererFactory> renderer_factory,
CdmFactory* cdm_factory,
+ ResourceMultiBuffer* resource_multibuffer,
const WebMediaPlayerParams& params)
: frame_(frame),
network_state_(WebMediaPlayer::NetworkStateEmpty),
@@ -135,6 +138,7 @@ WebMediaPlayerImpl::WebMediaPlayerImpl(
context_3d_cb_(params.context_3d_cb()),
supports_save_(true),
chunk_demuxer_(NULL),
+ resource_multibuffer_(resource_multibuffer),
// Threaded compositing isn't enabled universally yet.
compositor_task_runner_(
params.compositor_task_runner()
@@ -239,14 +243,29 @@ void WebMediaPlayerImpl::DoLoad(LoadType load_type,
}
// Otherwise it's a regular request which requires resolving the URL first.
- data_source_.reset(new BufferedDataSource(
- url,
- static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
- main_task_runner_,
- frame_,
- media_log_.get(),
- &buffered_data_source_host_,
- base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kMediaUseMultibuffer)) {
+ // Remove this when MultiBufferDataSource becomes default.
+ LOG(WARNING) << "Using MultibufferDataSource";
+ data_source_.reset(new MultibufferDataSource(
+ url,
+ static_cast<UrlData::CORSMode>(cors_mode),
+ main_task_runner_,
+ resource_multibuffer_,
+ frame_,
+ media_log_.get(),
+ &buffered_data_source_host_,
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
+ } else {
+ data_source_.reset(new BufferedDataSource(
+ url,
+ static_cast<BufferedResourceLoader::CORSMode>(cors_mode),
+ main_task_runner_,
+ frame_,
+ media_log_.get(),
+ &buffered_data_source_host_,
+ base::Bind(&WebMediaPlayerImpl::NotifyDownloading, AsWeakPtr())));
+ }
data_source_->SetPreload(preload_);
data_source_->Initialize(
base::Bind(&WebMediaPlayerImpl::DataSourceInitialized, AsWeakPtr()));
« media/blink/multibuffer_resource_loader.cc ('K') | « media/blink/webmediaplayer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698