Duo Camera Test on SDK V2

The main Milk-V website has a tutorial on how to use the Duo with the camera on the old V1 Linux boot image to do RTSP:

This procedure doesn’t work on the V2 Linux boot image - it seems that all the image processing support tools have changed radically. Digging around in the /mnt/system/usr/test directory there appear to be some RTSP support programs, but so far I haven’t figured out how to use them. When I run the ‘rtsp_server’ program for example it spits out some diagnostics and the reports a failure:

[root@milkv-duo]/mnt/system/usr/test# ls
empty.json  h265.json        rtsp_client  test_aisdk_lib    test_streaming.sh
h264.json   retinaface.json  rtsp_server  test_cvi_rtsp.sh  test_unittest
[root@milkv-duo]/mnt/system/usr/test# ./rtsp_server h264.json
video-src-info : [{"codec":"264"}]
[SAMPLE_COMM_SNS_ParseIni]-2168: Parse /mnt/data/sensor_cfg.[ 2116.019999] vb_ctrl:1000(): vb has already inited, set_config cmd has no effect
ini
[parse_source_devnum]-1761: devNum =  1
[parse_sensor_name]-1842: sensor =  GCORE_GC2083_MIPI_2M_30FPS_10BIT
[parse_sensor_busid]-1871: bus_id =  1
[parse_sensor_i2caddr]-1882: sns_i2c_addr =  37
[parse_sensor_mipidev]-1893: mipi_dev =  0
[parse_sensor_laneid]-1904: Lane_id =  3, 2, 4, -1, -1
[parse_sensor_pnswap]-1915: pn_swap =  0, 0, 0, 0, 0
*** dev_num:1
*** rtspPort:0
*** rtsp_max_buf_size:1048576
*** vi_vpss_mode:1
*** buf1_blk_cnt:0
*** model_path:/mnt/data/cvi_models/retinaface_mnet0.25_342_608.cvimodel
*** enable_set_sensor_config:0
*** sensor_config_path:/mnt/data/sensor_cfg.ini
*** isp_debug_lvl:255
*** enable_set_pq_bin:0
*** sdr_pq_bin_path:
*** wdr_pq_bin_path:
**** video_src_info[0]
**** - rtspURL:stream
**** - ViChn:0
**** - buf_blk_cnt:4
**** - bEnable3DNR:1
**** - bEnableLSC:1
**** - bVpssBinding:1
**** - VpssChn:0
**** - enableIspInfoOsd:0
**** - compress_mode:1
**** - bVencBindVpss:1
**** - enableRetinaFace:0
**** - venc_cfg.codec:264
**** - venc_cfg.bsMode:0
**** - venc_cfg.rcMode:4
**** - venc_cfg.gop:50
**** - venc_cfg.iqp:32
**** - venc_cfg.pqp:32
**** - venc_cfg.bitrate:256
**** - venc_cfg.maxbitrate:5000
**** - venc_cfg.firstFrmstartQp:34
**** - venc_cfg.initialDelay:1000
**** - venc_cfg.u32ThrdLv:2
**** - venc_cfg.h264EntropyMode:1
**** - venc_cfg.maxIprop:100
**** - venc_cfg.maxQp:51
**** - venc_cfg.minQp:1
**** - venc_cfg.maxIqp:51
**** - venc_cfg.minIqp:1
**** - venc_cfg.s32IPQpDelta:2
**** - venc_cfg.s32ChangePos:90
**** - venc_cfg.s32MinStillPercent:10
**** - venc_cfg.u32MaxStillQP:48
**** - venc_cfg.u32MotionSensitivity:80
**** - venc_cfg.s32AvbrFrmLostOpen:1
**** - venc_cfg.s32AvbrFrmGap:3
**** - venc_cfg.s32AvbrPureStillThr:4
**** - venc_cfg.bitstreamBufSize:0
**** - venc_cfg.aspectRatioInfoPresentFlag:0
**** - venc_cfg.overscanInfoPresentFlag:0
**** - venc_cfg.videoSignalTypePresentFlag:0
**** - venc_cfg.videoFormat:0
**** - venc_cfg.videoFullRangeFlag:0
**** - venc_cfg.colourDescriptionPresentFlag:0
[ 2116.318297] vpss_open
[ 2116.320790] vpss_open: open 2 times
enable online mode 1
ISP Vipipe(0) Allocate pa(0x83c86000) va(0x0x3fbdfab000) size(284120)
stSnsrMode.u16Width 192[ 2116.335303] vi_start_pipe:323(): ISP_COMPRESS_ON(1)
0 stSnsrMode.u16Height 1080 30.0[ 2116.341544] vi_tuning_buf_setup:294(): tuning fe_addr[0]=0x8131f490, be_addr[0]=0x81317290, post_addr[0]=0x81300000
00000 wdrMode 0 pstSnsObj 0x3fbe1e13e8
[SAMPLE_COMM_VI_StartMIPI]-494: sensor 0 stDevAttr.devno 0
awbInit ver 6.9@2021500
0 R:1400 B:3100 CT:2850
1 R:1500 B:2500 CT:3900
2 R:2300 B:1600 CT:6500
Golden 1024 1024 1024
WB Quadratic:0
isWdr:0
ViPipe:0[ 2116.577530] _vi_s_ctrl:5221(): raw_num=0, color_mode=3, frm_num=1, snr_w:h=1920:1080, active_w:h=1920:1080
,===GC2083 1080P 30fps 10bit LINE Init OK!===
********************************************************************************
cvi_bin_isp message
gerritId:      NULL           commitId:      59c8d0dd0      
md5:           b1bf409a869f1ac7f3fab617797f9b11
sensorNum      1              
sensorName0    2083           

