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

Side by Side Diff: third_party/WebKit/Source/modules/srcobject/HTMLMediaElementSrcObject.cpp

Issue 1815033003: Add srcObject attribute of type MediaStream to HTMLMediaElement. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android compile issue 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "modules/srcobject/HTMLMediaElementSrcObject.h"
6
7 #include "modules/mediastream/MediaStream.h"
8 #include "modules/mediastream/URLMediaStream.h"
9 #include "wtf/Assertions.h"
10
11 namespace blink {
12
13 HTMLMediaElementSrcObject::HTMLMediaElementSrcObject()
14 : m_srcObject(nullptr)
15 {
16 }
17
18 // static
19 MediaStream* HTMLMediaElementSrcObject::srcObject(HTMLMediaElement& element)
20 {
21 HTMLMediaElementSrcObject& thisElement = HTMLMediaElementSrcObject::from(ele ment);
22 return thisElement.m_srcObject;
23 }
24
25 // static
26 void HTMLMediaElementSrcObject::setSrcObject(HTMLMediaElement& element, MediaStr eam* mediaStream)
27 {
28 HTMLMediaElementSrcObject& thisElement = HTMLMediaElementSrcObject::from(ele ment);
29 thisElement.m_srcObject = mediaStream;
30 if (!mediaStream) {
31 element.setSrcObject(WebMediaElementSource());
32 return;
33 }
34 WebMediaStream webStream = WebMediaStream(mediaStream->descriptor());
35 WebMediaElementSource webSource(webStream);
36 element.setSrcObject(webSource);
37 }
38
39 HTMLMediaElementSrcObject& HTMLMediaElementSrcObject::from(HTMLMediaElement& ele ment)
40 {
41 HTMLMediaElementSrcObject* supplement = static_cast<HTMLMediaElementSrcObjec t*>(WillBeHeapSupplement<HTMLMediaElement>::from(element, supplementName()));
42 if (!supplement) {
43 supplement = new HTMLMediaElementSrcObject();
44 provideTo(element, supplementName(), adoptPtrWillBeNoop(supplement));
45 }
46 return *supplement;
47 }
48
49 const char* HTMLMediaElementSrcObject::supplementName()
50 {
51 return "HTMLMediaElementSrcObject";
52 }
53
54 DEFINE_TRACE(HTMLMediaElementSrcObject)
55 {
56 visitor->trace(m_srcObject);
57 WillBeHeapSupplement<HTMLMediaElement>::trace(visitor);
58 }
59
60 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698