OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ |
6 #define CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ | 6 #define CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
11 #include <memory> | 11 #include <memory> |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
16 #include "base/memory/weak_ptr.h" | 16 #include "base/memory/weak_ptr.h" |
17 #include "base/threading/thread_checker.h" | 17 #include "base/threading/thread_checker.h" |
18 #include "base/time/time.h" | 18 #include "base/time/time.h" |
19 #include "content/common/content_export.h" | 19 #include "content/common/content_export.h" |
20 #include "media/base/video_decoder_config.h" | 20 #include "media/base/video_decoder_config.h" |
21 #include "third_party/webrtc/modules/video_coding/include/video_codec_interface.
h" | 21 #include "third_party/webrtc/modules/video_coding/include/video_codec_interface.
h" |
22 #include "ui/gfx/geometry/size.h" | 22 #include "ui/gfx/geometry/size.h" |
23 | 23 |
| 24 namespace base { |
| 25 class SingleThreadTaskRunner; |
| 26 } |
| 27 |
24 namespace media { | 28 namespace media { |
25 class GpuVideoAcceleratorFactories; | 29 class GpuVideoAcceleratorFactories; |
26 } // namespace media | 30 } // namespace media |
27 | 31 |
28 namespace content { | 32 namespace content { |
29 | 33 |
30 // RTCVideoEncoder uses a media::VideoEncodeAccelerator to implement a | 34 // RTCVideoEncoder uses a media::VideoEncodeAccelerator to implement a |
31 // webrtc::VideoEncoder class for WebRTC. Internally, VEA methods are | 35 // webrtc::VideoEncoder class for WebRTC. Internally, VEA methods are |
32 // trampolined to a private RTCVideoEncoder::Impl instance. The Impl class runs | 36 // trampolined to a private RTCVideoEncoder::Impl instance. The Impl class runs |
33 // on the worker thread queried from the |gpu_factories_|, which is presently | 37 // on the worker thread queried from the |gpu_factories_|, which is presently |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 78 |
75 // The RTCVideoEncoder::Impl that does all the work. | 79 // The RTCVideoEncoder::Impl that does all the work. |
76 scoped_refptr<Impl> impl_; | 80 scoped_refptr<Impl> impl_; |
77 | 81 |
78 DISALLOW_COPY_AND_ASSIGN(RTCVideoEncoder); | 82 DISALLOW_COPY_AND_ASSIGN(RTCVideoEncoder); |
79 }; | 83 }; |
80 | 84 |
81 } // namespace content | 85 } // namespace content |
82 | 86 |
83 #endif // CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ | 87 #endif // CONTENT_RENDERER_MEDIA_GPU_RTC_VIDEO_ENCODER_H_ |
OLD | NEW |