1# native_drm_common.h
2
3
4## 概述
5
6定义DRM数据类型。
7
8**库:** libnative_drm.so
9
10**引用文件:** <multimedia/drm_framework/native_drm_common.h>
11
12**系统能力:** SystemCapability.Multimedia.Drm.Core
13
14**起始版本:** 11
15
16**相关模块:**[Drm](_drm.md)
17
18
19## 汇总
20
21
22### 结构体
23
24| 名称 | 描述 |
25| -------- | -------- |
26| struct  [DRM_MediaKeyRequestInfo](_d_r_m___media_key_request_info.md) | 媒体密钥请求信息。 |
27| struct  [DRM_MediaKeyRequest](_d_r_m___media_key_request.md) | 媒体密钥请求。 |
28| struct  [DRM_Statistics](_d_r_m___statistics.md) | MediaKeySystem的度量信息。 |
29| struct  [DRM_OfflineMediakeyIdArray](_d_r_m___offline_mediakey_id_array.md) | 离线媒体密钥标识列表。 |
30| struct  [DRM_KeysInfo](_d_r_m___keys_info.md) | 媒体密钥信息。 |
31| struct  [DRM_MediaKeyStatus](_d_r_m___media_key_status.md) | 媒体密钥状态。 |
32| struct  [DRM_PsshInfo](_d_r_m___pssh_info.md) | DRM内容保护系统专用头(Protection System Specific Header)信息。 |
33| struct  [DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) | 加密媒体内容的DRM信息。 |
34| struct  [DRM_MediaKeySystemDescription](_d_r_m___media_key_system_description.md) | DRM解决方案名称及其UUID的列表。  |
35
36
37### 宏定义
38
39| 名称 | 描述 |
40| -------- | -------- |
41| [MAX_MEDIA_KEY_REQUEST_OPTION_COUNT](_drm.md#max_media_key_request_option_count)   16 | 媒体密钥请求可选数据的最大数量。 |
42| [MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN](_drm.md#max_media_key_request_option_name_len)   64 | 媒体密钥请求可选数据名称的最大长度。 |
43| [MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN](_drm.md#max_media_key_request_option_data_len)   128 | 媒体密钥请求可选数据的最大长度。 |
44| [MAX_INIT_DATA_LEN](_drm.md#max_init_data_len)   2048 | 媒体密钥请求初始化数据的最大长度。 |
45| [MAX_MIMETYPE_LEN](_drm.md#max_mimetype_len)   64 | 媒体mimetype的最大长度。 |
46| [MAX_MEDIA_KEY_REQUEST_DATA_LEN](_drm.md#max_media_key_request_data_len)   8192 | 媒体密钥请求数据的最大长度。 |
47| [MAX_DEFAULT_URL_LEN](_drm.md#max_default_url_len)   2048 | URL最大长度。 |
48| [MAX_STATISTICS_COUNT](_drm.md#max_statistics_count)   10 | 度量记录的最大数量。 |
49| [MAX_STATISTICS_NAME_LEN](_drm.md#max_statistics_name_len)   64 | 度量记录名称的最大长度。 |
50| [MAX_STATISTICS_BUFFER_LEN](_drm.md#max_statistics_buffer_len)   256 | 度量记录缓冲区的最大长度。 |
51| [MAX_OFFLINE_MEDIA_KEY_ID_COUNT](_drm.md#max_offline_media_key_id_count)   512 | 离线媒体密钥标识的最大数量。 |
52| [MAX_OFFLINE_MEDIA_KEY_ID_LEN](_drm.md#max_offline_media_key_id_len)   64 | 离线媒体密钥标识的最大长度。 |
53| [MAX_KEY_INFO_COUNT](_drm.md#max_key_info_count)   64 | 密钥信息的最大数量。 |
54| [MAX_KEY_ID_LEN](_drm.md#max_key_id_len)   16 | 密钥标识的最大长度。 |
55| [MAX_KEY_STATUS_VALUE_LEN](_drm.md#max_key_status_value_len)   128 | 密钥状态值的最大长度。 |
56| [MAX_MEDIA_KEY_STATUS_COUNT](_drm.md#max_media_key_status_count)   64 | 媒体密钥状态的最大数量。 |
57| [MAX_MEDIA_KEY_STATUS_NAME_LEN](_drm.md#max_media_key_status_name_len)   64 | 媒体密钥状态名称的最大长度。 |
58| [MAX_MEDIA_KEY_STATUS_VALUE_LEN](_drm.md#max_media_key_status_value_len)   256 | 媒体密钥状态值的最大长度。 |
59| [DRM_UUID_LEN](_drm.md#drm_uuid_len)   16 | DRM解决方案的UUID长度。 |
60| [MAX_PSSH_DATA_LEN](_drm.md#max_pssh_data_len)   2048 | PSSH数据的最大长度。 |
61| [MAX_PSSH_INFO_COUNT](_drm.md#max_pssh_info_count)   8 | PSSH信息的最大数量。 |
62| [MAX_MEDIA_KEY_SYSTEM_NAME_LEN](_drm.md#max_media_key_system_name_len)   128 | MediaKeySystem名称的最大长度。  |
63| [MAX_MEDIA_KEY_SYSTEM_NUM](_drm.md#max_media_key_system_num)   8 | MediaKeySystem的最大数量。  |
64
65
66### 类型定义
67
68| 名称 | 描述 |
69| -------- | -------- |
70| typedef enum [DRM_EventType](_drm.md#drm_eventtype-1) [DRM_EventType](_drm.md#drm_eventtype) | 监听事件类型。 |
71| typedef enum [DRM_ContentProtectionLevel](_drm.md#drm_contentprotectionlevel-1) [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) | 内容保护级别。 |
72| typedef enum [DRM_MediaKeyType](_drm.md#drm_mediakeytype-1) [DRM_MediaKeyType](#drm_mediakeytype) | 媒体密钥类型。 |
73| typedef enum [DRM_MediaKeyRequestType](_drm.md#drm_mediakeyrequesttype-1) [DRM_MediaKeyRequestType](#drm_mediakeyrequesttype) | 媒体密钥请求类型。 |
74| typedef enum [DRM_OfflineMediaKeyStatus](_drm.md#drm_offlinemediakeystatus-1) [DRM_OfflineMediaKeyStatus](#drm_offlinemediakeystatus) | 离线媒体密钥状态。 |
75| typedef enum [DRM_CertificateStatus](_drm.md#drm_certificatestatus-1) [DRM_CertificateStatus](#drm_certificatestatus) | 设备DRM证书状态。 |
76| typedef struct [DRM_MediaKeyRequestInfo](_d_r_m___media_key_request_info.md) [DRM_MediaKeyRequestInfo](_drm.md#drm_mediakeyrequestinfo) | 媒体密钥请求信息。 |
77| typedef struct [DRM_MediaKeyRequest](_d_r_m___media_key_request.md) [DRM_MediaKeyRequest](_drm.md#drm_mediakeyrequest) | 媒体密钥请求。 |
78| typedef struct [DRM_Statistics](_d_r_m___statistics.md) [DRM_Statistics](_drm.md#drm_statistics) | MediaKeySystem的度量记录。 |
79| typedef struct [DRM_OfflineMediakeyIdArray](_d_r_m___offline_mediakey_id_array.md) [DRM_OfflineMediakeyIdArray](_drm.md#drm_offlinemediakeyidarray) | 离线媒体密钥标识列表。 |
80| typedef struct [DRM_KeysInfo](_d_r_m___keys_info.md) [DRM_KeysInfo](_drm.md#drm_keysinfo) | 媒体密钥信息。 |
81| typedef struct [DRM_MediaKeyStatus](_d_r_m___media_key_status.md) [DRM_MediaKeyStatus](_drm.md#drm_mediakeystatus) | 媒体密钥状态。 |
82| typedef struct [DRM_PsshInfo](_d_r_m___pssh_info.md) [DRM_PsshInfo](_drm.md#drm_psshinfo) | DRM内容保护系统专用头(Protection System Specific Header)信息。|
83| typedef struct [DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) [DRM_MediaKeySystemInfo](_drm.md#drm_mediakeysysteminfo) | 加密媒体内容的DRM信息。 |
84| typedef struct [DRM_MediaKeySystemDescription](_d_r_m___media_key_system_description.md) [DRM_MediaKeySystemDescription](_drm.md#drm_mediakeysystemdescription) | DRM解决方案名称及其UUID的列表。  |
85| typedef void(\* [DRM_MediaKeySystemInfoCallback](_drm.md#drm_mediakeysysteminfocallback)) ([DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) \*mediaKeySystemInfo) | MediakeySystem信息的回调函数。 |
86| typedef struct [MediaKeySystem](_drm.md#mediakeysystem) [MediaKeySystem](_drm.md#mediakeysystem) | MediaKeySystem结构。 |
87| typedef struct [MediaKeySession](_drm.md#mediakeysession) [MediaKeySession](_drm.md#mediakeysession) | MediaKeySession结构。 |
88
89### 枚举
90
91| 名称 | 描述 |
92| -------- | -------- |
93| [DRM_EventType](_drm.md#drm_eventtype-1) {<br/>EVENT_DRM_BASE = 200, <br/>EVENT_PROVISION_REQUIRED = 201, <br/>EVENT_KEY_REQUIRED = 202, <br/>EVENT_KEY_EXPIRED = 203,<br/>EVENT_VENDOR_DEFINED = 204, <br/>EVENT_EXPIRATION_UPDATE = 206<br/>} | 事件类型。 |
94| [DRM_ContentProtectionLevel](_drm.md#drm_contentprotectionlevel-1) {<br/>CONTENT_PROTECTION_LEVEL_UNKNOWN = 0, <br/>CONTENT_PROTECTION_LEVEL_SW_CRYPTO, <br/>CONTENT_PROTECTION_LEVEL_HW_CRYPTO, <br/>CONTENT_PROTECTION_LEVEL_ENHANCED_HW_CRYPTO,<br/>CONTENT_PROTECTION_LEVEL_MAX<br/>} | 内容保护级别。 |
95| [DRM_MediaKeyType](_drm.md#drm_mediakeytype-1) { <br/>MEDIA_KEY_TYPE_OFFLINE = 0, <br/>MEDIA_KEY_TYPE_ONLINE <br/>} | 媒体密钥类型。 |
96| [DRM_MediaKeyRequestType](_drm.md#drm_mediakeyrequesttype-1) {<br/>MEDIA_KEY_REQUEST_TYPE_UNKNOWN = 0, <br/>MEDIA_KEY_REQUEST_TYPE_INITIAL, <br/>MEDIA_KEY_REQUEST_TYPE_RENEWAL, <br/>MEDIA_KEY_REQUEST_TYPE_RELEASE,<br/>MEDIA_KEY_REQUEST_TYPE_NONE, <br/>MEDIA_KEY_REQUEST_TYPE_UPDATE<br/>} | 媒体密钥请求类型。 |
97| [DRM_OfflineMediaKeyStatus](_drm.md#drm_offlinemediakeystatus-1) { <br/>OFFLINE_MEDIA_KEY_STATUS_UNKNOWN = 0, <br/>OFFLINE_MEDIA_KEY_STATUS_USABLE, <br/>OFFLINE_MEDIA_KEY_STATUS_INACTIVE } | 离线媒体密钥状态。 |
98| [DRM_CertificateStatus](_drm.md#drm_certificatestatus-1) {<br/>CERT_STATUS_PROVISIONED = 0, <br/>CERT_STATUS_NOT_PROVISIONED, <br/>CERT_STATUS_EXPIRED, <br/>CERT_STATUS_INVALID,<br/>CERT_STATUS_UNAVAILABLE<br/>} | 设备DRM证书状态。 |