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

Side by Side Diff: components/cdm/renderer/widevine_key_system_properties.cc

Issue 2006113002: Allow hw secured codecs on chromecast (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit Created 4 years, 7 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "components/cdm/renderer/widevine_key_system_properties.h" 5 #include "components/cdm/renderer/widevine_key_system_properties.h"
6 6
7 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR. 7 #include "widevine_cdm_version.h" // In SHARED_INTERMEDIATE_DIR.
8 8
9 #if defined(WIDEVINE_CDM_AVAILABLE) 9 #if defined(WIDEVINE_CDM_AVAILABLE)
10 10
(...skipping 21 matching lines...) Expand all
32 return EmeRobustness::HW_SECURE_DECODE; 32 return EmeRobustness::HW_SECURE_DECODE;
33 if (robustness == "HW_SECURE_ALL") 33 if (robustness == "HW_SECURE_ALL")
34 return EmeRobustness::HW_SECURE_ALL; 34 return EmeRobustness::HW_SECURE_ALL;
35 return EmeRobustness::INVALID; 35 return EmeRobustness::INVALID;
36 } 36 }
37 37
38 } // namespace 38 } // namespace
39 39
40 WidevineKeySystemProperties::WidevineKeySystemProperties( 40 WidevineKeySystemProperties::WidevineKeySystemProperties(
41 media::SupportedCodecs supported_codecs, 41 media::SupportedCodecs supported_codecs,
42 #if defined(OS_ANDROID) 42 #if BUILDFLAG(ENABLE_HW_SECURE_CODEC)
43 media::SupportedCodecs supported_secure_codecs, 43 media::SupportedCodecs supported_secure_codecs,
44 #endif // defined(OS_ANDROID) 44 #endif // BUILDFLAG(ENABLE_HW_SECURE_CODEC)
45 media::EmeRobustness max_audio_robustness, 45 media::EmeRobustness max_audio_robustness,
46 media::EmeRobustness max_video_robustness, 46 media::EmeRobustness max_video_robustness,
47 media::EmeSessionTypeSupport persistent_license_support, 47 media::EmeSessionTypeSupport persistent_license_support,
48 media::EmeSessionTypeSupport persistent_release_message_support, 48 media::EmeSessionTypeSupport persistent_release_message_support,
49 media::EmeFeatureSupport persistent_state_support, 49 media::EmeFeatureSupport persistent_state_support,
50 media::EmeFeatureSupport distinctive_identifier_support) 50 media::EmeFeatureSupport distinctive_identifier_support)
51 : supported_codecs_(supported_codecs), 51 : supported_codecs_(supported_codecs),
52 #if defined(OS_ANDROID) 52 #if BUILDFLAG(ENABLE_HW_SECURE_CODEC)
53 supported_secure_codecs_(supported_secure_codecs), 53 supported_secure_codecs_(supported_secure_codecs),
54 #endif // defined(OS_ANDROID) 54 #endif // BUILDFLAG(ENABLE_HW_SECURE_CODEC)
55 max_audio_robustness_(max_audio_robustness), 55 max_audio_robustness_(max_audio_robustness),
56 max_video_robustness_(max_video_robustness), 56 max_video_robustness_(max_video_robustness),
57 persistent_license_support_(persistent_license_support), 57 persistent_license_support_(persistent_license_support),
58 persistent_release_message_support_(persistent_release_message_support), 58 persistent_release_message_support_(persistent_release_message_support),
59 persistent_state_support_(persistent_state_support), 59 persistent_state_support_(persistent_state_support),
60 distinctive_identifier_support_(distinctive_identifier_support) { 60 distinctive_identifier_support_(distinctive_identifier_support) {
61 } 61 }
62 62
63 std::string WidevineKeySystemProperties::GetKeySystemName() const { 63 std::string WidevineKeySystemProperties::GetKeySystemName() const {
64 return kWidevineKeySystem; 64 return kWidevineKeySystem;
(...skipping 11 matching lines...) Expand all
76 return (supported_codecs_ & media::EME_CODEC_MP4_ALL) != 0; 76 return (supported_codecs_ & media::EME_CODEC_MP4_ALL) != 0;
77 #endif // defined(USE_PROPRIETARY_CODECS) 77 #endif // defined(USE_PROPRIETARY_CODECS)
78 78
79 return false; 79 return false;
80 } 80 }
81 81
82 SupportedCodecs WidevineKeySystemProperties::GetSupportedCodecs() const { 82 SupportedCodecs WidevineKeySystemProperties::GetSupportedCodecs() const {
83 return supported_codecs_; 83 return supported_codecs_;
84 } 84 }
85 85
86 #if defined(OS_ANDROID) 86 #if BUILDFLAG(ENABLE_HW_SECURE_CODEC)
87 SupportedCodecs WidevineKeySystemProperties::GetSupportedSecureCodecs() const { 87 SupportedCodecs WidevineKeySystemProperties::GetSupportedSecureCodecs() const {
88 return supported_secure_codecs_; 88 return supported_secure_codecs_;
89 } 89 }
90 #endif 90 #endif // BUILDFLAG(ENABLE_HW_SECURE_CODEC)
91 91
92 EmeConfigRule WidevineKeySystemProperties::GetRobustnessConfigRule( 92 EmeConfigRule WidevineKeySystemProperties::GetRobustnessConfigRule(
93 EmeMediaType media_type, 93 EmeMediaType media_type,
94 const std::string& requested_robustness) const { 94 const std::string& requested_robustness) const {
95 EmeRobustness robustness = ConvertRobustness(requested_robustness); 95 EmeRobustness robustness = ConvertRobustness(requested_robustness);
96 if (robustness == EmeRobustness::INVALID) 96 if (robustness == EmeRobustness::INVALID)
97 return EmeConfigRule::NOT_SUPPORTED; 97 return EmeConfigRule::NOT_SUPPORTED;
98 98
99 EmeRobustness max_robustness = EmeRobustness::INVALID; 99 EmeRobustness max_robustness = EmeRobustness::INVALID;
100 switch (media_type) { 100 switch (media_type) {
(...skipping 27 matching lines...) Expand all
128 return EmeConfigRule::IDENTIFIER_REQUIRED; 128 return EmeConfigRule::IDENTIFIER_REQUIRED;
129 129
130 // For video, recommend remote attestation if HW_SECURE_ALL is available, 130 // For video, recommend remote attestation if HW_SECURE_ALL is available,
131 // because it enables hardware accelerated decoding. 131 // because it enables hardware accelerated decoding.
132 // TODO(sandersd): Only do this when hardware accelerated decoding is 132 // TODO(sandersd): Only do this when hardware accelerated decoding is
133 // available for the requested codecs. 133 // available for the requested codecs.
134 if (media_type == EmeMediaType::VIDEO && 134 if (media_type == EmeMediaType::VIDEO &&
135 max_robustness == EmeRobustness::HW_SECURE_ALL) { 135 max_robustness == EmeRobustness::HW_SECURE_ALL) {
136 return EmeConfigRule::IDENTIFIER_RECOMMENDED; 136 return EmeConfigRule::IDENTIFIER_RECOMMENDED;
137 } 137 }
138 #elif defined(OS_ANDROID) 138 #endif // defined(OS_CHROMEOS)
139
140 #if BUILDFLAG(ENABLE_HW_SECURE_CODEC)
ddorwin 2016/05/24 23:11:50 This name could be misleading. The parameter name
yucliu1 2016/05/25 00:43:21 The name ENABLE_HW_SECURE_CODEC or some other name
139 // Require hardware secure codecs when SW_SECURE_DECODE or above is specified. 141 // Require hardware secure codecs when SW_SECURE_DECODE or above is specified.
ddorwin 2016/05/24 23:11:50 This logic may not apply to all platforms.
yucliu1 2016/05/25 00:43:21 Agree. This part should be Android specific. And I
140 if (robustness >= EmeRobustness::SW_SECURE_DECODE) { 142 if (robustness >= EmeRobustness::SW_SECURE_DECODE) {
141 return EmeConfigRule::HW_SECURE_CODECS_REQUIRED; 143 return EmeConfigRule::HW_SECURE_CODECS_REQUIRED;
142 } 144 }
143 #endif // defined(OS_CHROMEOS) 145 #endif // BUILDFLAG(ENABLE_HW_SECURE_CODEC)
144 146
145 return EmeConfigRule::SUPPORTED; 147 return EmeConfigRule::SUPPORTED;
146 } 148 }
147 149
148 EmeSessionTypeSupport 150 EmeSessionTypeSupport
149 WidevineKeySystemProperties::GetPersistentLicenseSessionSupport() const { 151 WidevineKeySystemProperties::GetPersistentLicenseSessionSupport() const {
150 return persistent_license_support_; 152 return persistent_license_support_;
151 } 153 }
152 154
153 EmeSessionTypeSupport 155 EmeSessionTypeSupport
(...skipping 13 matching lines...) Expand all
167 169
168 #if defined(ENABLE_PEPPER_CDMS) 170 #if defined(ENABLE_PEPPER_CDMS)
169 std::string WidevineKeySystemProperties::GetPepperType() const { 171 std::string WidevineKeySystemProperties::GetPepperType() const {
170 return kWidevineCdmPluginMimeType; 172 return kWidevineCdmPluginMimeType;
171 } 173 }
172 #endif 174 #endif
173 175
174 } // namespace cdm 176 } // namespace cdm
175 177
176 #endif // WIDEVINE_CDM_AVAILABLE 178 #endif // WIDEVINE_CDM_AVAILABLE
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698