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

Unified Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 1815033003: Add srcObject attribute of type MediaStream to HTMLMediaElement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: philipj's comments Created 4 years, 8 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_ms.cc
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
index b5457cd40691b44c7dd85e296e82802445e19549..aa6948c47d91380260c95b43b84730a1bc1db773 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -19,6 +19,7 @@
#include "content/public/renderer/media_stream_audio_renderer.h"
#include "content/public/renderer/media_stream_renderer_factory.h"
#include "content/public/renderer/video_frame_provider.h"
+#include "content/renderer/media/web_media_element_source_utils.h"
#include "content/renderer/media/webmediaplayer_ms_compositor.h"
#include "content/renderer/render_frame_impl.h"
#include "content/renderer/render_thread_impl.h"
@@ -26,9 +27,9 @@
#include "media/base/video_frame.h"
#include "media/blink/webmediaplayer_util.h"
#include "third_party/WebKit/public/platform/WebMediaPlayerClient.h"
+#include "third_party/WebKit/public/platform/WebMediaPlayerSource.h"
#include "third_party/WebKit/public/platform/WebRect.h"
#include "third_party/WebKit/public/platform/WebSize.h"
-#include "third_party/WebKit/public/platform/WebURL.h"
namespace content {
@@ -101,7 +102,7 @@ WebMediaPlayerMS::~WebMediaPlayerMS() {
}
void WebMediaPlayerMS::load(LoadType load_type,
- const blink::WebURL& url,
+ const blink::WebMediaPlayerSource& source,
CORSMode /*cors_mode*/) {
DVLOG(1) << __FUNCTION__;
DCHECK(thread_checker_.CalledOnValidThread());
@@ -109,30 +110,32 @@ void WebMediaPlayerMS::load(LoadType load_type,
// TODO(acolwell): Change this to DCHECK_EQ(load_type, LoadTypeMediaStream)
// once Blink-side changes land.
DCHECK_NE(load_type, LoadTypeMediaSource);
+ blink::WebMediaStream web_stream =
+ GetWebMediaStreamFromWebMediaPlayerSource(source);
- compositor_.reset(new WebMediaPlayerMSCompositor(compositor_task_runner_, url,
- AsWeakPtr()));
+ compositor_.reset(new WebMediaPlayerMSCompositor(compositor_task_runner_,
+ web_stream, AsWeakPtr()));
SetNetworkState(WebMediaPlayer::NetworkStateLoading);
SetReadyState(WebMediaPlayer::ReadyStateHaveNothing);
- media_log_->AddEvent(media_log_->CreateLoadEvent(url.string().utf8()));
+ std::string stream_id =
+ web_stream.isNull() ? std::string() : web_stream.id().utf8();
+ media_log_->AddEvent(media_log_->CreateLoadEvent(stream_id));
video_frame_provider_ = renderer_factory_->GetVideoFrameProvider(
- url,
- base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()),
+ web_stream, base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()),
base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()),
- media_task_runner_,
- worker_task_runner_,
- gpu_factories_);
+ media_task_runner_, worker_task_runner_, gpu_factories_);
RenderFrame* const frame = RenderFrame::FromWebFrame(frame_);
if (frame) {
// Report UMA and RAPPOR metrics.
- media::ReportMetrics(load_type, GURL(url), frame_->getSecurityOrigin());
+ GURL url = source.isURL() ? GURL(source.getAsURL()) : GURL();
+ media::ReportMetrics(load_type, url, frame_->getSecurityOrigin());
audio_renderer_ = renderer_factory_->GetAudioRenderer(
- url, frame->GetRoutingID(), initial_audio_output_device_id_,
+ web_stream, frame->GetRoutingID(), initial_audio_output_device_id_,
initial_security_origin_);
}

Powered by Google App Engine
This is Rietveld 408576698