1e41f4b71Sopenharmony_ci# native_cencinfo.h
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## 概述
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci声明用于设置解密参数的Native API。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**库:** libnative_media_avcencinfo.so
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci**起始版本:** 12
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci**相关模块:**[Multimedia_Drm](_multimedia___drm.md)
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## 汇总
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci### 结构体
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci| 名称 | 描述 | 
21e41f4b71Sopenharmony_ci| -------- | -------- |
22e41f4b71Sopenharmony_ci| struct  [DrmSubsample](_drm_subsample.md) | Subsample结构类型定义。 | 
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci### 宏定义
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| 名称 | 描述 | 
28e41f4b71Sopenharmony_ci| -------- | -------- |
29e41f4b71Sopenharmony_ci| [DRM_KEY_ID_SIZE](_multimedia___drm.md#drm_key_id_size)   16 | Key id长度为16字节。 | 
30e41f4b71Sopenharmony_ci| [DRM_KEY_IV_SIZE](_multimedia___drm.md#drm_key_iv_size)   16 | Iv长度为16字节。 | 
31e41f4b71Sopenharmony_ci| [DRM_KEY_MAX_SUB_SAMPLE_NUM](_multimedia___drm.md#drm_key_max_sub_sample_num)   64 | 最大的Subsample数量为64个。 | 
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci### 类型定义
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci| 名称 | 描述 | 
37e41f4b71Sopenharmony_ci| -------- | -------- |
38e41f4b71Sopenharmony_ci| typedef struct [OH_AVBuffer](_multimedia___drm.md#oh_avbuffer) [OH_AVBuffer](_multimedia___drm.md#oh_avbuffer) | AVBuffer结构。 | 
39e41f4b71Sopenharmony_ci| typedef struct [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) | AVCencInfo结构。 | 
40e41f4b71Sopenharmony_ci| typedef enum [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) | Drm CENC算法类型。 | 
41e41f4b71Sopenharmony_ci| typedef enum [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) | 枚举类型,表示cencInfo中keyId/iv/subsample信息是否设置。 | 
42e41f4b71Sopenharmony_ci| typedef struct [DrmSubsample](_drm_subsample.md) [DrmSubsample](_multimedia___drm.md#drmsubsample) | Subsample结构类型定义。 | 
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci### 枚举
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci| 名称 | 描述 | 
48e41f4b71Sopenharmony_ci| -------- | -------- |
49e41f4b71Sopenharmony_ci| [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) {<br/>DRM_ALG_CENC_UNENCRYPTED = 0x0, DRM_ALG_CENC_AES_CTR = 0x1,<br/>DRM_ALG_CENC_AES_WV = 0x2, DRM_ALG_CENC_AES_CBC = 0x3,<br/>DRM_ALG_CENC_SM4_CBC = 0x4, DRM_ALG_CENC_SM4_CTR = 0x5<br/>} | Drm CENC算法类型。 | 
50e41f4b71Sopenharmony_ci| [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) {<br/>DRM_CENC_INFO_KEY_IV_SUBSAMPLES_SET = 0x0,<br/>DRM_CENC_INFO_KEY_IV_SUBSAMPLES_NOT_SET = 0x1 } | 枚举类型,表示cencInfo中keyId/iv/subsample信息是否设置。 | 
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci### 函数
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci| 名称 | 描述 | 
56e41f4b71Sopenharmony_ci| -------- | -------- |
57e41f4b71Sopenharmony_ci| [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \* [OH_AVCencInfo_Create](_multimedia___drm.md#oh_avcencinfo_create) () | 创建用于设置cencInfo的OH_AVCencInfo实例。 | 
58e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_Destroy](_multimedia___drm.md#oh_avcencinfo_destroy) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo) | 销毁OH_AVCencInfo实例并释放内部资源。 | 
59e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_SetAlgorithm](_multimedia___drm.md#oh_avcencinfo_setalgorithm) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo, enum [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) algo) | 设置cencInfo加密算法。 | 
60e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_SetKeyIdAndIv](_multimedia___drm.md#oh_avcencinfo_setkeyidandiv) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo, uint8_t \*keyId, uint32_t keyIdLen, uint8_t \*iv, uint32_t ivLen) | 设置cencInfo的keyId和iv。 | 
61e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_SetSubsampleInfo](_multimedia___drm.md#oh_avcencinfo_setsubsampleinfo) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo, uint32_t encryptedBlockCount, uint32_t skippedBlockCount, uint32_t firstEncryptedOffset, uint32_t subsampleCount, [DrmSubsample](_drm_subsample.md) \*subsamples) | 设置cencInfo的subsamples信息。 | 
62e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_SetMode](_multimedia___drm.md#oh_avcencinfo_setmode) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo, enum [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) mode) | 设置cencInfo的模式。 | 
63e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_SetAVBuffer](_multimedia___drm.md#oh_avcencinfo_setavbuffer) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo, [OH_AVBuffer](_multimedia___drm.md#oh_avbuffer) \*buffer) | 将cencInfo设置到AVBuffer。 | 
64