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

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: added MEDIA_BLINK_EXPORT 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..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()));

Powered by Google App Engine
This is Rietveld 408576698