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

Side by Side Diff: gpu/config/gpu_info.h

Issue 795633005: Add VDA supported profile to GPUInfo. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 GPU_CONFIG_GPU_INFO_H_ 5 #ifndef GPU_CONFIG_GPU_INFO_H_
6 #define GPU_CONFIG_GPU_INFO_H_ 6 #define GPU_CONFIG_GPU_INFO_H_
7 7
8 // Provides access to the GPU information for the system 8 // Provides access to the GPU information for the system
9 // on which chrome is currently running. 9 // on which chrome is currently running.
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 H264PROFILE_HIGH444PREDICTIVEPROFILE = 6, 48 H264PROFILE_HIGH444PREDICTIVEPROFILE = 6,
49 H264PROFILE_SCALABLEBASELINE = 7, 49 H264PROFILE_SCALABLEBASELINE = 7,
50 H264PROFILE_SCALABLEHIGH = 8, 50 H264PROFILE_SCALABLEHIGH = 8,
51 H264PROFILE_STEREOHIGH = 9, 51 H264PROFILE_STEREOHIGH = 9,
52 H264PROFILE_MULTIVIEWHIGH = 10, 52 H264PROFILE_MULTIVIEWHIGH = 10,
53 VP8PROFILE_ANY = 11, 53 VP8PROFILE_ANY = 11,
54 VP9PROFILE_ANY = 12, 54 VP9PROFILE_ANY = 12,
55 VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_ANY, 55 VIDEO_CODEC_PROFILE_MAX = VP9PROFILE_ANY,
56 }; 56 };
57 57
58 // Specification of a decoding profile supported by a hardware decoder.
59 struct GPU_EXPORT VideoDecodeAcceleratorSupportedProfile {
60 VideoCodecProfile profile;
61 gfx::Size max_resolution;
62 gfx::Size min_resolution;
63 };
64
58 // Specification of an encoding profile supported by a hardware encoder. 65 // Specification of an encoding profile supported by a hardware encoder.
59 struct GPU_EXPORT VideoEncodeAcceleratorSupportedProfile { 66 struct GPU_EXPORT VideoEncodeAcceleratorSupportedProfile {
60 VideoCodecProfile profile; 67 VideoCodecProfile profile;
61 gfx::Size max_resolution; 68 gfx::Size max_resolution;
62 uint32 max_framerate_numerator; 69 uint32 max_framerate_numerator;
63 uint32 max_framerate_denominator; 70 uint32 max_framerate_denominator;
64 }; 71 };
65 72
66 struct GPU_EXPORT GPUInfo { 73 struct GPU_EXPORT GPUInfo {
67 struct GPU_EXPORT GPUDevice { 74 struct GPU_EXPORT GPUDevice {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 // if the collection fails or not. 206 // if the collection fails or not.
200 CollectInfoResult basic_info_state; 207 CollectInfoResult basic_info_state;
201 CollectInfoResult context_info_state; 208 CollectInfoResult context_info_state;
202 #if defined(OS_WIN) 209 #if defined(OS_WIN)
203 CollectInfoResult dx_diagnostics_info_state; 210 CollectInfoResult dx_diagnostics_info_state;
204 211
205 // The information returned by the DirectX Diagnostics Tool. 212 // The information returned by the DirectX Diagnostics Tool.
206 DxDiagNode dx_diagnostics; 213 DxDiagNode dx_diagnostics;
207 #endif 214 #endif
208 215
216 // Whether the platform supports to query video decoder profiles. Currently
217 // only CrOS supports to query video decoder supported profiles. If
wuchengli 2015/03/19 15:02:57 Remove "Currently only CrOS supports to query vide
henryhsu 2015/03/23 03:21:07 Done.
218 // |supported_query_video_decode_profiles| is true,
219 // |video_decode_accelerator_supported_profiles| is the profiles supported by
220 // the platform. Otherwise, it is invalid.
221 bool support_query_video_decode_profiles;
piman 2015/03/19 20:46:09 Why do we do this? If this is false, we hardcode t
henryhsu 2015/03/23 03:21:07 Done.
222 std::vector<VideoDecodeAcceleratorSupportedProfile>
223 video_decode_accelerator_supported_profiles;
209 std::vector<VideoEncodeAcceleratorSupportedProfile> 224 std::vector<VideoEncodeAcceleratorSupportedProfile>
210 video_encode_accelerator_supported_profiles; 225 video_encode_accelerator_supported_profiles;
211 // Note: when adding new members, please remember to update EnumerateFields 226 // Note: when adding new members, please remember to update EnumerateFields
212 // in gpu_info.cc. 227 // in gpu_info.cc.
213 228
214 // In conjunction with EnumerateFields, this allows the embedder to 229 // In conjunction with EnumerateFields, this allows the embedder to
215 // enumerate the values in this structure without having to embed 230 // enumerate the values in this structure without having to embed
216 // references to its specific member variables. This simplifies the 231 // references to its specific member variables. This simplifies the
217 // addition of new fields to this type. 232 // addition of new fields to this type.
218 class Enumerator { 233 class Enumerator {
219 public: 234 public:
220 // The following methods apply to the "current" object. Initially this 235 // The following methods apply to the "current" object. Initially this
221 // is the root object, but calls to BeginGPUDevice/EndGPUDevice and 236 // is the root object, but calls to BeginGPUDevice/EndGPUDevice and
222 // BeginAuxAttributes/EndAuxAttributes change the object to which these 237 // BeginAuxAttributes/EndAuxAttributes change the object to which these
223 // calls should apply. 238 // calls should apply.
224 virtual void AddInt64(const char* name, int64 value) = 0; 239 virtual void AddInt64(const char* name, int64 value) = 0;
225 virtual void AddInt(const char* name, int value) = 0; 240 virtual void AddInt(const char* name, int value) = 0;
226 virtual void AddString(const char* name, const std::string& value) = 0; 241 virtual void AddString(const char* name, const std::string& value) = 0;
227 virtual void AddBool(const char* name, bool value) = 0; 242 virtual void AddBool(const char* name, bool value) = 0;
228 virtual void AddTimeDeltaInSecondsF(const char* name, 243 virtual void AddTimeDeltaInSecondsF(const char* name,
229 const base::TimeDelta& value) = 0; 244 const base::TimeDelta& value) = 0;
230 245
231 // Markers indicating that a GPUDevice is being described. 246 // Markers indicating that a GPUDevice is being described.
232 virtual void BeginGPUDevice() = 0; 247 virtual void BeginGPUDevice() = 0;
233 virtual void EndGPUDevice() = 0; 248 virtual void EndGPUDevice() = 0;
234 249
250 // Markers indicating that a VideoDecodeAcceleratorSupportedProfile is
251 // being described.
252 virtual void BeginVideoDecodeAcceleratorSupportedProfile() = 0;
253 virtual void EndVideoDecodeAcceleratorSupportedProfile() = 0;
254
235 // Markers indicating that a VideoEncodeAcceleratorSupportedProfile is 255 // Markers indicating that a VideoEncodeAcceleratorSupportedProfile is
236 // being described. 256 // being described.
237 virtual void BeginVideoEncodeAcceleratorSupportedProfile() = 0; 257 virtual void BeginVideoEncodeAcceleratorSupportedProfile() = 0;
238 virtual void EndVideoEncodeAcceleratorSupportedProfile() = 0; 258 virtual void EndVideoEncodeAcceleratorSupportedProfile() = 0;
239 259
240 // Markers indicating that "auxiliary" attributes of the GPUInfo 260 // Markers indicating that "auxiliary" attributes of the GPUInfo
241 // (according to the DevTools protocol) are being described. 261 // (according to the DevTools protocol) are being described.
242 virtual void BeginAuxAttributes() = 0; 262 virtual void BeginAuxAttributes() = 0;
243 virtual void EndAuxAttributes() = 0; 263 virtual void EndAuxAttributes() = 0;
244 264
245 protected: 265 protected:
246 virtual ~Enumerator() {} 266 virtual ~Enumerator() {}
247 }; 267 };
248 268
249 // Outputs the fields in this structure to the provided enumerator. 269 // Outputs the fields in this structure to the provided enumerator.
250 void EnumerateFields(Enumerator* enumerator) const; 270 void EnumerateFields(Enumerator* enumerator) const;
251 }; 271 };
252 272
253 } // namespace gpu 273 } // namespace gpu
254 274
255 #endif // GPU_CONFIG_GPU_INFO_H_ 275 #endif // GPU_CONFIG_GPU_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698