PQBIN message
gerritId:      80171          commitId:      5c9d8fc5d      
md5:           ba5a510e093ad42db6788e6c2d13169e
sensorNum      3              
sensorName0    2053           

author:        wanqiang.he    desc:          思博慧CV1812H_GC2083_RGB_mode_V1.0.0
createTime:    2023-08-04 16:48:08version:       V1.1           
tool Version:       v3.0.5.24           mode:      
********************************************************************************
sensorName(0) mismatch, mwSns:2083 != pqBinSns:2053
[ 2116.820343] cvi_sc_streamoff:348(): sc(1) isn't idle. crop(0) hscale(0) vscale(0) gop(1) dma(0)
[ 2116.829458] cvi_img_streamoff:225(): img(1) isn't idle
[ 2116.834878] cvi_img_streamoff:226(): err_fwr_yuv(000)	err_erd_yuv(000)	lb_full_yuv(000)	lb_empty_yuv(111)
[ 2116.844795] cvi_img_streamoff:231(): ip idle(0)		ip int(0)
[ 2116.850528] vpss_handle_online:2779(): vpss reset done
[ 2116.855974] isp_frm_err_handler:1860(): W/RDMA_CORE abort done, count(9)
[ 2116.862949] isp_frm_err_handler:1895(): ISP and vip_sys isp rst pull up
[ 2116.869823] vpss_notify_vi_err_evt:269(): img(1:0:3), vi err, wakeup
[ 2116.876436] vpss_sbm_err_handle:2663(): img(1) grp(0) vi err
[ 2116.882396] vpss_sbm_err_handle:2696(): vpss reset done
[ 2116.887855] vpss_notify_vi_err_evt:289(): wait reset done, ret=0
[ 2116.894103] isp_frm_err_handler:1908(): ISP and vip_sys isp rst pull down
[ 2116.901192] isp_frm_err_handler:1916(): Wait ISP idle
[ 2116.906448] isp_frm_err_handler:1925(): FE/BE/ISP idle done, count(9)
JSON_READ_ERR:DATA_TYPE 76(L) vc_motion.MotionThreshold

JSON_READ_ERR:NOT_EXIST 70(L) AWBAttrEx.u16MultiLSThr

JSON_READ_ERR:NOT_EXIST 70(L) AWBAttrEx.u16CALumaDiff

JSON_READ_ERR:NOT_EXIST 70(L) AWBAttrEx.u16CAAdjustRatio

JSON_READ_ERR:NOT_EXIST 70(L) AWBAttrEx.stInterference

