|
你好,想请教下,基于V4L2实现视频采集显示的程序。
1 C: \' R, Y9 s8 a. e6 e采用OMAPL138,Linux3.3.0内核,使用的是创龙CMOS摄像头TL2640,: l. d; o7 r6 N5 b$ i* x+ ]; g( U0 g
程序可以成功交叉编译,在开发板中运行会出现问题,如下。
; C' f, J1 a5 t4 A' L8 U' h+ d
, |% `; j; r( E0 i$ b7 A4 m% e, P相关程序为:, L& [4 k7 F. i+ C: n
3 p; ]! t }' z' X! T% d
int fd=open(/dev/video0,O_RDWR);//打开设备,返回值09 u7 Y6 _4 m$ L- q3 y. l* S
" }( B+ B. d' s* P$ d1 \2 y……
) L" z- u% J3 O; F1 E* |( q. l: P' e7 c# |5 K1 C. E. ?
ioctl(fd,VIDIOC_QUERYCAP,&cap);//读取设备相关信息,返回值0- F E' c; `4 S- {
0 V( t3 I- s1 G
$ R b% t8 L9 E: m2 f# i# U
……
9 P0 _* i# r' F9 A& {5 M8 @. l6 f K6 i/ b7 p
ioctl(fd,VIDIOC_G_FMT,&fmt);//读取摄像头支持的视频格式,返回值-1
3 p2 H# [. M9 g0 \, E) c4 X7 z5 _+ c, v* U5 e/ g% \; y, v
到这一步就失败了,返回值为-1。包括使用类似控制命令,如VIDIOC_G_STD。9 v5 e1 w! ~3 [9 E3 R5 i0 g
使用设置摄像头格式的io控制命令,如VIDIOC_S_STD,VIDIOC_S_FMT,也会返回-1.( t+ D B& V9 M
: m5 ]7 e g' r; v1 `请问怎么解决,谢谢!
- e3 ~7 d% Z2 h/ F; o |3 a9 a# e
/ d8 P, p6 T, D+ ~' Q! x/ q6 ^$ l, W |
|