1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
/**
* 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,
};
|