天嵌二次封装库使用手册  V2.1.2
lib_uvc.h
浏览该文件的文档.
1 
7 #ifndef LINUX_LIBV2_SOURCE_USB_CAMERA_LIB_UVC_H_
8 #define LINUX_LIBV2_SOURCE_USB_CAMERA_LIB_UVC_H_
9 
10 
12 {
13  int width;
14  int high;
15  int fps;
16  int format;
17 };
18 
20 {
21  unsigned char *start;
22  size_t offset;
23  unsigned int length;
24 };
25 
27 {
28  const char *name;
29  int v4l2_fd;
30  int in_width;
31  int in_height;
32  int width;
33  int height;
34  int sizeimage;
35  int top;
36  int left;
37  int rotate;
38  int cap_fmt;
42  struct uvc_struct_videobuffer buffers[4];
43  unsigned int buf_count;
44  int buf_index;
45 };
46 
48 {
49  int isError;
50  unsigned char driverName[16];
51  unsigned char cardName[32];
52  unsigned char bus_info[32];
53  char version[10];
54 };
55 
57 {
58  char format[32];
59 };
60 #ifdef __cplusplus
61 #define UVC_API extern "C"
62 #else
63 #define UVC_API
64 #endif
65 
66  UVC_API int camera_test();
67 
68  UVC_API int uvc_init(char *dev_name, int width, int high, int fps, void **buff);
69  /*
70  * 描述:初始化摄像头
71  * 参数:char *dev_name//设备文件名
72  int width//宽
73  int high//高
74  int fps//帧率
75  void** buff
76  * 返回值:成功:设备文件
77  * 失败:-1:打开设备文件失败
78  * 失败:-2:设置数据流参数失败
79  * 失败:-3:设置视频的制式和帧格式
80  * 失败:-4:内存申请失败
81  * 失败:-5:查询申请到的内存失败
82  * 失败:-6:将空闲的内存加入可捕获视频的队列失败
83  * 失败:-7:打开视频流失败
84  * 失败:-99:参数错误
85  */
86 
87  UVC_API int uvc_check(char *dev);
88  /*
89  * 描述:检测摄像头是否存在
90  * 参数:index用于检测第几个摄像头,从0开始,对应video0~x
91  *返回值:存在返回0,不存在返回-1 参数错误返回-99
92  *
93 */
94 
95  UVC_API int uvc_args(int fd, int *width, int *high);
96  /*
97  * 描述:获取设备可支持的图像尺寸
98  * 参数:int fd//设备文件(uvc_init的返回值),int width(用于存放设备当前分辨率的宽),int high(用于存放设备当前分辨率的高)
99  * 返回值:成功:0
100  * 失败:-1:获取失败
101  * 失败:-98:未初始化
102  * 失败:-99:参数错误
103 */
104 
105  UVC_API int uvc_format(int fd, struct uvc_struct_format **);
106  /*
107  * 描述:获取设备可支持的格式
108  * 参数:int fd//设备文件(uvc_init的返回值),struct uvc_format**(用于存放设备可支持的格式)
109  * 返回值:成功:int(可支持设备格式的数量)
110  * 失败:-98:未初始化
111  * 失败:-99:参数错误
112 */
113 
115  /*
116  * 描述:查询设备属性
117  * 参数:int fd//设备文件(uvc_init的返回值)
118  * 返回值:成功:uvc_Attributes结构体
119  * uvc_Attributes.driverName[16]//驱动模块的名字
120  * uvc_Attributes.cardName[32]//设备名字
121  * uvc_Attributes.bus_info[32]//总线信息
122  * uvc_Attributes.verison[10]//内核版本
123  * 失败:查询失败,结构体uvc_Attributes所有值均为error(-1)
124  * 失败:未初始化,结构体uvc_Attributes所有值均为error(-98)
125  * 失败:参数错误,结构体uvc_Attributes所有值均为error(-99)
126  */
127 
128  UVC_API int uvc_capturing(int fd);
129  /*
130  * 描述:将已经捕获好视频的内存拉出已捕获视频的队列
131  * 参数:int fd//设备文件(uvc_init的返回值)
132  * 返回值:int 索引值:成功:大于0
133  * 失败:-1
134  * 失败:-98:未初始化
135  * 失败:-99:参数错误
136  */
137 
138  UVC_API int uvc_release(int fd, int index);
139  /*
140  * 描述:将空闲的内存加入可捕获视频的队列
141  * 参数:int fd//设备文件(uvc_init的返回值)
142  * int index//索引值(uvc_capturing的返回值)
143  * 返回值:int 成功:0
144  * 失败:-1
145  * 失败:-98:未初始化
146  * 失败:-99:参数错误
147 */
148 
149  UVC_API int uvc_close(int fd, void **buff);
150 /*
151  * 描述:关闭摄像头
152  * 参数:int fd//设备文件(uvc_init的返回值),void **buff(与初始化函数uvc_init调用同一个)
153  * 返回值:成功:0
154  * 失败:-1 关闭失败
155  * 失败:-2:查询申请到的内存失败
156  * 失败:-98:未初始化
157  * 失败:-99:参数错误
158 */
159 
160 #endif
#define UVC_API
Definition: lib_uvc.h:63
const char * name
Definition: lib_uvc.h:28
UVC_API int uvc_release(int fd, int index)
UVC_API struct uvc_struct_Attributes uvc_Attributes(int fd)
UVC_API int uvc_init(char *dev_name, int width, int high, int fps, void **buff)
unsigned int length
Definition: lib_uvc.h:23
UVC_API int uvc_close(int fd, void **buff)
unsigned char * start
Definition: lib_uvc.h:21
UVC_API int uvc_format(int fd, struct uvc_struct_format **)
UVC_API int uvc_args(int fd, int *width, int *high)
UVC_API int uvc_check(char *dev)
UVC_API int camera_test()
UVC_API int uvc_capturing(int fd)
unsigned int buf_count
Definition: lib_uvc.h:43