Index: media/blink/webmediaplayer_impl.cc |
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc |
index 2726552c4e18816ee0ea83d0fe5816fa9f60c524..0c15fe41e3a3ef94aad50ee6e308e9b4fb8d4f93 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" |
@@ -86,9 +88,9 @@ namespace media { |
class BufferedDataSourceHostImpl; |
-#define STATIC_ASSERT_MATCHING_ENUM(name) \ |
- static_assert(static_cast<int>(WebMediaPlayer::CORSMode ## name) == \ |
- static_cast<int>(BufferedResourceLoader::k ## name), \ |
+#define STATIC_ASSERT_MATCHING_ENUM(name) \ |
+ static_assert(static_cast<int>(WebMediaPlayer::CORSMode##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, |
+ linked_ptr<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,22 @@ 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)) { |
liberato (no reviews please)
2015/11/05 19:03:18
&& |resource_multibuffer_| (maybe instead)
hubbe
2015/11/13 22:56:52
Not sure which is better here...
I see your point,
|
+ // 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())); |