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_ |