Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 MEDIA_BASE_EME_CONSTANTS_H_ | 5 #ifndef MEDIA_BASE_EME_CONSTANTS_H_ |
| 6 #define MEDIA_BASE_EME_CONSTANTS_H_ | 6 #define MEDIA_BASE_EME_CONSTANTS_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 namespace media { | 10 namespace media { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 EME_CODEC_MP4_ALL = (EME_CODEC_MP4_AUDIO_ALL | EME_CODEC_MP4_VIDEO_ALL), | 42 EME_CODEC_MP4_ALL = (EME_CODEC_MP4_AUDIO_ALL | EME_CODEC_MP4_VIDEO_ALL), |
| 43 EME_CODEC_ALL = (EME_CODEC_WEBM_ALL | EME_CODEC_MP4_ALL), | 43 EME_CODEC_ALL = (EME_CODEC_WEBM_ALL | EME_CODEC_MP4_ALL), |
| 44 #else | 44 #else |
| 45 EME_CODEC_ALL = EME_CODEC_WEBM_ALL, | 45 EME_CODEC_ALL = EME_CODEC_WEBM_ALL, |
| 46 #endif // defined(USE_PROPRIETARY_CODECS) | 46 #endif // defined(USE_PROPRIETARY_CODECS) |
| 47 }; | 47 }; |
| 48 | 48 |
| 49 typedef uint32_t SupportedInitDataTypes; | 49 typedef uint32_t SupportedInitDataTypes; |
| 50 typedef uint32_t SupportedCodecs; | 50 typedef uint32_t SupportedCodecs; |
| 51 | 51 |
| 52 // Note: The encrypted media permission, referenced in several enums below, is | |
| 53 // equivalent to access to a distinctive identifier. For Widevine, we assume | |
| 54 // 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.
| |
| 55 // can fail for other reasons, but those reasons are not yet considered.) | |
| 56 | |
| 52 enum EmeSessionTypeSupport { | 57 enum EmeSessionTypeSupport { |
| 53 // Invalid default value. | 58 // Invalid default value. |
| 54 EME_SESSION_TYPE_INVALID, | 59 EME_SESSION_TYPE_INVALID, |
| 55 // The session type is not supported. | 60 // The session type is not supported. |
| 56 EME_SESSION_TYPE_NOT_SUPPORTED, | 61 EME_SESSION_TYPE_NOT_SUPPORTED, |
| 57 // The session type is supported if the encrypted media permission is granted. | 62 // The session type is supported if the encrypted media permission is granted. |
| 58 EME_SESSION_TYPE_SUPPORTED_WITH_PERMISSION, | 63 EME_SESSION_TYPE_SUPPORTED_WITH_PERMISSION, |
| 59 // The session type is always supported. | 64 // The session type is always supported. |
| 60 EME_SESSION_TYPE_SUPPORTED, | 65 EME_SESSION_TYPE_SUPPORTED, |
| 61 }; | 66 }; |
| 62 | 67 |
| 68 // Used to declare support for distinctive identifier and persistent state. | |
| 63 enum EmeFeatureSupport { | 69 enum EmeFeatureSupport { |
| 64 // Invalid default value. | 70 // Invalid default value. |
| 65 EME_FEATURE_INVALID, | 71 EME_FEATURE_INVALID, |
| 66 // Access to the feature is not supported at all. | 72 // Access to the feature is not supported at all. |
| 67 EME_FEATURE_NOT_SUPPORTED, | 73 EME_FEATURE_NOT_SUPPORTED, |
| 68 // Access to the feature may be requested if the encrypted media permission is | 74 // Access to the feature may be requested if the encrypted media permission is |
| 69 // granted. | 75 // granted. |
| 70 EME_FEATURE_REQUESTABLE_WITH_PERMISSION, | 76 EME_FEATURE_REQUESTABLE_WITH_PERMISSION, |
| 71 // Access to the feature may be requested. | 77 // Access to the feature may be requested. |
| 72 EME_FEATURE_REQUESTABLE, | 78 EME_FEATURE_REQUESTABLE, |
| 73 // Access to the feature cannot be blocked. | 79 // Access to the feature cannot be blocked. |
| 74 EME_FEATURE_ALWAYS_ENABLED, | 80 EME_FEATURE_ALWAYS_ENABLED, |
| 75 }; | 81 }; |
| 76 | 82 |
| 83 // Used to query support for distinctive identifier and persistent state. | |
| 77 enum EmeFeatureRequirement { | 84 enum EmeFeatureRequirement { |
| 78 EME_FEATURE_NOT_ALLOWED, | 85 EME_FEATURE_NOT_ALLOWED, |
| 79 EME_FEATURE_OPTIONAL, | 86 EME_FEATURE_OPTIONAL, |
| 80 EME_FEATURE_REQUIRED, | 87 EME_FEATURE_REQUIRED, |
| 81 }; | 88 }; |
| 82 | 89 |
| 90 enum class EmeMediaType { | |
| 91 AUDIO, | |
| 92 VIDEO, | |
| 93 }; | |
| 94 | |
| 95 // Robustness values understood by KeySystems. Each value imples all those | |
| 96 // before it. (This may need to be redesigned to support non-Widevine CDMs.) | |
| 97 enum class EmeRobustness { | |
| 98 INVALID, | |
| 99 EMPTY, | |
| 100 SW_SECURE_CRYPTO, | |
| 101 SW_SECURE_DECODE, | |
| 102 HW_SECURE_CRYPTO, | |
| 103 HW_SECURE_DECODE, | |
| 104 HW_SECURE_ALL, | |
| 105 }; | |
| 106 | |
| 107 // Configuration rules indicate the configuration state required to support a | |
| 108 // configuration option (note: a configuration option may be disallowing a | |
| 109 // feature). Configuration rules are used to answer queries about distinctive | |
| 110 // identifier, persistent state, and robustness requirements, as well as to | |
| 111 // describe support for different session types. | |
| 112 enum class EmeConfigRule { | |
| 113 // The configuration option is not supported. | |
| 114 NOT_SUPPORTED, | |
| 115 // The configuration option is supported if the encrypted media permission is | |
| 116 // granted. | |
| 117 PERMISSION_REQUIRED, | |
| 118 // The configuration option is supported, but the user experience may be | |
| 119 // improved if the encrypted media permission is granted. | |
| 120 PERMISSION_RECOMMENDED, | |
| 121 // The configuration option is supported without conditions. | |
| 122 SUPPORTED, | |
| 123 }; | |
| 124 | |
| 83 } // namespace media | 125 } // namespace media |
| 84 | 126 |
| 85 #endif // MEDIA_BASE_EME_CONSTANTS_H_ | 127 #endif // MEDIA_BASE_EME_CONSTANTS_H_ |
| OLD | NEW |