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_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ | 5 #ifndef CONTENT_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ |
6 #define CONTENT_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ | 6 #define CONTENT_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
13 #include "base/threading/non_thread_safe.h" | 13 #include "base/threading/non_thread_safe.h" |
14 #include "content/common/gpu/client/command_buffer_proxy_impl.h" | 14 #include "content/common/gpu/client/command_buffer_proxy_impl.h" |
| 15 #include "gpu/config/gpu_info.h" |
15 #include "ipc/ipc_listener.h" | 16 #include "ipc/ipc_listener.h" |
16 #include "media/video/video_encode_accelerator.h" | 17 #include "media/video/video_encode_accelerator.h" |
17 | 18 |
18 namespace gfx { | 19 namespace gfx { |
19 | 20 |
20 class Size; | 21 class Size; |
21 | 22 |
22 } // namespace gfx | 23 } // namespace gfx |
23 | 24 |
24 namespace media { | 25 namespace media { |
(...skipping 12 matching lines...) Expand all Loading... |
37 : public IPC::Listener, | 38 : public IPC::Listener, |
38 public media::VideoEncodeAccelerator, | 39 public media::VideoEncodeAccelerator, |
39 public CommandBufferProxyImpl::DeletionObserver, | 40 public CommandBufferProxyImpl::DeletionObserver, |
40 public base::NonThreadSafe { | 41 public base::NonThreadSafe { |
41 public: | 42 public: |
42 // |this| is guaranteed not to outlive |channel| and |impl|. (See comments | 43 // |this| is guaranteed not to outlive |channel| and |impl|. (See comments |
43 // for |channel_| and |impl_|.) | 44 // for |channel_| and |impl_|.) |
44 GpuVideoEncodeAcceleratorHost(GpuChannelHost* channel, | 45 GpuVideoEncodeAcceleratorHost(GpuChannelHost* channel, |
45 CommandBufferProxyImpl* impl); | 46 CommandBufferProxyImpl* impl); |
46 | 47 |
| 48 static std::vector<media::VideoEncodeAccelerator::SupportedProfile> |
| 49 ConvertGpuToMediaProfiles(const std::vector< |
| 50 gpu::VideoEncodeAcceleratorSupportedProfile>& gpu_profiles); |
| 51 |
47 // IPC::Listener implementation. | 52 // IPC::Listener implementation. |
48 bool OnMessageReceived(const IPC::Message& message) override; | 53 bool OnMessageReceived(const IPC::Message& message) override; |
49 void OnChannelError() override; | 54 void OnChannelError() override; |
50 | 55 |
51 // media::VideoEncodeAccelerator implementation. | 56 // media::VideoEncodeAccelerator implementation. |
52 std::vector<SupportedProfile> GetSupportedProfiles() override; | 57 std::vector<SupportedProfile> GetSupportedProfiles() override; |
53 bool Initialize(media::VideoFrame::Format input_format, | 58 bool Initialize(media::VideoFrame::Format input_format, |
54 const gfx::Size& input_visible_size, | 59 const gfx::Size& input_visible_size, |
55 media::VideoCodecProfile output_profile, | 60 media::VideoCodecProfile output_profile, |
56 uint32 initial_bitrate, | 61 uint32 initial_bitrate, |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 116 |
112 // WeakPtr factory for posting tasks back to itself. | 117 // WeakPtr factory for posting tasks back to itself. |
113 base::WeakPtrFactory<GpuVideoEncodeAcceleratorHost> weak_this_factory_; | 118 base::WeakPtrFactory<GpuVideoEncodeAcceleratorHost> weak_this_factory_; |
114 | 119 |
115 DISALLOW_COPY_AND_ASSIGN(GpuVideoEncodeAcceleratorHost); | 120 DISALLOW_COPY_AND_ASSIGN(GpuVideoEncodeAcceleratorHost); |
116 }; | 121 }; |
117 | 122 |
118 } // namespace content | 123 } // namespace content |
119 | 124 |
120 #endif // CONTENT_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ | 125 #endif // CONTENT_COMMON_GPU_CLIENT_GPU_VIDEO_ENCODE_ACCELERATOR_HOST_H_ |
OLD | NEW |