[SAMPLE_COMM_ISP_Thread][ 2117.176841] ispblk_dma_buf_get_size:823(): dmaid=10, size=194400
-390: ISP Dev 0 running!
[ 2117.183687] ispblk_dma_buf_get_size:823(): dmaid=45, size=1704960
[ 2117.193129] ispblk_dma_buf_get_size:823(): dmaid=42, size=8160
[ 2117.201912] ispblk_dma_buf_get_size:823(): dmaid=53, size=14208
[ 2117.208486] ispblk_dma_buf_get_size:823(): dmaid=55, size=49152
[ 2117.214960] ispblk_dma_buf_get_size:823(): dmaid=67, size=32400
[ 2117.221417] ispblk_dma_buf_get_size:823(): dmaid=57, size=16960
[ 2117.227872] ispblk_dma_buf_get_size:823(): dmaid=95, size=2048
[ 2117.234523] ispblk_dma_buf_get_size:823(): dmaid=86, size=64800
[ 2117.240994] ispblk_dma_buf_get_size:823(): dmaid=106, size=447744
[ 2117.247637] ispblk_dma_buf_get_size:823(): dmaid=105, size=892672
[ 2117.254275] ispblk_dma_buf_get_size:823(): dmaid=116, size=512
[ 2117.260640] ispblk_dma_buf_get_size:823(): dmaid=123, size=768
[ 2117.267776] _vi_yuvtop_get_dma_size:1489(): ldci bufsize: total(768), used(768), wasted_for_alignment(0)
[ 2117.278026] Summary:
[ 2117.280638] [0] carveout heap size:27787264 bytes, used:25214976 bytes
[ 2117.287731] usage rate:91%, memory usage peak 25214976 bytes
[ 2117.293921] 
[ 2117.293921] Details:
[ 2117.293921]          heap_id   alloc_buf_size         phy_addr         kmap_cnt      buffer name
[ 2117.309081]                0           286720         830b4000                1 ISP_SHARED_BUFFER_0
[ 2117.318779]                0          3768320         830fa000                1       VI_DMA_BUF
[ 2117.328200]                0         12533760         824c0000                1          VbPool0
[ 2117.337892]                0           786432         834b2000                1 VCODEC_H264_FW_Buffer
[ 2117.347769]                0            81920         83972000                1 VENC_0_H264_WorkBuffer
[ 2117.357725]                0           286720         83c86000                1 ISP_SHARED_BUFFER_0
[ 2117.368140]                0          3145728         83986000                1 VENC_0_ReconFrameBuf
[ 2117.377939]                0          4194304         83572000                1 VENC_0_BitStreamBuffer
[ 2117.387907]                0           131072         83492000                1      vi_cmdq_buf
[ 2117.399250] 
[ 2117.401122] ion allocated len=0x397300 failed
[ 2117.405953] _sys_ion_alloc failed
ioctl SYS_ION_ALLOC failed
ISP Vipipe(0) Free pa(0x83c86000[ 2117.462267] vpss_release
) va(0x0x3fbdfab000)
[ 2117.470816] vpss_close: open 1 times
vi init failed. s32Ret: 0xffffffff !
init vi fail
service create fail
[root@milkv-duo]/mnt/system/usr/test# 

Has anyone gotten RTSP streaming working on V2? How?

2 Likes

我在Duo S上使用V2固件也尝试过验证,结果是一样,失败了。
在相关微信、QQ群咨询过,没有人回应,所以我打算自己排查了。

可以参考SDK v1.0 中 camer_test.sh脚本的实现,将资源放到DuoS中执行即可。

# SDK v1.0.0
cp -arf ./install/soc_cv1800b_milkv_duo_sd/tmp/root/mnt/system/usr/bin/sample_vi_fd  ./install/soc_cv1813h_milkv_duos_sd/tmp/root/mnt/cvimodel/ ~/Share/nfs/

# Device 
export LD_LIBRARY_PATH=/mnt/system/lib
/mnt/nfs/sample_vi_fd /mnt/nfs/cvimodel/scrfd_768_432_int8_1x.cvimodel