Index: third_party/WebKit/Source/modules/srcobject/HTMLMediaElementSrcObject.cpp |
diff --git a/third_party/WebKit/Source/modules/srcobject/HTMLMediaElementSrcObject.cpp b/third_party/WebKit/Source/modules/srcobject/HTMLMediaElementSrcObject.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b3465b5193601a67786fb03633da3a72be46d9c3 |
--- /dev/null |
+++ b/third_party/WebKit/Source/modules/srcobject/HTMLMediaElementSrcObject.cpp |
@@ -0,0 +1,40 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "modules/srcobject/HTMLMediaElementSrcObject.h" |
+ |
+#include "core/html/HTMLMediaElement.h" |
+#include "modules/mediastream/MediaStream.h" |
+#include "platform/mediastream/MediaStreamDescriptor.h" |
+#include "public/platform/WebMediaPlayerSource.h" |
+#include "public/platform/WebMediaStream.h" |
+ |
+namespace blink { |
+ |
+// static |
+MediaStream* HTMLMediaElementSrcObject::srcObject(HTMLMediaElement& element) |
+{ |
+ const WebMediaPlayerSource& source = element.getSrcObject(); |
+ if (source.isMediaStream()) { |
+ MediaStreamDescriptor* descriptor = source.getAsMediaStream(); |
+ MediaStream* stream = toMediaStream(descriptor); |
+ return stream; |
+ } |
+ |
+ return nullptr; |
+} |
+ |
+// static |
+void HTMLMediaElementSrcObject::setSrcObject(HTMLMediaElement& element, MediaStream* mediaStream) |
+{ |
+ if (!mediaStream) { |
+ element.setSrcObject(WebMediaPlayerSource()); |
+ return; |
+ } |
+ WebMediaStream webStream = WebMediaStream(mediaStream->descriptor()); |
+ WebMediaPlayerSource source(webStream); |
+ element.setSrcObject(source); |
+} |
+ |
+} // namespace blink |