mirror of
https://github.com/openharmony/interface_sdk_c.git
synced 2026-08-24 14:32:50 -04:00
api一致性
Signed-off-by: m0_54007497 <liyangyang87@h-partners.com> Co-authored-by: OpenCode+GLM5
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
*
|
||||
* @brief The file declares the DRM data types.
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
* @file native_drm_err.h
|
||||
* @brief The file declares the DRM error codes.
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
* The APIs can be used to generate media key requests, process responses to media key requests, listen for events,
|
||||
* obtain content protection levels, check media key status, and remove media keys.
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
* configurations, obtain DRM metrics, obtain the content protection level, generate media key system requests, process
|
||||
* responses to media key system requests, listen for events, and manage offline media keys.
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
|
||||
@@ -16,7 +16,13 @@
|
||||
* @addtogroup Drm
|
||||
* @{
|
||||
*
|
||||
* @brief Provides APIs of Drm.
|
||||
* @brief 提供数字版权保护能力的API。
|
||||
*
|
||||
* 开发者可根据开发需求,参考开发指南及样例:
|
||||
*
|
||||
* - [数字版权保护(C/C++)](docroot://media/drm/drm-c-dev-guide.md)
|
||||
* - [基于AVCodec播放DRM节目(C/C++)](docroot://media/drm/drm-avcodec-integration.md)
|
||||
*
|
||||
* @kit DrmKit
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -24,9 +30,10 @@
|
||||
/**
|
||||
* @file native_drm_common.h
|
||||
*
|
||||
* @brief 定义DRM数据类型。
|
||||
* @brief 定义DRM数据类型,包括媒体密钥请求、内容保护级别、证书状态等核心数据结构,用于支持DRM(数字版权管理)功能的开发,帮助应用实现受版权保护的多媒体内容的播放和管理。
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @include <multimedia/drm_framework/native_drm_common.h>
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -79,6 +86,7 @@ typedef enum DRM_EventType {
|
||||
/**
|
||||
* @brief 内容保护级别。
|
||||
*
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -253,31 +261,32 @@ typedef enum DRM_CertificateStatus {
|
||||
*/
|
||||
typedef struct DRM_MediaKeyRequestInfo {
|
||||
/**
|
||||
* 密钥类型。
|
||||
* 媒体密钥类型,指定请求的密钥用途。取值为MEDIA_KEY_TYPE_ONLINE(在线)或MEDIA_KEY_TYPE_OFFLINE(离线)。
|
||||
*/
|
||||
DRM_MediaKeyType type;
|
||||
/**
|
||||
* 初始数据长度。
|
||||
* 初始化数据的长度,表示initData数组中有效数据的字节数。单位为字节(Byte),取值范围为[1, MAX_INIT_DATA_LEN]。
|
||||
*/
|
||||
int32_t initDataLen;
|
||||
/**
|
||||
* PSSH info.
|
||||
* 初始化数据,包含DRM内容保护系统特定头(PSSH)格式的数据,通常从媒体内容的PSSH box中提取。数组长度由MAX_INIT_DATA_LEN宏定义。
|
||||
*/
|
||||
uint8_t initData[MAX_INIT_DATA_LEN];
|
||||
/**
|
||||
* Media content mime type.
|
||||
* 媒体内容的MIME类型,用于标识媒体内容的格式。常见取值如"video/mp4"、"video/webm"等,具体支持类型由DRM解决方案决定。数组长度由MAX_MIMETYPE_LEN宏定义。
|
||||
*/
|
||||
char mimeType[MAX_MIMETYPE_LEN];
|
||||
/**
|
||||
* 选项数据计数。
|
||||
* 选项数据的数量,表示optionName和optionData数组中有效元素的个数。取值范围为[0, MAX_MEDIA_KEY_REQUEST_OPTION_COUNT]。
|
||||
*/
|
||||
uint32_t optionsCount;
|
||||
/**
|
||||
* Options name the application set to drm framework.
|
||||
* 选项名称数组,每行存储一个选项的名称。选项名称由DRM解决方案定义,用于传递特定的请求参数。
|
||||
* 数组维度由MAX_MEDIA_KEY_REQUEST_OPTION_COUNT和MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN宏定义。
|
||||
*/
|
||||
char optionName[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN];
|
||||
/**
|
||||
* Options data the application set to drm framework.
|
||||
* 选项数据数组,每行存储对应optionName的选项值。数组维度由MAX_MEDIA_KEY_REQUEST_OPTION_COUNT和MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN宏定义。
|
||||
*/
|
||||
char optionData[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN];
|
||||
} DRM_MediaKeyRequestInfo;
|
||||
@@ -304,19 +313,19 @@ typedef struct DRM_MediaKeyRequestInfo {
|
||||
*/
|
||||
typedef struct DRM_MediaKeyRequest {
|
||||
/**
|
||||
* 媒体密钥请求类型。
|
||||
* 媒体密钥请求类型,指示请求的用途。常见类型包括MEDIA_KEY_REQUEST_TYPE_INITIAL(初始请求)、MEDIA_KEY_REQUEST_TYPE_RENEWAL(续期请求)等,具体类型由DRM解决方案决定。
|
||||
*/
|
||||
DRM_MediaKeyRequestType type;
|
||||
/**
|
||||
* 媒体密钥请求数据长度。
|
||||
* 媒体密钥请求数据的长度,表示data数组中有效数据的字节数。单位为字节(Byte),取值范围为[0, MAX_MEDIA_KEY_REQUEST_DATA_LEN]。
|
||||
*/
|
||||
int32_t dataLen;
|
||||
/**
|
||||
* Media key request data sent to media key server.
|
||||
* 媒体密钥请求数据,需要发送到许可证服务器的数据。数据格式由DRM解决方案定义,通常为特定格式的二进制数据或JSON格式。数组长度由MAX_MEDIA_KEY_REQUEST_DATA_LEN宏定义。
|
||||
*/
|
||||
uint8_t data[MAX_MEDIA_KEY_REQUEST_DATA_LEN];
|
||||
/**
|
||||
* Media key server URL.
|
||||
* 许可证服务器的默认URL,用于获取媒体密钥。该URL由DRM解决方案提供,应用可使用此URL或自定义URL发送请求。数组长度由MAX_DEFAULT_URL_LEN宏定义。
|
||||
*/
|
||||
char defaultUrl[MAX_DEFAULT_URL_LEN];
|
||||
} DRM_MediaKeyRequest;
|
||||
@@ -350,11 +359,11 @@ typedef struct DRM_MediaKeyRequest {
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_Statistics {
|
||||
/* Statistics count. */
|
||||
/* 度量信息的数量,表示statisticsName和statisticsDescription数组中有效元素的个数。取值范围为[0, MAX_STATISTICS_COUNT]。 */
|
||||
uint32_t statisticsCount;
|
||||
/* Statistics name. */
|
||||
/* 度量信息名称数组,每行存储一个度量项的名称,具体名称由DRM解决方案定义。数组维度由MAX_STATISTICS_COUNT和MAX_STATISTICS_NAME_LEN宏定义。 */
|
||||
char statisticsName[MAX_STATISTICS_COUNT][MAX_STATISTICS_NAME_LEN];
|
||||
/* Statistics description. */
|
||||
/* 度量信息描述数组,每行存储对应statisticsName的度量值。数组维度由MAX_STATISTICS_COUNT和MAX_STATISTICS_BUFFER_LEN宏定义。 */
|
||||
char statisticsDescription[MAX_STATISTICS_COUNT][MAX_STATISTICS_BUFFER_LEN];
|
||||
} DRM_Statistics;
|
||||
|
||||
@@ -380,11 +389,12 @@ typedef struct DRM_Statistics {
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_OfflineMediakeyIdArray {
|
||||
/* Ids count. */
|
||||
/* 离线媒体密钥ID的数量,表示idsLen和ids数组中有效元素的个数。取值范围为[0, MAX_OFFLINE_MEDIA_KEY_ID_COUNT]。 */
|
||||
uint32_t idsCount;
|
||||
/* Ids len. */
|
||||
/* 离线媒体密钥ID长度数组,每个元素表示对应ids数组行中有效数据的字节数。数组长度由MAX_OFFLINE_MEDIA_KEY_ID_COUNT宏定义。 */
|
||||
int32_t idsLen[MAX_OFFLINE_MEDIA_KEY_ID_COUNT];
|
||||
/* Ids. */
|
||||
/* 离线媒体密钥ID数据数组,用于存储离线媒体密钥的标识符。每行存储一个密钥ID,有效长度由对应的idsLen元素指定。
|
||||
数组维度由MAX_OFFLINE_MEDIA_KEY_ID_COUNT和MAX_OFFLINE_MEDIA_KEY_ID_LEN宏定义。 */
|
||||
uint8_t ids[MAX_OFFLINE_MEDIA_KEY_ID_COUNT][MAX_OFFLINE_MEDIA_KEY_ID_LEN];
|
||||
} DRM_OfflineMediakeyIdArray;
|
||||
|
||||
@@ -417,11 +427,12 @@ typedef struct DRM_OfflineMediakeyIdArray {
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_KeysInfo {
|
||||
/* Keys count. */
|
||||
/* 媒体密钥信息的数量,表示keyId和statusValue数组中有效元素的个数。取值范围为[0, MAX_KEY_INFO_COUNT]。 */
|
||||
uint32_t keysInfoCount;
|
||||
/* Key id. */
|
||||
/* 媒体密钥ID数组,每行存储一个密钥的标识符。密钥ID用于标识唯一的一个媒体密钥。数组维度由MAX_KEY_INFO_COUNT和MAX_KEY_ID_LEN宏定义。 */
|
||||
uint8_t keyId[MAX_KEY_INFO_COUNT][MAX_KEY_ID_LEN];
|
||||
/* Key status value. */
|
||||
/* 媒体密钥状态值数组,每行存储对应keyId的密钥状态。状态值由DRM解决方案定义,常见状态包括"usable"(可用)、"expired"(已过期)等。
|
||||
数组维度由MAX_KEY_INFO_COUNT和MAX_KEY_STATUS_VALUE_LEN宏定义。 */
|
||||
char statusValue[MAX_KEY_INFO_COUNT][MAX_KEY_STATUS_VALUE_LEN];
|
||||
} DRM_KeysInfo;
|
||||
|
||||
@@ -454,11 +465,13 @@ typedef struct DRM_KeysInfo {
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_MediaKeyStatus {
|
||||
/* Status count. */
|
||||
/* 媒体密钥状态项的数量,表示statusName和statusValue数组中有效元素的个数。取值范围为[0, MAX_MEDIA_KEY_STATUS_COUNT]。 */
|
||||
uint32_t statusCount;
|
||||
/* Status name. */
|
||||
/* 媒体密钥状态名称数组,每行存储一个状态的名称。常见状态名称包括"Usable"(可用)、"Expired"(已过期)、
|
||||
"OutputRestricted"(输出受限)等,具体由DRM解决方案定义。数组维度由MAX_MEDIA_KEY_STATUS_COUNT和MAX_MEDIA_KEY_STATUS_NAME_LEN宏定义。 */
|
||||
char statusName[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_NAME_LEN];
|
||||
/* Status value. */
|
||||
/* 媒体密钥状态值数组,每行存储对应statusName的状态值。状态值格式由DRM解决方案定义,可能包含时间戳、级别等信息。
|
||||
数组维度由MAX_MEDIA_KEY_STATUS_COUNT和MAX_MEDIA_KEY_STATUS_VALUE_LEN宏定义。 */
|
||||
char statusValue[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_VALUE_LEN];
|
||||
} DRM_MediaKeyStatus;
|
||||
|
||||
@@ -470,7 +483,7 @@ typedef struct DRM_MediaKeyStatus {
|
||||
*/
|
||||
#define DRM_UUID_LEN 16
|
||||
/**
|
||||
* @brief PSSH(Protected System Specific Header)信息的最大长度。
|
||||
* @brief PSSH(Protection System Specific Header)信息的最大长度。
|
||||
*
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -485,21 +498,21 @@ typedef struct DRM_MediaKeyStatus {
|
||||
*/
|
||||
typedef struct DRM_PsshInfo {
|
||||
/**
|
||||
* Uuid.
|
||||
* DRM系统的UUID(通用唯一标识符),用于唯一标识一个DRM内容保护系统。UUID长度为16字节,由DRM解决方案提供商分配。
|
||||
*/
|
||||
uint8_t uuid[DRM_UUID_LEN];
|
||||
/**
|
||||
* PSSH数据长度。
|
||||
* PSSH数据的长度,表示data数组中有效数据的字节数。单位为字节(Byte),取值范围为[0, MAX_PSSH_DATA_LEN]。
|
||||
*/
|
||||
int32_t dataLen;
|
||||
/**
|
||||
* uint8_t PSSH data.
|
||||
* PSSH数据,包含DRM系统特定的初始化数据。数据格式通常包含密钥ID、内容ID等信息。数组长度由MAX_PSSH_DATA_LEN宏定义。
|
||||
*/
|
||||
uint8_t data[MAX_PSSH_DATA_LEN];
|
||||
} DRM_PsshInfo;
|
||||
|
||||
/**
|
||||
* @brief PSSH(Protected System Specific Header)信息的最大数量。
|
||||
* @brief PSSH(Protection System Specific Header)信息的最大数量。
|
||||
*
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -513,9 +526,9 @@ typedef struct DRM_PsshInfo {
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_MediaKeySystemInfo {
|
||||
/* PSSH count. */
|
||||
/* PSSH信息的数量,表示psshInfo数组中有效元素的个数。一个媒体文件可能包含多个DRM系统的PSSH,取值范围为[0, MAX_PSSH_INFO_COUNT]。 */
|
||||
uint32_t psshCount;
|
||||
/* PSSH info. */
|
||||
/* PSSH信息数组,每项包含一个DRM内容保护系统专用头的信息。数组长度由MAX_PSSH_INFO_COUNT宏定义,每项包含DRM系统UUID和初始化数据。 */
|
||||
DRM_PsshInfo psshInfo[MAX_PSSH_INFO_COUNT];
|
||||
} DRM_MediaKeySystemInfo;
|
||||
|
||||
@@ -528,7 +541,9 @@ typedef struct DRM_MediaKeySystemInfo {
|
||||
typedef void (*DRM_MediaKeySystemInfoCallback)(DRM_MediaKeySystemInfo *mediaKeySystemInfo);
|
||||
|
||||
/**
|
||||
* @brief MediaKeySystem结构。
|
||||
* @brief MediaKeySystem结构,用于表示一个媒体密钥系统实例。MediaKeySystem提供数字版权保护能力,
|
||||
* 负责DRM插件配置管理、设备证书管理、统计信息获取、内容保护级别查询以及创建MediaKeySession等功能。
|
||||
* 通过OH_MediaKeySystem_Create接口创建实例,通过OH_MediaKeySystem_Destroy接口销毁实例。
|
||||
*
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -536,7 +551,10 @@ typedef void (*DRM_MediaKeySystemInfoCallback)(DRM_MediaKeySystemInfo *mediaKeyS
|
||||
typedef struct MediaKeySystem MediaKeySystem;
|
||||
|
||||
/**
|
||||
* @brief MediaKeySession结构。
|
||||
* @brief MediaKeySession结构,用于表示一个媒体密钥会话实例。MediaKeySession是DRM解密流程的核心组件,
|
||||
* 负责生成许可证请求、处理许可证响应、管理密钥状态等功能。每个MediaKeySession实例对应一个播放会话的密钥解密过程。
|
||||
* 通过OH_MediaKeySystem_CreateMediaKeySession接口创建实例,通过OH_MediaKeySession_Destroy接口销毁实例。
|
||||
* 每个MediaKeySystem可创建多个MediaKeySession实例,用于处理不同的播放会话。
|
||||
*
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -565,9 +583,9 @@ typedef struct MediaKeySession MediaKeySession;
|
||||
* @version 1.0
|
||||
*/
|
||||
typedef struct DRM_MediaKeySystemDescription {
|
||||
/* Name of DRM plugin. */
|
||||
/* DRM插件的名称,用于唯一标识一个DRM解决方案。名称格式由DRM解决方案定义,如"com.clearplay.drm"等。数组长度由MAX_MEDIA_KEY_SYSTEM_NAME_LEN宏定义。 */
|
||||
char name[MAX_MEDIA_KEY_SYSTEM_NAME_LEN];
|
||||
/* uuid. */
|
||||
/* DRM系统的UUID(通用唯一标识符),用于唯一标识一个DRM内容保护系统。UUID长度为16字节(DRM_UUID_LEN),由DRM解决方案提供商分配。UUID与name对应同一DRM解决方案的不同表示形式。 */
|
||||
uint8_t uuid[DRM_UUID_LEN];
|
||||
} DRM_MediaKeySystemDescription;
|
||||
|
||||
|
||||
@@ -16,16 +16,23 @@
|
||||
* @addtogroup Drm
|
||||
* @{
|
||||
*
|
||||
* @brief Provides APIs of Drm.
|
||||
* @brief 提供数字版权保护能力的API。
|
||||
*
|
||||
* 开发者可根据开发需求,参考开发指南及样例:
|
||||
*
|
||||
* - [数字版权保护(C/C++)](docroot://media/drm/drm-c-dev-guide.md)
|
||||
* - [基于AVCodec播放DRM节目(C/C++)](docroot://media/drm/drm-avcodec-integration.md)
|
||||
*
|
||||
* @kit DrmKit
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
/**
|
||||
* @file native_drm_err.h
|
||||
* @brief 定义DRM错误码。
|
||||
* @brief 定义DRM错误码,用于标识DRM模块在运行过程中可能出现的各种异常情况。开发者可基于错误码进行错误处理和问题定位,提高DRM应用的稳定性和可维护性,适用于需要处理DRM功能异常的场景。
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @include <multimedia/drm_framework/native_drm_err.h>
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
|
||||
@@ -16,17 +16,24 @@
|
||||
* @addtogroup Drm
|
||||
* @{
|
||||
*
|
||||
* @brief Provides APIs of Drm.
|
||||
* @brief 提供数字版权保护能力的API。
|
||||
*
|
||||
* 开发者可根据开发需求,参考开发指南及样例:
|
||||
*
|
||||
* - [数字版权保护(C/C++)](docroot://media/drm/drm-c-dev-guide.md)
|
||||
* - [基于AVCodec播放DRM节目(C/C++)](docroot://media/drm/drm-avcodec-integration.md)
|
||||
*
|
||||
* @kit DrmKit
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
/**
|
||||
* @file native_mediakeysession.h
|
||||
* @brief 定义Drm MediaKeySession API。提供以下功能:
|
||||
* @brief 定义DRM MediaKeySession API。提供以下功能:\n
|
||||
* 生成媒体密钥请求、处理媒体密钥响应、事件监听、获取内容保护级别、检查媒体密钥状态、删除媒体密钥等。
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @include <multimedia/drm_framework/native_mediakeysession.h>
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -79,11 +86,11 @@ typedef Drm_ErrCode (*MediaKeySession_KeyChangeCallback)(DRM_KeysInfo *keysInfo
|
||||
*/
|
||||
typedef struct MediaKeySession_Callback {
|
||||
/**
|
||||
* 正常事件回调,如密钥过期等。
|
||||
* 正常事件回调函数指针,用于处理密钥过期等常规事件。当MediaKeySession状态发生常规变化时,系统会调用此回调函数通知应用。
|
||||
*/
|
||||
MediaKeySession_EventCallback eventCallback;
|
||||
/**
|
||||
* 密钥更改事件的密钥更改回调。
|
||||
* 密钥更改事件回调函数指针,用于处理密钥状态变化事件。当密钥状态发生变化(如密钥可用、密钥过期等)时,系统会调用此回调函数通知应用,回调参数中包含变化的密钥信息。
|
||||
*/
|
||||
MediaKeySession_KeyChangeCallback keyChangeCallback;
|
||||
} MediaKeySession_Callback;
|
||||
@@ -125,24 +132,24 @@ typedef Drm_ErrCode (*OH_MediaKeySession_KeyChangeCallback)(MediaKeySession *med
|
||||
*/
|
||||
typedef struct OH_MediaKeySession_Callback {
|
||||
/**
|
||||
* 正常事件回调,如密钥过期等。
|
||||
* 正常事件回调函数指针,用于处理密钥过期等常规事件。当MediaKeySession状态发生常规变化时,系统会调用此回调函数通知应用。
|
||||
*/
|
||||
OH_MediaKeySession_EventCallback eventCallback;
|
||||
/**
|
||||
* 密钥更改事件的密钥更改回调。
|
||||
* 密钥更改事件回调函数指针,用于处理密钥状态变化事件。当密钥状态发生变化(如密钥可用、密钥过期等)时,系统会调用此回调函数通知应用,回调参数中包含变化的密钥信息。
|
||||
*/
|
||||
OH_MediaKeySession_KeyChangeCallback keyChangeCallback;
|
||||
} OH_MediaKeySession_Callback;
|
||||
|
||||
/**
|
||||
* @brief Generate media key request.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param info Media key request info.
|
||||
* @param mediaKeyRequest Media key request.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 生成媒体密钥请求。
|
||||
* @param mediaKeySession 输入参数,MediaKeySession实例。
|
||||
* @param info 媒体密钥请求信息。
|
||||
* @param mediaKeyRequest 媒体密钥请求。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数info为空指针,或输入参数mediaKeyRequest为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -150,16 +157,16 @@ Drm_ErrCode OH_MediaKeySession_GenerateMediaKeyRequest(MediaKeySession *mediaKey
|
||||
DRM_MediaKeyRequestInfo *info, DRM_MediaKeyRequest *mediaKeyRequest);
|
||||
|
||||
/**
|
||||
* @brief Process media key response.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param response Media Key response.
|
||||
* @param responseLen Media Key response len.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len for in buffer and out data.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 处理媒体密钥请求响应。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param response 媒体密钥请求响应。
|
||||
* @param responseLen 媒体密钥请求响应长度。
|
||||
* @param offlineMediaKeyId 离线媒体密钥标识。
|
||||
* @param offlineMediaKeyIdLen 离线媒体密钥标识的长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其他指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -167,13 +174,13 @@ Drm_ErrCode OH_MediaKeySession_ProcessMediaKeyResponse(MediaKeySession *mediaKey
|
||||
uint8_t *response, int32_t responseLen, uint8_t *offlineMediaKeyId, int32_t *offlineMediaKeyIdLen);
|
||||
|
||||
/**
|
||||
* @brief Check media key status.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param mediaKeyStatus Media key status.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 检查媒体密钥状态。
|
||||
* @param mediaKeySession 输入参数,必填,MediaKeySession实例。
|
||||
* @param mediaKeyStatus 输出参数,必填,媒体密钥状态。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数mediaKeyStatus为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -181,27 +188,27 @@ Drm_ErrCode OH_MediaKeySession_CheckMediaKeyStatus(MediaKeySession *mediaKeySess
|
||||
DRM_MediaKeyStatus *mediaKeyStatus);
|
||||
|
||||
/**
|
||||
* @brief Clear media keys of the current session .
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 清除当前会话的媒体密钥。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySession_ClearMediaKeys(MediaKeySession *mediaKeySession);
|
||||
|
||||
/**
|
||||
* @brief Generate offline media key release request.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len.
|
||||
* @param releaseRequest Media Key release request.
|
||||
* @param releaseRequestLen Media Key release request len for in buffer and out data.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 生成离线媒体密钥释放请求。
|
||||
* @param mediaKeySession 输入参数,MediaKeySession实例。
|
||||
* @param offlineMediaKeyId 输入参数,离线媒体密钥标识。取值范围为[1, 64],单位为字节。
|
||||
* @param offlineMediaKeyIdLen 输入参数,离线媒体密钥标识长度,取值范围为[1, 64]。
|
||||
* @param releaseRequest 输出参数,离线媒体密钥释放请求。
|
||||
* @param releaseRequestLen 输出参数,离线媒体密钥释放请求长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其他指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误或设备上的DRM解决方案不支持离线媒体密钥释放,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -210,15 +217,15 @@ Drm_ErrCode OH_MediaKeySession_GenerateOfflineReleaseRequest(MediaKeySession *me
|
||||
int32_t *releaseRequestLen);
|
||||
|
||||
/**
|
||||
* @brief Process offline media key release response.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len.
|
||||
* @param releaseResponse Media Key response.
|
||||
* @param releaseResponseLen Media Key response len.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 处理离线媒体密钥释放请求响应。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param offlineMediaKeyId 离线媒体密钥标识。
|
||||
* @param offlineMediaKeyIdLen 离线媒体密钥标识长度。
|
||||
* @param releaseResponse 媒体密钥释放请求响应。
|
||||
* @param releaseResponseLen 媒体密钥释放请求响应长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其他指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误或设备上的DRM解决方案不支持离线媒体密钥释放,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -227,13 +234,13 @@ Drm_ErrCode OH_MediaKeySession_ProcessOfflineReleaseResponse(MediaKeySession *me
|
||||
int32_t releaseResponseLen);
|
||||
|
||||
/**
|
||||
* @brief Restore offline media keys by ID.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 恢复离线媒体密钥到当前会话。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param offlineMediaKeyId 离线媒体密钥标识。
|
||||
* @param offlineMediaKeyIdLen 离线媒体密钥标识长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其他指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -241,12 +248,12 @@ Drm_ErrCode OH_MediaKeySession_RestoreOfflineMediaKeys(MediaKeySession *mediaKey
|
||||
uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen);
|
||||
|
||||
/**
|
||||
* @brief Get content protection level of the session.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param contentProtectionLevel Content protection level.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取会话的内容保护级别。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param contentProtectionLevel 内容保护级别。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数contentProtectionLevel为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -254,13 +261,13 @@ Drm_ErrCode OH_MediaKeySession_GetContentProtectionLevel(MediaKeySession *mediaK
|
||||
DRM_ContentProtectionLevel *contentProtectionLevel);
|
||||
|
||||
/**
|
||||
* @brief Whether the encrypted content require a secure decoder or not.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param mimeType The media type.
|
||||
* @param status Whether secure decoder is required.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 是否需要安全解码。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param mimeType 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avc、video/hevc。
|
||||
* @param status 安全解码模块状态。true表示需要安全解码模块,false表示不需要安全解码模块。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其他指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -268,11 +275,11 @@ Drm_ErrCode OH_MediaKeySession_RequireSecureDecoderModule(MediaKeySession *media
|
||||
const char *mimeType, bool *status);
|
||||
|
||||
/**
|
||||
* @brief Set media key session event callback.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param callback Callback to be set to the media key session.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* @brief 设置MediaKeySession事件回调。该回调不返回MediaKeySession实例,适用于单个MediaKeySession场景。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param callback 输入参数,MediaKeySession的回调结构体。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数callback为空指针。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -280,11 +287,11 @@ Drm_ErrCode OH_MediaKeySession_SetMediaKeySessionCallback(MediaKeySession *media
|
||||
MediaKeySession_Callback *callback);
|
||||
|
||||
/**
|
||||
* @brief Set media key session event callback.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @param callback Callback to be set to the media key session.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* @brief 设置MediaKeySession事件回调。该回调返回MediaKeySession实例,适用于多个MediaKeySession场景。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @param callback 输入参数,MediaKeySession的回调结构体。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数callback为空指针。
|
||||
* @since 12
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -292,11 +299,11 @@ Drm_ErrCode OH_MediaKeySession_SetCallback(MediaKeySession *mediaKeySession,
|
||||
OH_MediaKeySession_Callback *callback);
|
||||
|
||||
/**
|
||||
* @brief Release the resource before the session going to be unused.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 销毁MediaKeySession实例。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
@@ -16,17 +16,24 @@
|
||||
* @addtogroup Drm
|
||||
* @{
|
||||
*
|
||||
* @brief Provides APIs of Drm.
|
||||
* @brief 提供数字版权保护能力的API。
|
||||
*
|
||||
* 开发者可根据开发需求,参考开发指南及样例:
|
||||
*
|
||||
* - [数字版权保护(C/C++)](docroot://media/drm/drm-c-dev-guide.md)
|
||||
* - [基于AVCodec播放DRM节目(C/C++)](docroot://media/drm/drm-avcodec-integration.md)
|
||||
*
|
||||
* @kit DrmKit
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
/**
|
||||
* @file native_mediakeysystem.h
|
||||
* @brief 定义Drm MediaKeySystem API。提供以下功能:
|
||||
* 查询是否支持特定的drm、创建媒体密钥会话、获取和设置配置、获取统计信息、获取内容保护级别、生成提供请求、处理提供响应、事件监听、获取内容防护级别、管理离线媒体密钥等。
|
||||
* @brief 定义DRM MediaKeySystem API。提供以下功能:\n
|
||||
* 查询是否支持特定的DRM、创建媒体密钥会话、获取和设置配置、获取统计信息、获取内容保护级别、生成提供请求、处理提供响应、事件监听、管理离线媒体密钥等。
|
||||
*
|
||||
* @library libnative_drm.z.so
|
||||
* @library libnative_drm.so
|
||||
* @include <multimedia/drm_framework/native_mediakeysystem.h>
|
||||
* @syscap SystemCapability.Multimedia.Drm.Core
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
@@ -77,26 +84,26 @@ typedef Drm_ErrCode (*OH_MediaKeySystem_Callback)(MediaKeySystem *mediaKeySystem
|
||||
uint8_t *info, int32_t infoLen, char *extra);
|
||||
|
||||
/**
|
||||
* @brief Set media key system event callback.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param callback Callback to be set to the media key system.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - If the mediaKeySystem instance is nullptr or invalid,
|
||||
* or the mediaKeySession is nullptr or invalid.
|
||||
* @brief 设置MediaKeySystem事件回调。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param callback 回调函数。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。
|
||||
* @since 12
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_SetCallback(MediaKeySystem *mediaKeySystem, OH_MediaKeySystem_Callback callback);
|
||||
|
||||
/**
|
||||
* @brief Acquire supported media key systems' name and uuid.
|
||||
* @param descs Array used to save media key systems' name and uuid.
|
||||
* @param count Used to indicate count of struct DRM_MediaKeySystemDescription.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - Probably caused by:
|
||||
* 1.the description or the count is nullptr.
|
||||
* 2. the size of the description array is smaller than the actual number obtained.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取设备支持的DRM解决方案的名称和唯一标识的列表。
|
||||
* @param descs DRM解决方案名称和唯一标识的列表。
|
||||
* @param count DRM解决方案名称和唯一标识的列表长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:
|
||||
* 输入参数descs为空指针。
|
||||
* 输入参数count为空指针。
|
||||
* 输入参数descs长度不足。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 12
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -135,108 +142,108 @@ bool OH_MediaKeySystem_IsSupported3(const char *name, const char *mimeType,
|
||||
DRM_ContentProtectionLevel contentProtectionLevel);
|
||||
|
||||
/**
|
||||
* @brief Creates a media key system instance from the name.
|
||||
* @param name Specifies which drm system will be created by name.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - Probably caused by:
|
||||
* 1. the name is nullptr or the length of name is zero.
|
||||
* 2. the mediaKeySystem is nullptr.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* {@link DRM_ERR_SERVICE_DIED} 24700507 - Service died.
|
||||
* {@link DRM_ERR_MAX_SYSTEM_NUM_REACHED} 24700510 - The maximum number of media key systems is reached.
|
||||
* @brief 创建MediaKeySystem实例。
|
||||
* @param name DRM解决方案名称。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:
|
||||
* 输入参数name为空指针。
|
||||
* 输入参数name长度为0。
|
||||
* 输入参数mediaKeySystem为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* DRM_ERR_SERVICE_DIED:服务死亡。
|
||||
* DRM_ERR_MAX_SYSTEM_NUM_REACHED:已创建的MediaKeySystem数量达到最大限制(64个)。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_Create(const char *name, MediaKeySystem **mediaKeySystem);
|
||||
/**
|
||||
* @brief Set media key system configuration value by name.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param configName Configuration name string.
|
||||
* @param value Configuration value string to be set.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 设置字符串类型的配置属性。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param configName 字符串类型配置属性名,不能为空,具体支持的属性名由设备上DRM解决方案决定。
|
||||
* @param value 字符串类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_SetConfigurationString(MediaKeySystem *mediaKeySystem,
|
||||
const char *configName, const char *value);
|
||||
/**
|
||||
* @brief Get media key system configuration value by name.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param configName Configuration name string.
|
||||
* @param value Configuration value string to be get.
|
||||
* @param valueLen Configuration value string len for in buffer.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取字符串类型配置属性值。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param configName 字符串类型配置名。
|
||||
* @param value 字符串类型配置值,用于存储获取的配置属性值。该参数不能为空,具体支持的取值由设备上DRM解决方案决定。
|
||||
* @param valueLen 字符串类型配置值长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_GetConfigurationString(MediaKeySystem *mediaKeySystem,
|
||||
const char *configName, char *value, int32_t valueLen);
|
||||
/**
|
||||
* @brief Set media key system configuration value by name.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param configName Configuration name string.
|
||||
* @param value Configuration value in byte array to be set.
|
||||
* @param valueLen Value array len.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 设置字符数组类型的配置属性值。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param configName 字符数组类型配置属性名称,不能为空,具体支持的属性名由设备上DRM解决方案决定。
|
||||
* @param value 字符数组类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。
|
||||
* @param valueLen 字符数组类型配置属性值长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray(MediaKeySystem *mediaKeySystem,
|
||||
const char *configName, uint8_t *value, int32_t valueLen);
|
||||
/**
|
||||
* @brief Get media key system configuration value by name.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param configName Configuration name string.
|
||||
* @param value Configuration value in byte array to be get.
|
||||
* @param valueLen Configuration value len for in buffer and out data.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取字符数组类型配置属性值。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param configName 字符数组类型配置属性名称,不能为空,具体支持的属性名由设备上DRM解决方案决定。
|
||||
* @param value 字符数组类型配置属性,用于存储获取的配置属性值。该参数不能为空,具体支持的取值由设备上DRM解决方案决定。
|
||||
* @param valueLen 字符数组类型配置属性长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,输入参数value为空指针,或valueLen为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray(MediaKeySystem *mediaKeySystem,
|
||||
const char *configName, uint8_t *value, int32_t *valueLen);
|
||||
/**
|
||||
* @brief Get media key system statistics info.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param statistics Statistic info gotten.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取度量记录。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param statistics 度量记录。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数statistics为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_GetStatistics(MediaKeySystem *mediaKeySystem, DRM_Statistics *statistics);
|
||||
/**
|
||||
* @brief Get the max content protection level media key system supported.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param contentProtectionLevel Content protection level.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取设备支持的最大内容保护级别。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param contentProtectionLevel 内容保护级别。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数contentProtectionLevel为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel(MediaKeySystem *mediaKeySystem,
|
||||
DRM_ContentProtectionLevel *contentProtectionLevel);
|
||||
/**
|
||||
* @brief Set media key system event callback.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param callback Callback to be set to the media key system.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* @brief 设置MediaKeySystem事件回调。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param callback 回调函数。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -244,18 +251,16 @@ Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback(MediaKeySystem *mediaKey
|
||||
MediaKeySystem_Callback callback);
|
||||
|
||||
/**
|
||||
* @brief Create a media key session instance.
|
||||
* @param mediaKeySystem Media key system instance which will create the media key session.
|
||||
* @param level Specifies the content protection level.
|
||||
* @param mediaKeySession Media key session instance.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - Probably caused by:
|
||||
* 1. The parameter passed in is a null pointer or invalid.
|
||||
* 2. the level is beyond reasonable range.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* {@link DRM_ERR_SERVICE_DIED} 24700507 - Service died.
|
||||
* {@link DRM_ERR_MAX_SESSION_NUM_REACHED} 24700511 - The maximum number of media key sessions is reached.
|
||||
* @brief 创建MediaKeySession会话实例。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param level 内容保护级别。可通过{@link OH_MediaKeySystem_GetMaxContentProtectionLevel}接口先获取设备支持的最大内容保护级别。
|
||||
* @param mediaKeySession MediaKeySession实例。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数level超出合理范围,或mediaKeySession为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* DRM_ERR_SERVICE_DIED:服务死亡。
|
||||
* DRM_ERR_MAX_SESSION_NUM_REACHED:当前MediaKeySystem已创建的MediaKeySession数量达到最大限制(64个)。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -263,16 +268,16 @@ Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession(MediaKeySystem *mediaKeySyst
|
||||
DRM_ContentProtectionLevel *level, MediaKeySession **mediaKeySession);
|
||||
|
||||
/**
|
||||
* @brief Generate a media key system provision request.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param request Provision request data sent to provision server.
|
||||
* @param requestLen Provision request data len for in buffer and out data.
|
||||
* @param defaultUrl Provision server URL.
|
||||
* @param defaultUrlLen Provision server URL len for in buffer.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 生成设备DRM证书请求。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param request 设备DRM证书请求。
|
||||
* @param requestLen 设备DRM证书请求的长度。
|
||||
* @param defaultUrl 设备DRM证书服务的URL。
|
||||
* @param defaultUrlLen 设备DRM证书服务的URL长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -280,13 +285,13 @@ Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest(MediaKeySystem *mediaKeyS
|
||||
int32_t *requestLen, char *defaultUrl, int32_t defaultUrlLen);
|
||||
|
||||
/**
|
||||
* @brief Process a media key system provision response.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param response The provision response will be processed.
|
||||
* @param responseLen The response len.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 处理设备DRM证书请求响应。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param response 设备DRM证书请求响应。
|
||||
* @param responseLen 设备DRM证书请求响应长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数response为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -294,13 +299,13 @@ Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse(MediaKeySystem *mediaKeyS
|
||||
uint8_t *response, int32_t responseLen);
|
||||
|
||||
/**
|
||||
* @brief Get offline media key ids .
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param offlineMediaKeyIds Media key ids of all offline media keys.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_NO_MEMORY} 24700501 - Memory errors.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取离线媒体密钥标识列表,媒体密钥标识用于对离线媒体密钥的管理。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param offlineMediaKeyIds 离线媒体密钥的媒体密钥标识列表。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_NO_MEMORY:内存不足,内存分配失败。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyIds为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -308,14 +313,14 @@ Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds(MediaKeySystem *mediaKeySyst
|
||||
DRM_OfflineMediakeyIdArray *offlineMediaKeyIds);
|
||||
|
||||
/**
|
||||
* @brief Get offline media key status.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len.
|
||||
* @param status The media key status gotten.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取离线媒体密钥状态。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param offlineMediaKeyId 离线媒体密钥标识。
|
||||
* @param offlineMediaKeyIdLen 离线媒体密钥标识长度。
|
||||
* @param status 媒体密钥状态。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -323,13 +328,13 @@ Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus(MediaKeySystem *mediaKeyS
|
||||
uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus *status);
|
||||
|
||||
/**
|
||||
* @brief Clear an offline media key by id.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param offlineMediaKeyId Offline media key identifier.
|
||||
* @param offlineMediaKeyIdLen Offline media key identifier len.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 按ID清除离线媒体密钥。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param offlineMediaKeyId 离线媒体密钥标识。
|
||||
* @param offlineMediaKeyIdLen 离线媒体密钥标识长度。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyId为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -337,12 +342,12 @@ Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys(MediaKeySystem *mediaKeySyst
|
||||
uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen);
|
||||
|
||||
/**
|
||||
* @brief Get certificate status of media key system.
|
||||
* @param mediaKeySystem Media key system instance.
|
||||
* @param certStatus Status will be gotten.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 获取设备DRM证书状态。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @param certStatus 设备DRM证书状态值。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数certStatus为空指针。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
@@ -350,11 +355,11 @@ Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus(MediaKeySystem *mediaKeySyste
|
||||
DRM_CertificateStatus *certStatus);
|
||||
|
||||
/**
|
||||
* @brief Destroy a media key system instance.
|
||||
* @param mediaKeySystem Specifies which media key system instance will be destroyed.
|
||||
* @return {@link DRM_ERR_OK} 0 - Success.
|
||||
* {@link DRM_ERR_INVALID_VAL} 24700503 - The parameter passed in is a null pointer or invalid.
|
||||
* {@link DRM_ERR_UNKNOWN} 24700506 - Internal error occurred, it is recommended to check the logs.
|
||||
* @brief 销毁MediaKeySystem实例。
|
||||
* @param mediaKeySystem MediaKeySystem实例。
|
||||
* @return DRM_ERR_OK:执行成功。
|
||||
* DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。
|
||||
* DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。
|
||||
* @since 11
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user