OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.h" | 6 #include "modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.h" |
7 | 7 |
8 #include "core/html/HTMLCanvasElement.h" | 8 #include "core/html/HTMLCanvasElement.h" |
9 #include "modules/mediacapturefromelement/AutoCanvasDrawListener.h" | 9 #include "modules/mediacapturefromelement/AutoCanvasDrawListener.h" |
10 #include "platform/NotImplemented.h" | 10 #include "platform/NotImplemented.h" |
| 11 #include "platform/mediastream/MediaStreamCenter.h" |
11 | 12 |
12 namespace blink { | 13 namespace blink { |
13 | 14 |
14 CanvasCaptureMediaStreamTrack* CanvasCaptureMediaStreamTrack::create(MediaStream
Component* component, PassRefPtrWillBeRawPtr<HTMLCanvasElement> element, const P
assOwnPtr<WebCanvasCaptureHandler> handler) | 15 CanvasCaptureMediaStreamTrack* CanvasCaptureMediaStreamTrack::create(MediaStream
Component* component, PassRefPtrWillBeRawPtr<HTMLCanvasElement> element, const P
assOwnPtr<WebCanvasCaptureHandler> handler) |
15 { | 16 { |
16 return new CanvasCaptureMediaStreamTrack(component, element, handler); | 17 return new CanvasCaptureMediaStreamTrack(component, element, handler); |
17 } | 18 } |
18 | 19 |
19 HTMLCanvasElement* CanvasCaptureMediaStreamTrack::canvas() const | 20 HTMLCanvasElement* CanvasCaptureMediaStreamTrack::canvas() const |
20 { | 21 { |
21 return m_canvasElement.get(); | 22 return m_canvasElement.get(); |
22 } | 23 } |
23 | 24 |
24 void CanvasCaptureMediaStreamTrack::requestFrame() | 25 void CanvasCaptureMediaStreamTrack::requestFrame() |
25 { | 26 { |
26 notImplemented(); | 27 notImplemented(); |
27 return; | 28 return; |
28 } | 29 } |
29 | 30 |
| 31 CanvasCaptureMediaStreamTrack* CanvasCaptureMediaStreamTrack::clone(ExecutionCon
text* context) |
| 32 { |
| 33 MediaStreamComponent* clonedComponent = MediaStreamComponent::create(compone
nt()->source()); |
| 34 CanvasCaptureMediaStreamTrack* clonedTrack = new CanvasCaptureMediaStreamTra
ck(*this, clonedComponent); |
| 35 MediaStreamCenter::instance().didCreateMediaStreamTrack(clonedComponent); |
| 36 return clonedTrack; |
| 37 } |
| 38 |
30 DEFINE_TRACE(CanvasCaptureMediaStreamTrack) | 39 DEFINE_TRACE(CanvasCaptureMediaStreamTrack) |
31 { | 40 { |
32 visitor->trace(m_canvasElement); | 41 visitor->trace(m_canvasElement); |
33 visitor->trace(m_drawListener); | 42 visitor->trace(m_drawListener); |
34 MediaStreamTrack::trace(visitor); | 43 MediaStreamTrack::trace(visitor); |
35 } | 44 } |
36 | 45 |
| 46 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(const CanvasCapture
MediaStreamTrack& track, MediaStreamComponent* component) |
| 47 :MediaStreamTrack(track.m_canvasElement->executionContext(), component) |
| 48 , m_canvasElement(track.m_canvasElement) |
| 49 , m_drawListener(track.m_drawListener) |
| 50 { |
| 51 suspendIfNeeded(); |
| 52 m_canvasElement->addListener(m_drawListener.get()); |
| 53 } |
| 54 |
37 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(MediaStreamComponen
t* component, PassRefPtrWillBeRawPtr<HTMLCanvasElement> element, const PassOwnPt
r<WebCanvasCaptureHandler> handler) | 55 CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(MediaStreamComponen
t* component, PassRefPtrWillBeRawPtr<HTMLCanvasElement> element, const PassOwnPt
r<WebCanvasCaptureHandler> handler) |
38 : MediaStreamTrack(element->executionContext(), component) | 56 : MediaStreamTrack(element->executionContext(), component) |
39 , m_canvasElement(element) | 57 , m_canvasElement(element) |
40 { | 58 { |
41 suspendIfNeeded(); | 59 suspendIfNeeded(); |
42 m_drawListener = AutoCanvasDrawListener::create(handler); | 60 m_drawListener = AutoCanvasDrawListener::create(handler); |
43 m_canvasElement->addListener(m_drawListener.get()); | 61 m_canvasElement->addListener(m_drawListener.get()); |
44 } | 62 } |
45 | 63 |
46 } // namespace blink | 64 } // namespace blink |
OLD | NEW |