Lines Matching defs:cenc_info
163 static void av_encryption_info_set_drm_algo(uint32_t algo, AV_DrmCencInfo *cenc_info)
168 cenc_info->algo = AV_DRM_ALG_CENC_AES_CTR;
172 cenc_info->algo = AV_DRM_ALG_CENC_AES_CBC;
176 cenc_info->algo = AV_DRM_ALG_CENC_SM4_CBC;
180 cenc_info->algo = AV_DRM_ALG_CENC_SM4_CTR;
183 cenc_info->algo = AV_DRM_ALG_CENC_UNENCRYPTED;
190 AV_DrmCencInfo *cenc_info, int pkt_data_size)
200 cenc_info = av_mallocz(*side_data_size);
201 if (!cenc_info)
204 av_encryption_info_set_drm_algo(info->scheme, cenc_info);
205 cenc_info->key_id_len = info->key_id_size;
206 memcpy(cenc_info->key_id, info->key_id, info->key_id_size);
207 cenc_info->iv_len = info->iv_size;
208 memcpy(cenc_info->iv, info->iv, info->iv_size);
209 cenc_info->mode = AV_DRM_CENC_INFO_KEY_IV_SUBSAMPLES_SET;
210 cenc_info->encrypt_blocks = info->crypt_byte_block;
211 cenc_info->skip_blocks = info->skip_byte_block;
212 cenc_info->first_encrypt_offset = 0;
213 cenc_info->sub_sample_num = info->subsample_count;
215 for (i = 0; i < cenc_info->sub_sample_num; i++) {
216 cenc_info->sub_samples[i].clear_header_len = info->subsamples[i].bytes_of_clear_data;
217 cenc_info->sub_samples[i].pay_load_len = info->subsamples[i].bytes_of_protected_data;
221 cenc_info->sub_sample_num = 1; // 1: sub_sample num
222 cenc_info->sub_samples[0].clear_header_len = 0;
223 cenc_info->sub_samples[0].pay_load_len = (pkt_data_size / 16) * 16; // 16: block size
225 cenc_info->sub_sample_num = 2; // 2: sub_sample num
226 cenc_info->sub_samples[1].clear_header_len = pkt_data_size % 16; // 16: block size
227 cenc_info->sub_samples[1].pay_load_len = 0;
230 return cenc_info;