hi3516cv610分配多个 vb pool及查看vb信息
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 poolfor (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是否足够