RK3288 Reload多路视频编解码问题请教,急
工具:RK3288 Reload开发板+三个720p的usb摄像头(调试先用了两个)。系统固件:firefly-rk3288_android5.1(固件已经升级到最新)。参照“【技术分享】Firefly-RK3288多路视频编解码技术案例源码 ...”添加uvc代码、添加uvcserver、更换libRkOMX_Resourcemanager.so、安装MultiCodecs.apk。打开MultiCodecs.apk同时只有一路视频编解码显示正常,拔除当前摄像头重新打开另一路摄像头显示正常,查看设备video0、video1正常,串口打印信息:
V/Uvc ( 163): startPreview
E/UvcIoctl( 163): buffers0.start = 0xb41ef000
E/UvcIoctl( 163): buffers1.start = 0xb3e9a000
E/UvcIoctl( 163): buffers2.start = 0xb3e03000
E/UvcIoctl( 163): buffers3.start = 0xb3d6c000
E/UvcIoctl( 163): stream_on fd 13
E/UvcIoctl( 163): VIDIOC_STREAMON error 28, No space left on device
E/UvcIoctl( 163): VIDIOC_STREAMON error 28, No space left on device
E/UvcIoctl( 163): Command VIDIOC_DQBUF error, errno: 22, Invalid argument
D/UvcJNI ( 2337): unlock
E/UvcIoctl( 163): VIDIOC_DQBUF error 22, Invalid argument
E/UvcIoctl( 163): VIDIOC_DQBUF error 22, Invalid argument
D/UvcClient( 2337): unlock
D/Uvc ( 163): dequeue err -1
D/Uvc ( 163): threadFunc exit
D/IUvc ( 163): UNLOCK
V/Uvc ( 163): unlock
修改MultiCodecs.apk源码,将分辨率改为640*480以及320*240,帧数改为2,显示的画质变差,帧数明显改变,但不知是板卡对数据处理的结果还是usb摄像头的工作参数被修改,问题没有解决。
在kernel的uvc驱动中添加打印,部分打印信息如下:
long uvc_v4l2_do_ioctl VIDIOC_S_FMT
long uvc_v4l2_set_format width=640 height=480
long uvc_v4l2_try_format
long uvc_probe_video
long uvc_set_video_ctrl wPFrameRate=0 dwFrameInterval=333333 wKeyFrameRate=0 wCompWindowSize=0
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_set_video_ctrl wPFrameRate=0 dwFrameInterval=333333 wKeyFrameRate=0 wCompWindowSize=0
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_v4l2_do_ioctl VIDIOC_S_PARM
long uvc_v4l2_set_streamparm
long uvc_probe_video
long uvc_set_video_ctrl wPFrameRate=0 dwFrameInterval=333333 wKeyFrameRate=0 wCompWindowSize=0
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_set_video_ctrl wPFrameRate=0 dwFrameInterval=333333 wKeyFrameRate=0 wCompWindowSize=0
long uvc_fixup_video_ctrl wWidth=640 wHeight=480
long uvc_set_video_ctrl wPFrameRate=0 dwFrameInterval=333333 wKeyFrameRate=0 wCompWindowSize=0
INFO:: check_periodic_bandwidth: already claimed usecs 64, required usecs 60
INFO:: schedule_periodic: Insufficient periodic bandwidth for periodic transfer.
ERROR::dwc_otg_hcd_urb_enqueue:538: DWC OTG HCD URB Enqueue failed adding QTD. Error status -28
uvcvideo: Failed to submit URB 0 (-28).
vcodec_service: ff9a0000.vpu_service: power off...
vcodec_service: done
vcodec_service: ff9a0000.vpu_service: power on
type=1400 audit(1293884151.640:20): avc: denied { ptrace } for pid=163 comm="debuggerd" scontext=u:r:debuggerd:s0 tcontext=u:r:init:s0 tclass=process permissive=1
init: Warning!Service uvcd needs a SELinux domain defined; please fix!
vcodec_service: ff9a0000.vpu_service: power off...
vcodec_service: done
根据打印信息,分辨率应该是修改成功了。
问题一直没有解决,从最初的错误提示来看也质询了原厂说是usb带宽不够,但分辨率和帧数已经这么低了不应该带宽还不够吧,纠结好几天了,求指点。
石沉大海,自个dddddddddd 2B铅笔 发表于 2017-10-20 08:40
石沉大海,自个dddddddddd
兄弟,找到问题了吗? 奔跑的老牛 发表于 2017-10-27 15:52
兄弟,找到问题了吗?
咨询了原厂,说是带宽满足不了 要改check_periodic_bandwidth带宽大小 shu51 发表于 2018-1-11 11:35
要改check_periodic_bandwidth带宽大小
这个接口我都把100改成125了,还是同样的问题,一个摄像头yuv格式,一个mjpeg就没问题,但是两个都是yuv格式的640*480就有问题,如果分辨率降低为320*240的双yuv格式也没问题 请问 更换libRkOMX_Resourcemanager.so。 这个so文件是从哪搞到的。我的是Firefly3288 5.1
页:
[1]