Chromium Code Reviews| Index: media/base/eme_constants.h |
| diff --git a/media/base/eme_constants.h b/media/base/eme_constants.h |
| index 4462c5cc0b251686c30bb1ef99b5a716248d7710..5acbf1e3c7cfc7ef395bb374603ea5be14c9d0e9 100644 |
| --- a/media/base/eme_constants.h |
| +++ b/media/base/eme_constants.h |
| @@ -49,6 +49,11 @@ enum EmeCodec { |
| typedef uint32_t SupportedInitDataTypes; |
| typedef uint32_t SupportedCodecs; |
| +// Note: The encrypted media permission, referenced in several enums below, is |
| +// equivalent to access to a distinctive identifier. For Widevine, we assume |
| +// that it is equivalent to remote attestation succeeding. (Remote attestation |
|
ddorwin
2015/03/18 01:08:04
This only applies to Chrome OS. That should be cle
sandersd (OOO until July 31)
2015/03/18 20:41:37
Done.
|
| +// can fail for other reasons, but those reasons are not yet considered.) |
| + |
| enum EmeSessionTypeSupport { |
| // Invalid default value. |
| EME_SESSION_TYPE_INVALID, |
| @@ -60,6 +65,7 @@ enum EmeSessionTypeSupport { |
| EME_SESSION_TYPE_SUPPORTED, |
| }; |
| +// Used to declare support for distinctive identifier and persistent state. |
| enum EmeFeatureSupport { |
| // Invalid default value. |
| EME_FEATURE_INVALID, |
| @@ -74,12 +80,48 @@ enum EmeFeatureSupport { |
| EME_FEATURE_ALWAYS_ENABLED, |
| }; |
| +// Used to query support for distinctive identifier and persistent state. |
| enum EmeFeatureRequirement { |
| EME_FEATURE_NOT_ALLOWED, |
| EME_FEATURE_OPTIONAL, |
| EME_FEATURE_REQUIRED, |
| }; |
| +enum class EmeMediaType { |
| + AUDIO, |
| + VIDEO, |
| +}; |
| + |
| +// Robustness values understood by KeySystems. Each value imples all those |
| +// before it. (This may need to be redesigned to support non-Widevine CDMs.) |
| +enum class EmeRobustness { |
| + INVALID, |
| + EMPTY, |
| + SW_SECURE_CRYPTO, |
| + SW_SECURE_DECODE, |
| + HW_SECURE_CRYPTO, |
| + HW_SECURE_DECODE, |
| + HW_SECURE_ALL, |
| +}; |
| + |
| +// Configuration rules indicate the configuration state required to support a |
| +// configuration option (note: a configuration option may be disallowing a |
| +// feature). Configuration rules are used to answer queries about distinctive |
| +// identifier, persistent state, and robustness requirements, as well as to |
| +// describe support for different session types. |
| +enum class EmeConfigRule { |
| + // The configuration option is not supported. |
| + NOT_SUPPORTED, |
| + // The configuration option is supported if the encrypted media permission is |
| + // granted. |
| + PERMISSION_REQUIRED, |
| + // The configuration option is supported, but the user experience may be |
| + // improved if the encrypted media permission is granted. |
| + PERMISSION_RECOMMENDED, |
| + // The configuration option is supported without conditions. |
| + SUPPORTED, |
| +}; |
| + |
| } // namespace media |
| #endif // MEDIA_BASE_EME_CONSTANTS_H_ |