亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? v4lctoh.h

?? 對usb攝像頭進行v4l開發 捕捉ppm圖像 并通過udp發送 ./capser拍照并發送 ./cli ip地址 接收
?? H
字號:
/* * http://www.jollen.org * * v4l.c - the video4linux user space library * by 2001 Jollen <jollen@o3.net> */#include <stdio.h>#include <unistd.h>#include <error.h>#include <assert.h>#include <fcntl.h>#include <sys/ioctl.h>#include <sys/types.h>#include <sys/mman.h>#include <linux/videodev.h>#include "v4l.h"#define DEFAULT_DEVICE "/dev/video0"int v4l_open(char *dev, v4l_device *vd){   if (!dev)      dev = DEFAULT_DEVICE;   if ((vd->fd = open(dev, O_RDWR)) < 0) {      perror("v4l_open:");      return -1;   }   if (v4l_get_capability(vd))      return -1;   if (v4l_get_picture(vd))      return -1;   return 0;}int v4l_grab_picture(v4l_device *vd, unsigned int size){   if (read(vd->fd, &(vd->map), size) == 0) return -1;   return 0;}int v4l_get_capability(v4l_device *vd){   if (ioctl(vd->fd, VIDIOCGCAP, &(vd->capability)) < 0) {      perror("v4l_get_capability:");      return -1;   }   return 0;}/*   norm: VIDEO_MODE_PAL | VIDEO_MODE_NTSC | VIDEO_MODE_SECAM | VIDEO_MODE_AUTO   (see videodev.h)*/int v4l_set_norm(v4l_device *vd, int norm) {   int i;   for (i = 0; i < vd->capability.channels; i++) {      vd->channel[i].norm = norm;      //vd->channel[i].type = VIDEO_TYPE_TV;	//default (VIDEO_TYPE_TV | VIDEO_TYPE_CAMERA)   }   if (v4l_get_capability(vd)) {      perror("v4l_set_norm");      return -1;   }   if (v4l_get_picture(vd)) {      perror("v4l_set_norm");   }   return 0;}int v4l_get_channels(v4l_device *vd){   int i;   for (i = 0; i < vd->capability.channels; i++) {      vd->channel[i].channel = i;         if (ioctl(vd->fd, VIDIOCGCHAN, &(vd->channel[i])) < 0) {         perror("v4l_get_channel:");         return -1;      }   }   return 0;}/* * v4l_switch_channel - select (switch) the video source * * c: the channel number */int v4l_switch_channel(v4l_device *vd, int c){   if (ioctl(vd->fd, VIDIOCSCHAN, &(vd->channel[c])) < 0) {      perror("v4l_switch_channel:");      return -1;   }   return 0;}int v4l_get_audios(v4l_device *vd){   int i;   for (i = 0; i < vd->capability.audios; i++) {      vd->audio[i].audio = i;         if (ioctl(vd->fd, VIDIOCGAUDIO, &(vd->audio[i])) < 0) {         perror("v4l_get_audio:");         return -1;      }   }   return 0;}int v4l_get_picture(v4l_device *vd){   if (ioctl(vd->fd, VIDIOCGPICT, &(vd->picture)) < 0) {      perror("v4l_get_picture");      return -1;   }   return 0;}/* ...may be not necessarily... */int v4l_set_picture(v4l_device *vd, int br, int hue, int col, int cont,                     int white){   if (br) vd->picture.brightness = br;   if (hue) vd->picture.hue = hue;   if (col) vd->picture.colour = col;   if (cont) vd->picture.contrast = cont;   if (white) vd->picture.whiteness = white;   if(ioctl(vd->fd, VIDIOCSPICT, &(vd->picture)) < 0) {      perror("v4l_set_picture");      return -1;   }   return 0;}int v4l_close(v4l_device *vd){   close(vd->fd);   return 0;}int v4l_get_mbuf(v4l_device *vd){   if (ioctl(vd->fd, VIDIOCGMBUF, &(vd->mbuf)) < 0) {      perror("v4l_get_mbuf");      return -1;   }   return 0;}int v4l_mmap_init(v4l_device *vd){   //vd->mbuf.size = 0x151000;   //vd->mbuf.offsets[0] = 0;   if (v4l_get_mbuf(vd) < 0)      return -1;  if ((vd->map = mmap(0, vd->mbuf.size, PROT_READ|PROT_WRITE, MAP_SHARED, vd->fd, 0)) < 0) {      perror("v4l_mmap_init:mmap");      return -1; /*yangdaqian add * before vd->map in this statement */   }   return 0;}/* * v4l_grab_init - initalizate mmap buffer * * width: width of mmap's buffer * height: width of mmap's buffer */int v4l_grab_init(v4l_device *vd, int width, int height){   vd->mmap.width = width; //width;   vd->mmap.height = height; //height;   vd->mmap.format = vd->picture.palette;    vd->frame_current = 0;   vd->frame_using[0] = FALSE;   vd->frame_using[1] = FALSE;      return v4l_grab_frame(vd, 0);}/* * v4l_grab_frame - activate capturing * * frame: frame number to store image data */int v4l_grab_frame(v4l_device *vd, int frame){   if (vd->frame_using[frame]) {      fprintf(stderr, "v4l_grab_frame: frame %d is already used.\n", frame);      return -1;   }   vd->mmap.frame = frame;   if (ioctl(vd->fd, VIDIOCMCAPTURE, &(vd->mmap)) < 0) {      perror("v4l_grab_frame");      return -1;   }   vd->frame_using[frame] = TRUE;   vd->frame_current = frame;   return 0;}int v4l_grab_sync(v4l_device *vd) {   if (ioctl(vd->fd, VIDIOCSYNC, &(vd->frame_current)) < 0) {      perror("v4l_grab_sync");   }   vd->frame_using[vd->frame_current] = FALSE;   return 0;}int v4l_get_buffer(v4l_device *vd){   if (ioctl(vd->fd, VIDIOCGFBUF, &(vd->buffer)) < 0) {      perror("v4l_get_buffer");   }   return 0;}int v4l_set_buffer(v4l_device *vd){   if (ioctl(vd->fd, VIDIOCSFBUF, &(vd->buffer)) < 0) {      perror("v4l_set_buffer");      return -1;   }   return 0;}int v4l_set_palette(v4l_device *vd, int pal, int dep){   vd->picture.palette = pal;   vd->picture.depth = dep;   vd->mmap.format =pal;   if (ioctl(vd->fd, VIDIOCSPICT, &(vd->picture)) < 0) {      perror("v4l_set_palette");      return -1;   }   return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文欧美字幕免费| 精品久久久影院| 中文字幕日本不卡| 一本高清dvd不卡在线观看| 国产女同性恋一区二区| 国产成人一区在线| 亚洲天堂福利av| 91在线国内视频| 日日夜夜精品视频免费| 久久一区二区视频| 99精品视频一区二区三区| 亚洲6080在线| 国产欧美中文在线| 欧美午夜视频网站| 狠狠狠色丁香婷婷综合激情| 亚洲欧美综合另类在线卡通| 欧美揉bbbbb揉bbbbb| 国产成人精品亚洲777人妖| 一区二区三区欧美| 国产欧美va欧美不卡在线| 欧美日韩视频一区二区| 不卡电影免费在线播放一区| 婷婷综合在线观看| 91麻豆精品国产无毒不卡在线观看 | 国产iv一区二区三区| 亚洲一卡二卡三卡四卡五卡| 久久麻豆一区二区| 日韩欧美中文字幕一区| 欧美人妖巨大在线| 一本色道久久综合亚洲91| 久久成人久久鬼色| 亚洲一区二区在线免费看| 亚洲精品欧美专区| 国产精品国产三级国产三级人妇| 欧美va日韩va| 精品美女一区二区| 久久九九久久九九| 国产精品区一区二区三| 亚洲视频免费观看| 亚洲精品免费在线| 韩国av一区二区| 一区二区三区91| 亚洲第一综合色| 久久国产精品一区二区| 黄色日韩三级电影| 色哟哟国产精品免费观看| 欧美亚洲丝袜传媒另类| 欧美肥妇bbw| 精品国产123| 国产精品黄色在线观看| 亚洲一区二区欧美激情| 日本视频免费一区| 色综合久久久网| 国产精品一区免费视频| 蜜桃视频一区二区三区| 国产在线精品一区在线观看麻豆| 国产一区二区三区久久久| 99久久久久久| 国产日韩成人精品| 日韩专区欧美专区| 91久久精品国产91性色tv| 日韩精品中文字幕一区二区三区| 亚洲欧美影音先锋| 国产精品正在播放| 日韩午夜av电影| 一区二区三区免费看视频| 成人国产精品免费观看动漫 | 夜夜操天天操亚洲| 豆国产96在线|亚洲| 精品国产乱码久久久久久蜜臀| 一区二区三区在线观看视频| kk眼镜猥琐国模调教系列一区二区| 正在播放亚洲一区| 捆绑变态av一区二区三区| 在线免费不卡电影| 午夜精品久久久久影视| 欧美影片第一页| 亚洲午夜三级在线| 欧美高清你懂得| 青青草国产成人av片免费| 制服丝袜在线91| 久草这里只有精品视频| 欧美电影免费提供在线观看| 美腿丝袜亚洲三区| 欧美韩国一区二区| 欧美怡红院视频| 精品在线免费视频| 国产亚洲综合性久久久影院| 亚洲免费观看高清完整版在线观看熊 | 成人av资源在线| 亚洲欧美日韩国产手机在线| 91久久精品一区二区三区| 亚洲综合色丁香婷婷六月图片| 欧美日韩亚洲综合在线| 亚洲国产wwwccc36天堂| 91亚洲大成网污www| 乱中年女人伦av一区二区| 国产精品三级在线观看| 欧美日韩一级黄| 欧美日韩另类一区| 国产传媒一区在线| 美女尤物国产一区| 亚洲色图欧洲色图婷婷| 精品国产91九色蝌蚪| 99久久夜色精品国产网站| 麻豆91免费看| 亚洲二区在线视频| 亚洲丝袜另类动漫二区| 久久这里只精品最新地址| 欧美绝品在线观看成人午夜影视 | 久久成人免费电影| 亚洲综合丁香婷婷六月香| 亚洲国产精品二十页| 久久久久久9999| 日韩欧美国产三级| 91麻豆精品国产91久久久使用方法 | 欧美日韩小视频| 欧美嫩在线观看| 欧美日韩国产色站一区二区三区| 91在线一区二区| 欧美人伦禁忌dvd放荡欲情| 午夜精品福利在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 成人精品高清在线| 色综合色综合色综合色综合色综合| 中文欧美字幕免费| 亚洲猫色日本管| 国产精品人妖ts系列视频| 欧美国产精品v| 一区二区三区四区在线| 亚洲图片欧美一区| 国内精品国产三级国产a久久| 精品写真视频在线观看| av一区二区三区四区| 在线成人免费观看| 欧美高清在线视频| 亚洲最大色网站| 国产精品亚洲第一区在线暖暖韩国 | 国产精品国产自产拍高清av| 亚洲精选一二三| 国产在线日韩欧美| 色悠悠久久综合| 久久久久久久久久久久电影| 亚洲黄色尤物视频| 一区二区三区在线播放| 亚洲视频狠狠干| 成人精品视频.| 日韩午夜中文字幕| 亚洲福利一二三区| 91在线小视频| 国产欧美精品一区| 国产一区不卡视频| 日韩欧美一区在线观看| 亚洲成人免费视| 色综合天天视频在线观看 | 97se狠狠狠综合亚洲狠狠| 精品国产三级a在线观看| 日韩精品亚洲一区二区三区免费| 一本久久a久久精品亚洲| 成人欧美一区二区三区在线播放| 狠狠色综合色综合网络| 欧美午夜精品一区| 亚洲欧洲三级电影| 91官网在线免费观看| 一区二区国产视频| 欧美区视频在线观看| 奇米色一区二区| 欧美精品一区二区久久婷婷 | 国产精品高清亚洲| 色综合久久久久久久久久久| 亚洲国产一区视频| 日韩欧美中文字幕制服| www.色精品| 三级亚洲高清视频| 精品国产一二三| 成人深夜视频在线观看| 亚洲一二三四在线| 26uuu亚洲综合色| 在线观看91视频| 国产精品一区免费在线观看| 亚洲精品日产精品乱码不卡| 日韩欧美成人激情| 欧美在线你懂得| 国产精品18久久久久久vr| 亚洲男同性恋视频| 久久精品男人的天堂| 欧美片网站yy| 在线观看亚洲专区| 国产成人午夜精品5599| 免费人成精品欧美精品| 色激情天天射综合网| 免费精品99久久国产综合精品| 国产精品污www在线观看| 欧美大度的电影原声| 欧美日韩精品一区二区| 色天天综合色天天久久| 岛国av在线一区| av亚洲精华国产精华精| 国产91精品免费| 国产精选一区二区三区 |