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 #ifndef REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ | 5 #ifndef REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ |
6 #define REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ | 6 #define REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
10 #include "third_party/webrtc/api/mediastreaminterface.h" | 10 #include "third_party/webrtc/api/mediastreaminterface.h" |
11 #include "third_party/webrtc/media/base/videosinkinterface.h" | |
11 | 12 |
12 namespace base { | 13 namespace base { |
13 class SingleThreadTaskRunner; | 14 class SingleThreadTaskRunner; |
14 } // namespace base | 15 } // namespace base |
15 | 16 |
16 namespace webrtc { | 17 namespace webrtc { |
17 class DesktopFrame; | 18 class DesktopFrame; |
18 } // namespace webrtc | 19 } // namespace webrtc |
19 | 20 |
21 namespace cricket { | |
22 class VideoFrame; | |
23 } | |
Sergey Ulanov
2016/03/16 19:17:06
add "// namespace cricket" for consistency
| |
24 | |
20 namespace remoting { | 25 namespace remoting { |
21 namespace protocol { | 26 namespace protocol { |
22 | 27 |
23 class FrameConsumer; | 28 class FrameConsumer; |
24 | 29 |
25 class WebrtcVideoRendererAdapter : public webrtc::VideoRendererInterface { | 30 class WebrtcVideoRendererAdapter |
31 : public rtc::VideoSinkInterface<cricket::VideoFrame> { | |
26 public: | 32 public: |
27 WebrtcVideoRendererAdapter( | 33 WebrtcVideoRendererAdapter( |
28 scoped_refptr<webrtc::MediaStreamInterface> media_stream, | 34 scoped_refptr<webrtc::MediaStreamInterface> media_stream, |
29 FrameConsumer* frame_consumer); | 35 FrameConsumer* frame_consumer); |
30 ~WebrtcVideoRendererAdapter() override; | 36 ~WebrtcVideoRendererAdapter() override; |
31 | 37 |
32 std::string label() const { return media_stream_->label(); } | 38 std::string label() const { return media_stream_->label(); } |
33 | 39 |
34 // webrtc::VideoRendererInterface implementation. | 40 // rtc::VideoSinkInterface implementation. |
35 void RenderFrame(const cricket::VideoFrame* frame) override; | 41 void OnFrame(const cricket::VideoFrame& frame) override; |
36 | 42 |
37 private: | 43 private: |
38 void DrawFrame(scoped_ptr<webrtc::DesktopFrame> frame); | 44 void DrawFrame(scoped_ptr<webrtc::DesktopFrame> frame); |
39 | 45 |
40 scoped_refptr<webrtc::MediaStreamInterface> media_stream_; | 46 scoped_refptr<webrtc::MediaStreamInterface> media_stream_; |
41 FrameConsumer* frame_consumer_; | 47 FrameConsumer* frame_consumer_; |
42 uint32_t output_format_fourcc_; | 48 uint32_t output_format_fourcc_; |
43 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 49 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
44 | 50 |
45 base::WeakPtrFactory<WebrtcVideoRendererAdapter> weak_factory_; | 51 base::WeakPtrFactory<WebrtcVideoRendererAdapter> weak_factory_; |
46 | 52 |
47 DISALLOW_COPY_AND_ASSIGN(WebrtcVideoRendererAdapter); | 53 DISALLOW_COPY_AND_ASSIGN(WebrtcVideoRendererAdapter); |
48 }; | 54 }; |
49 | 55 |
50 } // namespace remoting | 56 } // namespace remoting |
51 } // namespace protocol | 57 } // namespace protocol |
52 | 58 |
53 #endif // REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ | 59 #endif // REMOTING_PROTOCOL_WEBRTC_VIDEO_RENDERER_ADAPTER_H_ |
OLD | NEW |