在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3C2440通過(guò)v4l2采集在lcd上顯示

            S3C2440通過(guò)v4l2采集在lcd上顯示

            作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
            S3C2440通過(guò)v4l2采集lcd上顯示
            #include #include #include #include #include #include #include #include #include #include #include //#include #include #include #include #include #define COLS 320#define ROWS 240#define V4L2_DEV_NODE "/dev/video13"#define FB_DEV_NODE "/dev/fb0"#define CLEAR(x) memset(&(x),0,sizeof(x))typedef struct v4l2_format   V_FORMAT;typedef struct fb_var_screeninfo F_VINFO;struct fb_var_screeninfo fb_var;struct fb_fix_screeninfo fb_fix;char * fb_base_addr = NULL;static void show_rgb565_img(void *scr, __u16 *data_buf){ __u16 x, y;__u16 *fb_buf = (__u16 *)scr;fb_buf += (320);for (y = 0; y < ROWS; y++) {for (x = 0; x < COLS; x++) { fb_buf[x] = *data_buf++ ;}fb_buf += 320;}}int main(void){int v4l2_fd = -1;int fb_fd = -1;int n=0;__u8 *fb_buf;__u8 *buf;__u32 screensize;//unsigned int width = 0;//unsigned int height = 0;//unsigned int bpp = 0;V_FORMAT fmt;enum v4l2_buf_type type;type = V4L2_BUF_TYPE_VIDEO_CAPTURE;printf("Start Main n");printf("Before openning video n");v4l2_fd = open(V4L2_DEV_NODE, O_RDWR | O_NONBLOCK, 0);if (v4l2_fd < 0) {printf(" open video ERRn");return 0;}printf("Before openning FB n");fb_fd = open(FB_DEV_NODE, O_RDWR);if (fb_fd < 0) {printf("error open fb_fdn");exit(1);}/* Get fixed screen information */if (ioctl(fb_fd, FBIOGET_FSCREENINFO, &fb_fix)) {printf("Error reading fb fixed information.n");exit(1);}/* Get variable screen information 	*/if (ioctl(fb_fd, FBIOGET_VSCREENINFO, &fb_var)) {printf("Error reading fb variable information.n");exit(1);}screensize = fb_var.xres * fb_var.yres * fb_var.bits_per_pixel / 8;//screensize = 480 * 272 * 16 / 8;fb_buf = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0);if ((int)fb_buf == -1) {printf("Error: failed to map framebuffer device to memory.n");close(fb_fd);return -1;}CLEAR (fmt);fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;fmt.fmt.pix.width = 320;fmt.fmt.pix.height = 240;//fmt.fmt.pix.depth = 16;fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB565;//printf("VIDIOC_S_FMT is %xn",VIDIOC_S_FMT);if ((ioctl(v4l2_fd, VIDIOC_S_FMT, &fmt)) < 0) {printf("Error: failed to set video format.n");return 0;}buf = malloc(320 * 240 * 3); //printf("VIDIOC_STREAMON is %xn",VIDIOC_STREAMON);if ((ioctl(v4l2_fd, VIDIOC_STREAMON, &type)) < 0) {printf("error ioctl streamonn");return 0;}printf("start to get pic %dn",(int)fmt.fmt.pix.sizeimage);while(1) {n=read(v4l2_fd, buf, 320*240*2);printf("display %dn",n);show_rgb565_img(fb_buf,buf);}}


            關(guān)鍵詞: S3C2440v4l2采集lc

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