| /** |
| * Copyright (C) 2021 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. |
| */ |
| |
| package android.hardware.drm@1.4; |
| |
| import @1.2::Status; |
| |
| enum LogPriority : uint32_t { |
| UNKNOWN, |
| DEFAULT, |
| VERBOSE, |
| DEBUG, |
| INFO, |
| WARN, |
| ERROR, |
| FATAL, |
| }; |
| |
| /** |
| * Returned by getLogMessages to report error diagnostics to the |
| * app. |
| * |
| * The |message| field is for informational purposes only, and |
| * NOT meant to be parsed programmatically when handling errors. |
| * For programmatic error handling, please check the return |Status| |
| * of APIs instead. |
| */ |
| struct LogMessage { |
| /** |
| * Epoch time in milliseconds. |
| */ |
| int64_t timeMs; |
| LogPriority priority; |
| string message; |
| }; |
| |
| enum Status : @1.2::Status { |
| /** |
| * queueSecureInput buffer called with 0 subsamples. |
| */ |
| CANNOT_DECRYPT_ZERO_SUBSAMPLES, |
| /** |
| * An error happened within the crypto library used by the drm plugin. |
| */ |
| CRYPTO_LIBRARY_ERROR, |
| /** |
| * Non-specific error reported by the device OEM subsystem. |
| */ |
| GENERAL_OEM_ERROR, |
| /** |
| * Unexpected internal failure in the drm/crypto plugin. |
| */ |
| GENERAL_PLUGIN_ERROR, |
| /** |
| * The init data parameter passed to getKeyRequest is empty or invalid. |
| */ |
| INIT_DATA_INVALID, |
| /** |
| * Either the key was not loaded from the license before attempting the |
| * operation, or the key ID parameter provided by the app is incorrect. |
| */ |
| KEY_NOT_LOADED, |
| /** |
| * The license response was empty, fields are missing or otherwise unable |
| * to be parsed. |
| */ |
| LICENSE_PARSE_ERROR, |
| /** |
| * The operation (e.g. to renew or persist a license) is prohibited by the |
| * license policy. |
| */ |
| LICENSE_POLICY_ERROR, |
| /** |
| * Failed to generate a release request because a field in the stored |
| * license is empty or malformed. |
| */ |
| LICENSE_RELEASE_ERROR, |
| /** |
| * The license server detected an error in the license request. |
| */ |
| LICENSE_REQUEST_REJECTED, |
| /** |
| * Failed to restore an offline license because a field is empty or |
| * malformed. |
| */ |
| LICENSE_RESTORE_ERROR, |
| /** |
| * License is in an invalid state for the attempted operation. |
| */ |
| LICENSE_STATE_ERROR, |
| /** |
| * Certificate is malformed or is of the wrong type. |
| */ |
| MALFORMED_CERTIFICATE, |
| /** |
| * Failure in the media framework. |
| */ |
| MEDIA_FRAMEWORK_ERROR, |
| /** |
| * Certificate has not been set. |
| */ |
| MISSING_CERTIFICATE, |
| /** |
| * There was an error loading the provisioned certificate. |
| */ |
| PROVISIONING_CERTIFICATE_ERROR, |
| /** |
| * Required steps where not performed before provisioning was attempted. |
| */ |
| PROVISIONING_CONFIGURATION_ERROR, |
| /** |
| * The provisioning response was empty, fields are missing or otherwise |
| * unable to be parsed. |
| */ |
| PROVISIONING_PARSE_ERROR, |
| /** |
| * The provisioning server detected an error in the provisioning request. |
| */ |
| PROVISIONING_REQUEST_REJECTED, |
| /** |
| * Provisioning failed in a way that is likely to succeed on a subsequent |
| * attempt. |
| */ |
| RETRYABLE_PROVISIONING_ERROR, |
| /** |
| * Failed to generate a secure stop request because a field in the stored |
| * license is empty or malformed. |
| */ |
| SECURE_STOP_RELEASE_ERROR, |
| /** |
| * The plugin was unable to read data from the filesystem. |
| */ |
| STORAGE_READ_FAILURE, |
| /** |
| * The plugin was unable to write data to the filesystem. |
| */ |
| STORAGE_WRITE_FAILURE, |
| }; |