91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

通過v4l2接口,采集攝像頭數據(yuyv),并保存為24位bmp圖,再將此bmp顯示在lcd上(rgb32)

資源截圖

代碼片段和文件信息

/*
?*?v4l2.c
?*
?*??Created?on:?Aug?8?2011
?*??????Author:?gavin
?*/

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
//#include?
#include?

#include?“v4l2grab.h“
#include?“camera.h“

static?int?fd?=?-1;

struct?buffer?{
????void?*??????????????????start;
????size_t??????????????????length;
};

//static?io_method????????io??????????????=?IO_METHOD_MMAP;

struct?buffer?*?????????buffers?????????=?NULL;
static?unsigned?int?????n_buffers???????=?0;

//?global?settings

static?unsigned?int?width?=?800;
static?unsigned?int?height?=?480;
static?char*?deviceName?=?“/dev/video0“;
struct?fb_var_screeninfo?vinfo;
struct?fb_fix_screeninfo?finfo;

static?int?fb_bpp;
static?int?cam_fp?=?-1;
static?int?fb_fp?=?-1;
static?char?*fb_addr?=?NULL;
unsigned?char?frame_buffer[640*480*3];

int?fb_init(void)
{
????int?dev_fp?=?-1;
????int?fb_size;
//????struct?fb_var_screeninfo?vinfo;

????dev_fp?=?open(“/dev/fb0“?O_RDWR);
????if?(dev_fp?????????perror(“/dev/fb0“);
????????return?-1;
????}
if(-1==xioctl(dev_fpFBIOGET_FSCREENINFO&finfo))
{
perror(“finfo“);
return?-1;
}
????if?(ioctl(dev_fp?FBIOGET_VSCREENINFO?&vinfo))?{
????????printf(“Error?reading?variable?information.\n“);
????????exit(1);
????}
????width=vinfo.xres;
????height=vinfo.yres;
????fb_bpp=vinfo.bits_per_pixel;
????if(fb_bpp==24)
????????fb_bpp=32;
???fb_size=width*height*fb_bpp/8;


????if?((fb_addr?=?mmap(0?fb_sizePROT_READ?|?PROT_WRITE?MAP_SHARED?dev_fp?0))?????{
????????perror(“mmap()“);
????????return?-1;
????}
????printf(“%dx%d?bpp:%d?mmaped?0x%08x\n“widthheightfb_bppfb_addr);

????return?dev_fp;
}

void?deviceOpen(void)
{
????fd?=?open(deviceName?O_RDWR?/*?required?*/?|?O_NONBLOCK?0);
????//?check?if?opening?was?successfull
????if?(-1?==?fd)?{
????????fprintf(stderr?“Cannot?open?‘%s‘:?%d?%s\n“?deviceName?errno?strerror?(errno));
????????exit(EXIT_FAILURE);
????}
}

/**
??initialize?device
*/
int?deviceInit(void)
{
????struct?v4l2_capability?cap;
????struct?v4l2_cropcap?cropcap;
????struct?v4l2_crop?crop;
????struct?v4l2_format?fmt;


????unsigned?int?min;

????if?(-1?==?xioctl(fd?VIDIOC_QUERYCAP?&cap))?{
????????if?(EINVAL?==?errno)?{
????????????fprintf(stderr?“%s?is?no?V4L2?device\n“deviceName);
????????????exit(EXIT_FAILURE);
????????}?else?{
????????????errno_exit(“VIDIOC_QUERYCAP“);
????????}
????}

????if?(!(cap.capabilities?&?V4L2_CAP_VIDEO_CAPTURE))
????{
????????fprintf(stderr?“%s?is?no?video?capture?device\n“deviceName);
????????exit(EXIT_FAILURE);
????}

????struct?v4l2_input?input;
????input.index?=?0;
????if?(?ioctl(fd?VIDIOC_ENUMINPUT?&input)?!=?0)
????{
????????printf(“?set?input?error.\n“);
????????exit(0);
????}

????if?((i

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????753??2013-08-16?11:25??save\camera.h

?????文件????????783??2013-08-11?16:48??save\main.c

?????文件???????1981??2012-12-18?06:37??save\v4l2grab.h

?????文件??????16046??2013-08-16?15:50??save\camera.c

?????目錄??????????0??2013-08-19?16:17??save

-----------?---------??----------?-----??----

????????????????19563????????????????????5


評論

共有 條評論