unplugged-system/frameworks/proto_logging/stats/enums/media/drm/enums.proto

213 lines
6.2 KiB
Protocol Buffer
Raw Normal View History

/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
package android.media.drm;
// Please see MediaDrm.ErrorCodes for definitions.
//
// Extended from
// frameworks/base/media/java/android/media/MediaDrm.java
enum Status {
ERROR_UNKNOWN = 0;
ERROR_NO_KEY = 1;
ERROR_KEY_EXPIRED = 2;
ERROR_RESOURCE_BUSY = 3;
ERROR_INSUFFICIENT_OUTPUT_PROTECTION = 4;
ERROR_SESSION_NOT_OPENED = 5;
ERROR_UNSUPPORTED_OPERATION = 6;
ERROR_INSUFFICIENT_SECURITY = 7;
ERROR_FRAME_TOO_LARGE = 8;
ERROR_LOST_STATE = 9;
ERROR_CERTIFICATE_MALFORMED = 10;
ERROR_CERTIFICATE_MISSING = 11;
ERROR_CRYPTO_LIBRARY = 12;
ERROR_GENERIC_OEM = 13;
ERROR_GENERIC_PLUGIN = 14;
ERROR_INIT_DATA = 15;
ERROR_KEY_NOT_LOADED = 16;
ERROR_LICENSE_PARSE = 17;
ERROR_LICENSE_POLICY = 18;
ERROR_LICENSE_RELEASE = 19;
ERROR_LICENSE_REQUEST_REJECTED = 20;
ERROR_LICENSE_RESTORE = 21;
ERROR_LICENSE_STATE = 22;
ERROR_MEDIA_FRAMEWORK = 23;
ERROR_PROVISIONING_CERTIFICATE = 24;
ERROR_PROVISIONING_CONFIG = 25;
ERROR_PROVISIONING_PARSE = 26;
ERROR_PROVISIONING_REQUEST_REJECTED = 27;
ERROR_PROVISIONING_RETRY = 28;
ERROR_RESOURCE_CONTENTION = 29;
ERROR_SECURE_STOP_RELEASE = 30;
ERROR_STORAGE_READ = 31;
ERROR_STORAGE_WRITE = 32;
ERROR_ZERO_SUBSAMPLES = 33;
ERROR_INVALID_STATE = 34;
ERROR_BAD_VALUE = 35;
ERROR_NOT_PROVISIONED = 36;
ERROR_DEVICE_REVOKED = 37;
ERROR_DECRYPT = 38;
ERROR_DEAD_OBJECT = 39;
}
// Security level represents the robustness of the DRM implementation.
//
// From
// frameworks/base/media/java/android/media/MediaDrm.java
enum SecurityLevel {
/**
* The DRM plugin did not report a security level, or an error occurred
* accessing it
*/
SECURITY_LEVEL_UNKNOWN = 0;
/**
* DRM key management uses software-based whitebox crypto.
*/
SECURITY_LEVEL_SW_SECURE_CRYPTO = 1;
/**
* DRM key management and decoding use software-based whitebox crypto.
*/
SECURITY_LEVEL_SW_SECURE_DECODE = 2;
/**
* DRM key management and crypto operations are performed within a hardware
* backed trusted execution environment.
*/
SECURITY_LEVEL_HW_SECURE_CRYPTO = 3;
/**
* DRM key management, crypto operations and decoding of content are
* performed within a hardware backed trusted execution environment.
*/
SECURITY_LEVEL_HW_SECURE_DECODE = 4;
/**
* DRM key management, crypto operations, decoding of content and all
* handling of the media (compressed and uncompressed) is handled within a
* hardware backed trusted execution environment.
*/
SECURITY_LEVEL_HW_SECURE_ALL = 5;
/**
* Indicates that the maximum security level supported by the device should
* be used when opening a session. This is the default security level
* selected when a session is opened.
*/
SECURITY_LEVEL_MAX = 6;
}
// DrmApi represents methods of the IDrm interface.
//
// From
// frameworks/av/drm/libmediadrm/include/mediadrm/IDrm.h
enum DrmApi {
DRM_API_UNKNOWN = 0;
DRM_API_INIT_CHECK = 1;
DRM_API_IS_CRYPTO_SCHEME_SUPPORTED = 2;
DRM_API_CREATE_PLUGIN = 3;
DRM_API_DESTROY_PLUGIN = 4;
DRM_API_OPEN_SESSION = 5;
DRM_API_CLOSE_SESSION = 6;
DRM_API_GET_KEY_REQUEST = 7;
DRM_API_PROVIDE_KEY_RESPONSE = 8;
DRM_API_REMOVE_KEYS = 9;
DRM_API_RESTORE_KEYS = 10;
DRM_API_QUERY_KEY_STATUS = 11;
DRM_API_GET_PROVISION_REQUEST = 12;
DRM_API_PROVIDE_PROVISION_RESPONSE = 13;
DRM_API_GET_SECURE_STOPS = 14;
DRM_API_GET_SECURE_STOP_IDS = 15;
DRM_API_GET_SECURE_STOP = 16;
DRM_API_RELEASE_SECURE_STOPS = 17;
DRM_API_REMOVE_SECURE_STOP = 18;
DRM_API_REMOVE_ALL_SECURE_STOPS = 19;
DRM_API_GET_HDCP_LEVELS = 20;
DRM_API_GET_NUMBER_OF_SESSIONS = 21;
DRM_API_GET_SECURITY_LEVEL = 22;
DRM_API_GET_OFFLINE_LICENSE_KEY_SET_IDS = 23;
DRM_API_REMOVE_OFFLINE_LICENSE = 24;
DRM_API_GET_OFFLINE_LICENSE_STATE = 25;
DRM_API_GET_PROPERTY_STRING = 26;
DRM_API_GET_PROPERTY_BYTE_ARRAY = 27;
DRM_API_SET_PROPERTY_STRING = 28;
DRM_API_SET_PROPERTY_BYTE_ARRAY = 29;
DRM_API_GET_METRICS = 30;
DRM_API_SET_CIPHER_ALGORITHM = 31;
DRM_API_SET_MAC_ALGORITHM = 32;
DRM_API_GENERIC_ENCRYPT = 33;
DRM_API_GENERIC_DECRYPT = 34;
DRM_API_GENERIC_SIGN = 35;
DRM_API_GENERIC_VERIFY = 36;
DRM_API_SIGN_RSA = 37;
DRM_API_SET_LISTENER = 38;
DRM_API_REQUIRES_SECURE_DECODER = 39;
DRM_API_REQUIRES_SECURE_DECODER_LEVEL = 40;
DRM_API_SET_PLAYBACK_ID = 41;
DRM_API_GET_LOG_MESSAGES = 42;
DRM_API_GET_SUPPORTED_SCHEMES = 43;
}
// Which library was used to access DRM features.
//
// From
// frameworks/av/drm/libmediadrm/include/mediadrm/IDrm.h
enum IDrmFrontend {
IDRM_UNKNOWN = 0;
IDRM_JNI = 1; // MediaDrm
IDRM_NDK = 2; // NdkMediaDrm
IDRM_NUPLAYER = 3; // MediaPlayer
}
// Content protection scheme.
//
// From https://dashif.org/identifiers/content_protection/
enum DrmScheme {
DRM_SCHEME_OTHER = -1;
DRM_SCHEME_UNKNOWN = 0;
ABV_MODRM = 1;
ADOBE_PRIMETIME = 2;
ALTICAST = 3;
APPLE_FAIRPLAY = 4;
ARRIS_TITANIUM = 5;
CHINADRM = 6;
CLEAR_KEY_AES_128 = 7;
CLEAR_KEY_SAMPLE_AES = 8;
CLEAR_KEY_DASH_IF = 9;
CMLA_OMA = 10;
COMMSCOPE_TITANIUM = 11;
CORECRYPT = 12;
DIGICAP_SMARTXESS = 13;
DIVX = 14;
IRDETO = 15;
MARLIN = 16;
MICROSOFT_PLAYREADY = 17;
MOBITV = 18;
NAGRA_MEDIAACCESS = 19;
SECUREMEDIA = 20;
SECUREMEDIA_STEELKNOT = 21;
SYNAMEDIA_VIDEOGUARD = 22;
UNITEND_UDRM = 23;
VERIMATRIX_VCAS = 24;
VIACCESS_ORCA = 25;
VISIONCRYPT = 26;
W3C_COMMON = 27;
WIDEVINE = 28;
}