camera.c 程序代码 #include #include #include #include #include #include #include #include #define ERR_FRAME_BUFFER 1 #define ERR_VIDEO_OPEN 2 #define ERR_VIDEO_GCAP 3 #define ERR_VIDEO_GPIC 4 #define ERR_VIDEO_SPIC 5 #define ERR_SYNC 6 #define ERR_FRAME_USING 7 #define ERR_GET_FRAME 8 typedef struct _fb_v4l { // FrameBuffer 信息 int fbfd ; // FrameBuffer设备句柄 struct fb_var_screeninfo vinfo; // FrameBuffer屏幕可变的信息 struct fb_fix_screeninfo finfo; // FrameBuffer固定不变的信息 char *fbp; // FrameBuffer 内存指针 // video4linux信息 int fd; // struct video_capability capability; // struct video_buffer buffer; // struct video_window window; // struct video_channel channel[8]; // struct video_picture picture; // struct video_tuner tuner; // struct video_audio audio[8]; // struct video_mmap mmap; // struct video_mbuf mbuf; // unsigned char *map; int frame_current;//what 's the frame number being captured currently? int frame_using[VIDEO_MAX_FRAME];//帧的状态没有采集还是等待结束? }fb_v41; #define DEFAULT_PALETTE VIDEO_PALETTE_RGB565 #define FB_FILE "/dev/fb/0" //V4L_FILE ''/dev/video0'' //Zhaoyang Modified // #define V4L_FILE "/dev/v4l/video0" //我的板子video0已被占据 /* struct video_mmap { unsigned int frame; Frame (0 - n) for double buffer int height,width; unsigned int format; should be VIDEO_PALETTE_* }; struct video_mbuf { int size; Total memory to map int frames; Frames int offsets[VIDEO_MAX_FRAME]; //32 }; */ /********************************************************************************************************* ** Function name: get_grab_frame ** Descriptions: 获取图像帧,该函数调用了VIDIOCMCAPTURE的 ioctl,获取一帧图片 ** Input: *vd,参数指针 ** frame,帧号 ** Outp...