Chromium Code Reviews| Index: content/common/gpu/media/vaapi_wrapper.cc |
| diff --git a/content/common/gpu/media/vaapi_wrapper.cc b/content/common/gpu/media/vaapi_wrapper.cc |
| index c267af50bd4cd9ae4cedb77c6cd575d752d88539..9721d30e2deaa9a6965d1dd412fa38b6f9ebe10c 100644 |
| --- a/content/common/gpu/media/vaapi_wrapper.cc |
| +++ b/content/common/gpu/media/vaapi_wrapper.cc |
| @@ -196,6 +196,35 @@ VaapiWrapper::GetSupportedEncodeProfiles() { |
| return profiles; |
| } |
| +// static |
| +std::vector<media::VideoDecodeAccelerator::SupportedProfile> |
| +VaapiWrapper::GetSupportedDecodeProfiles() { |
| + std::vector<media::VideoDecodeAccelerator::SupportedProfile> profiles; |
| + const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); |
| + if (cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode)) |
|
Pawel Osciak
2015/03/26 08:36:40
Can we do this in the caller? Otherwise this flag
henryhsu_tw
2015/03/26 09:38:34
Done.
|
| + return profiles; |
| + |
| + std::vector<ProfileInfo> decode_profile_infos = |
| + profile_infos_.Get().GetSupportedProfileInfosForCodecMode(kDecode); |
| + |
| + for (size_t i = 0; i < arraysize(kProfileMap); ++i) { |
| + VAProfile va_profile = ProfileToVAProfile(kProfileMap[i].profile, kDecode); |
| + if (va_profile == VAProfileNone) |
| + continue; |
| + for (const auto& profile_info : decode_profile_infos) { |
| + if (profile_info.va_profile == va_profile) { |
| + media::VideoDecodeAccelerator::SupportedProfile profile; |
| + profile.profile = kProfileMap[i].profile; |
| + profile.max_resolution = profile_info.max_resolution; |
| + profile.min_resolution.SetSize(16, 16); |
| + profiles.push_back(profile); |
| + break; |
| + } |
| + } |
| + } |
| + return profiles; |
| +} |
| + |
| void VaapiWrapper::TryToSetVADisplayAttributeToLocalGPU() { |
| base::AutoLock auto_lock(va_lock_); |
| VADisplayAttribute item = {VADisplayAttribRenderMode, |