1e41f4b71Sopenharmony_ci# native_cencinfo.h 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## Overview 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ciThe **native_cencinfo.h** file declares the native APIs used to set decryption parameters. 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci**Library**: libnative_media_avcencinfo.so 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci**Since**: 12 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**Related module**: [Multimedia_Drm](_multimedia___drm.md) 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## Summary 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci### Structs 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci| Name| Description| 21e41f4b71Sopenharmony_ci| -------- | -------- | 22e41f4b71Sopenharmony_ci| struct [DrmSubsample](_drm_subsample.md) | Describes the subsample type.| 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci### Macros 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| Name| Description| 28e41f4b71Sopenharmony_ci| -------- | -------- | 29e41f4b71Sopenharmony_ci| [DRM_KEY_ID_SIZE](_multimedia___drm.md#drm_key_id_size) 16 | The length of the key ID is 16 bytes.| 30e41f4b71Sopenharmony_ci| [DRM_KEY_IV_SIZE](_multimedia___drm.md#drm_key_iv_size) 16 | The length of the Initialization Vector (IV) is 16 bytes.| 31e41f4b71Sopenharmony_ci| [DRM_KEY_MAX_SUB_SAMPLE_NUM](_multimedia___drm.md#drm_key_max_sub_sample_num) 64 | The maximum number of subsamples is 64.| 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ci### Types 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci| Name| Description| 37e41f4b71Sopenharmony_ci| -------- | -------- | 38e41f4b71Sopenharmony_ci| typedef struct [OH_AVBuffer](_multimedia___drm.md#oh_avbuffer) [OH_AVBuffer](_multimedia___drm.md#oh_avbuffer) | Defines a struct for the audio/video buffer.| 39e41f4b71Sopenharmony_ci| typedef struct [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) | Defines a struct for the audio/video Common Encryption Scheme (CENC) information.| 40e41f4b71Sopenharmony_ci| typedef enum [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) [DrmCencAlgorithm](_multimedia___drm.md#drmcencalgorithm) | Defines an enum for the DRM CENC algorithm types.| 41e41f4b71Sopenharmony_ci| typedef enum [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) [DrmCencInfoMode](_multimedia___drm.md#drmcencinfomode) | Defines an enum for the modes for setting the key ID, IV, and subsample information in the CENC information.| 42e41f4b71Sopenharmony_ci| typedef struct [DrmSubsample](_drm_subsample.md) [DrmSubsample](_multimedia___drm.md#drmsubsample) | Defines a struct for the subsample type.| 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci### Enums 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci| Name| Description| 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>} | Enumerates the DRM CENC algorithm types.| 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 } | Enumerates the modes for setting the key ID, IV, and subsample information in the CENC information.| 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci### Functions 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci| Name| Description| 56e41f4b71Sopenharmony_ci| -------- | -------- | 57e41f4b71Sopenharmony_ci| [OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \* [OH_AVCencInfo_Create](_multimedia___drm.md#oh_avcencinfo_create) () | Creates an **OH_AVCencInfo** instance for setting the CENC information.| 58e41f4b71Sopenharmony_ci| OH_AVErrCode [OH_AVCencInfo_Destroy](_multimedia___drm.md#oh_avcencinfo_destroy) ([OH_AVCencInfo](_multimedia___drm.md#oh_avcencinfo) \*cencInfo) | Destroys an **OH_AVCencInfo** instance and clears internal resources.| 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) | Sets an encryption algorithm of the CENC information.| 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) | Sets the key ID and IV in the CENC information.| 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) | Sets the subsample information in the CENC information.| 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) | Sets the CENC information mode.| 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) | Sets the CENC information to an AVBuffer.| 64