hi3516cv610分配多个 vb pool及查看vb信息
sample_venc.c里
static td_void sample_venc_online_wrap_get_default_vb_cfg(ot_vb_cfg *vb_cfg, sample_venc_param *enc_param,
td_u32 wrap_size)
{
td_s32 i;
ot_vb_calc_cfg calc_cfg;
ot_pic_buf_attr buf_attr;
(td_void)memset_s(vb_cfg, sizeof(ot_vb_cfg), 0, sizeof(ot_vb_cfg));
vb_cfg->max_pool_cnt = 128; /* 128 blks */
// 这个 for循环好像只会设一个 vb pool
for (i = 1; i < enc_param->venc_chn_num && CHN_NUM_MAX; i++) {
buf_attr.width = enc_param->enc_size[i].width;
buf_attr.height = enc_param->enc_size[i].height;
buf_attr.align = OT_DEFAULT_ALIGN;
buf_attr.bit_width = OT_DATA_BIT_WIDTH_10;
// buf_attr.bit_width = OT_DATA_BIT_WIDTH_8;
buf_attr.pixel_format = OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420;
buf_attr.compress_mode = OT_COMPRESS_MODE_NONE;
buf_attr.video_format = OT_VIDEO_FORMAT_LINEAR;
ot_common_get_pic_buf_cfg(&buf_attr, &calc_cfg);
printf("\n\nfunction: %s i is %d\n\n", __FUNCTION__, __LINE__);
// vb_cfg->common_pool[i].blk_size = 4239360;
// vb_cfg->common_pool[i].blk_size = 5529600;
vb_cfg->common_pool[i].blk_size = 3740272;
// vb_cfg->common_pool[i].blk_size = 518400;
// vb_cfg->common_pool[i].blk_size = calc_cfg.vb_size;
// vb_cfg->common_pool[i].blk_cnt = 10; /* 3 blk_cnt */
// vb_cfg->common_pool[i].blk_cnt = 12; /* 3 blk_cnt */
vb_cfg->common_pool[i].blk_cnt = 4; /* 3 blk_cnt */
// vb_cfg->common_pool[i].blk_cnt = 2; /* 3 blk_cnt */
}
vb_cfg->common_pool[i].blk_cnt = 1;
vb_cfg->common_pool[i].blk_size = wrap_size;
vb_cfg->common_pool[i+1].blk_size = 518400;
vb_cfg->common_pool[i+1].blk_cnt = 3;
}
cat vb信息
min_free下面的数是否为0判断 vb pool是否足够