问题描述
使用ahd_sensor.c 這個demo。
修改:
1、VB(添加一個buffer)
//VB for YUV444 output for dev0,TO AI
config.comm_pool[2].blk_cnt = VICAP_OUTPUT_BUF_NUM;
config.comm_pool[2].mode = VB_REMAP_MODE_NOCACHE;
config.comm_pool[2].blk_size = VICAP_ALIGN_UP((ISP_CHN0_WIDTH * ISP_CHN0_HEIGHT * 3), 0x1000);
2、VICAP(添加一個通道)。
//chn1
//配置通道1
k_vicap_chn_attr chn1_attr;
memset(&chn1_attr, 0, sizeof(k_vicap_chn_attr));
chn1_attr.out_win.h_start = 0;
chn1_attr.out_win.v_start = 0;
chn1_attr.out_win.width = AI_WIDTH;
chn1_attr.out_win.height = AI_HEIGHT;
chn1_attr.crop_win = dev_attr.acq_win;
chn1_attr.scale_win = chn1_attr.out_win;
chn1_attr.crop_enable = K_FALSE;
chn1_attr.scale_enable = K_TRUE;
chn1_attr.chn_enable = K_TRUE;
chn1_attr.pix_format = PIXEL_FORMAT_YUV_SEMIPLANAR_444;
chn1_attr.buffer_num = VICAP_OUTPUT_BUF_NUM;
chn1_attr.buffer_size = VICAP_ALIGN_UP((AI_WIDTH * AI_HEIGHT * 3), VICAP_ALIGN_1K);//
printf("kd_mpi_vicap_set_chn_attr, buffer_size[%d]\n", chn1_attr.buffer_size);
ret = kd_mpi_vicap_set_chn_attr(vicap_dev, VICAP_CHN_ID_1, chn1_attr);
if (ret) {
printf("kd_mpi_vicap_set_chn_attr failed.\n");
return ret;
}
3、獲取的時候將原來的 VICAP_CHN_ID_0 改成新增的 VICAP_CHN_ID_1
完整代碼如下
//VICAP_DEV_ID_0 设备号
//VICAP_CHN_ID_0 输出通道号
//格式
//输出帧信息
//输入超时 300ms
ret = kd_mpi_vicap_dump_frame(VICAP_DEV_ID_0, VICAP_CHN_ID_1, VICAP_DUMP_YUV444, &dump_info, 300);//
if (ret)
{
printf("...kd_mpi_vicap_dump_frame failed.\n");
continue;
}
#if 1
ret = kd_mpi_nonai_2d_send_frame(NONAI_2D_RGB_CH, &dump_info, 1000);//0给到了VO. 1 转到这里
if (ret)
{
printf("sensor 0:kd_mpi_nonai_2d_send_frame ch 1 failed. %d\n", ret);
ret = kd_mpi_vicap_dump_release(VICAP_DEV_ID_0, VICAP_CHN_ID_1, &dump_info);
if (ret)
{
printf("sensor 0:sample_vicap...kd_mpi_vicap_dump_release failed.\n");
continue;
}
}
ret = kd_mpi_nonai_2d_get_frame(NONAI_2D_RGB_CH, &rgb_vf_info, 1000);
if (ret)
{
printf("sensor 0:kd_mpi_nonai_2d_get_frame ch 1 failed. %d\n", ret);
// goto vicap_release;
ret = kd_mpi_vicap_dump_release(VICAP_DEV_ID_0, VICAP_CHN_ID_1, &dump_info);
if (ret)
{
printf("sensor 0:sample_vicap...kd_mpi_vicap_dump_release failed.\n");
continue;
}
}
獲取到的圖片如下

VO顯示異常的圖片

## 硬件板卡
----------
k230_canmv_01studio 或 k230_canmv_v3
## 软件版本
----------
RtSmart-K230_01Studio_rtsmart_local_nncase_v2.9.0.img