X3PI多媒体接口问题

第一个问题:

使用GC4663摄像头,在X3pi运行python实时推理例程,执行:

cam.open_cam(0, 1, 30, 2048,1024 )

img = cam.get_img(2,2048,1024)

img里面get不到数据,经测试open_cam分辨率设置要小于等于1920*1080才能正常运行,但是理论上400m摄像头应该可以设置更高的分辨率?-
第二个问题:-
运行test_cam_vps_display()例程报错如下

sudo python3 ./YUV2JPG.py

Camera open_cam return:0

[ERROR][“ipu”][ipu/ipu.c:1479] [1038.817232]ipu_entity_init_one_chn[1479]: ipu src IPU_IOC_INIT ioctl failed !

[ERROR][“ipu”][ipu/ipu.c:1534] [1038.820575]ipu_entity_init_one_chn[1534]: pipe(1) ipu_entity_init return with clean.

[ERROR][“vps”][vps_grp/vps_group.c:1650] [1038.820616]vps_pre_start[1650]: vps: ipu entity init src error

[ERROR][“vps”][vps/hb_vps_api.c:174] [1038.820631]HB_VPS_StartGrp[174]: pre start group1 error

2022/12/08 09:57:30.030 ERROR [x3_vps_start][0144]HB_VPS_StartGrp error, vpsGrpId: 1

2022/12/08 09:57:30.030 ERROR [x3_cam_start][0283]x3_vps_start failed, -1

Camera vps return:-1

Display display 0 return:0

[ERROR][“vps”][vps/hb_vps_api.c:2438] [1040.821891]HB_VPS_GetChnFrame[2438]: G0 VPS error get chn1 frame timeout

[ERROR][“vio_bufmgr”][utils/hb_vio_buffer_mgr.c:2011] [1040.822010]buf_mgr_print_qcount[2011]: Mgr(1)state:Total(5)Avail(2)Process(3)Done(0)Repro(0)User(0).

HB_VPS_GetChnFrame Failed. ret = -268696588

camera get image failed count: 0

[ERROR][“vps”][vps/hb_vps_api.c:2367] [1040.822398]HB_VPS_GetChnFrame[2367]: VPS GetChnFrame err: group-1 unexist!

HB_VPS_GetChnFrame Failed. ret = -268696580

vps get image failed count: 0

[ERROR][“vps”][vps/hb_vps_api.c:2438] [1042.822741]HB_VPS_GetChnFrame[2438]: G0 VPS error get chn1 frame timeout

[ERROR][“vio_bufmgr”][utils/hb_vio_buffer_mgr.c:2011] [1042.822803]buf_mgr_print_qcount[2011]: Mgr(1)state:Total(5)Avail(2)Process(3)Done(0)Repro(0)User(0).

HB_VPS_GetChnFrame Failed. ret = -268696588

camera get image failed count: 1

[ERROR][“vps”][vps/hb_vps_api.c:2367] [1042.823027]HB_VPS_GetChnFrame[2367]: VPS GetChnFrame err: group-1 unexist!

HB_VPS_GetChnFrame Failed. ret = -268696580

vps get image failed count: 1

[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1043.281208]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1043.781480]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1044.281684]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1044.781849]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

[ERROR][“vps”][vps/hb_vps_api.c:2438] [1044.823284]HB_VPS_GetChnFrame[2438]: G0 VPS error get chn1 frame timeout

[ERROR][“vio_bufmgr”][utils/hb_vio_buffer_mgr.c:2011] [1044.823399]buf_mgr_print_qcount[2011]: Mgr(1)state:Total(5)Avail(2)Process(3)Done(0)Repro(0)User(0).

HB_VPS_GetChnFrame Failed. ret = -268696588

camera get image failed count: 2

[ERROR][“vps”][vps/hb_vps_api.c:2367] [1044.823704]HB_VPS_GetChnFrame[2367]: VPS GetChnFrame err: group-1 unexist!

HB_VPS_GetChnFrame Failed. ret = -268696580

vps get image failed count: 2

^C^C^C[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1045.282003]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1045.782134]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

^C[ERROR][“vio_core”][commom_grp/binding_main.c:1541] [1046.282245]comm_channel_bump_thread[1541]: G0 IPU_MODULE select too much timeout, retry

如果把来自CAN的img存成文件,再从文件进行VPS操作则没问题,请问这个该怎么解决?

您好,报错表示IPU初始化失败及VPS启动失败,建议检查一下配置参数

这个报错一般是IPU一路配置为offline输入,另一路配置为online输入导致的报错,这样是不支持的,不同路输入要一致,要么全online输入,要么全offline输入

谢谢,IPU应该在哪里配置?

这个场景应该ipu是vps的第一个模块,检查一下vin vps mode

文档中没找到啊?,麻烦告诉一下怎么检查vin vps mode

看了下您具体用的python接口,没有显式配置vin vps模式的接口,方便贴下kernel报错信息吗,dmesg可以看到对应出错时间的,看是否有"IPU DMA input already,can’t set otf input“"IPU otf input already,can’t set dma input”字样

open_cam,open_vps的参数方便的话也贴下吧

你好,dmeg信息如下,文字审核不过:

存在IPU otf input already,can’t set dma input字样;

cam和vps参数如下:

def test_cam_vps_display():

#camera start

cam = libsrcampy.Camera()

ret = cam.open_cam(0, 1, 30, [1920, 1280], [1080, 720])

print(“Camera open_cam return:%d” % ret)

#vps start

vps = libsrcampy.Camera()

ret = vps.open_vps(1, 1, 1920, 1080, 512, 512)

print(“Camera vps return:%d” % ret)

#display start

disp = libsrcampy.Display()

ret = disp.display(0, 1920, 1080, 0, 1)

print (“Display display 0 return:%d” % ret)

a = 0

while a < 100:

img = cam.get_img()

if img is not None:

vps.set_img(img)

print(“camera get image success count: %d” % a)

else:

print(“camera get image failed count: %d” % a)

img = vps.get_img(2, 1920, 1080)

if img is not None:

disp.set_img(img)

print(“vps get image success count: %d” % a)

else:

print(“vps get image failed count: %d” % a)

a = a + 1

disp.close()

vps.close_cam()

cam.close_cam()

print(“test_cam_vps_display done!!!”)

看报错的话确实是第一路配置了online,第二路offline导致初始化失败,据了解python接口目前不支持您当前的用法