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

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: wolenetz comments Created 4 years, 9 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 147715b9e7b6cdd9354b5fa2561d52163cecb497..1187fab16d2959552bdeaf0c65b0d2205cc9cccb 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -19,16 +19,17 @@
#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"
#include "gpu/blink/webgraphicscontext3d_impl.h"
#include "media/base/media_log.h"
#include "media/base/video_frame.h"
+#include "third_party/WebKit/public/platform/WebMediaElementSource.h"
#include "third_party/WebKit/public/platform/WebMediaPlayerClient.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::WebMediaElementSource& source,
CORSMode /*cors_mode*/) {
DVLOG(1) << __FUNCTION__;
DCHECK(thread_checker_.CalledOnValidThread());
@@ -109,27 +110,28 @@ 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 =
+ GetWebMediaStreamFromWebMediaElementSource(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) {
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