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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? camserv.c

?? 一個(gè)很棒的視頻服務(wù)器
?? C
字號(hào):
/*  camserv - An internet streaming picture application * *  Copyright (C) 1999-2002  Jon Travis (jtravis@p00p.org) * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#include "camserv_config.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>#include <signal.h>#include <sys/param.h>#include "camconfig.h"#include "camshm.h"#include "video.h"#include "sockset.h"#include "socket.h"#include "mainloop.h"#include "picloop.h"#include "filter.h"#include "modinfo.h"#include "log.h"#include "camserv_hack.h"static int Shmid;static int CPid = 0;#define PICTURE_MALLOC (1024 * 768 * 3)static ModInfo *query_main_modinfo(){  ModInfo *res;  char varname[ 1024 ];  if( (res = modinfo_create( 2 )) == NULL )    return NULL;  sprintf( varname, "[%s]:%s", SEC_MAIN, "output_snapfile" );  modinfo_varname_set( res, 0, varname );  modinfo_desc_set( res, 0, "Location to place output snapshot" );  res->vars[ 0 ].type = MODINFO_TYPE_STR;    sprintf( varname, "[%s]:%s", SEC_MAIN, "output_presnaps" );  modinfo_varname_set( res, 1, varname );  modinfo_desc_set( res, 1, "# of pictures to take prior to writing output "		    "(0 disables)" );  res->vars[ 1 ].type = MODINFO_TYPE_INT;  return res;}staticvoid dump_cfg_options( CamConfig *ccfg ){  char vid_section[ 1024 ], key[ 1024 ];  const char *path, *val;  ModInfo *minfo;  int i, nfilters;  if( video_query_active_section( ccfg, vid_section, sizeof( vid_section ))){    path = camconfig_query_str( ccfg, vid_section, "path" );    fprintf( stderr, "*** Module: \"%s\"\n", path );    if( (minfo = modinfo_query_so( path )) != NULL ){      modinfo_dump( minfo );      modinfo_destroy( minfo );      printf("\n");    } else      fprintf( stderr, "Failed to dump video device; \"%s\"\n", path );  }    nfilters = camconfig_query_def_int( ccfg, SEC_FILTERS, "num_filters", 0 );  for( i=0; i< nfilters; i++ ){    sprintf( key, "filter%d_section", i );    if( (val = camconfig_query_str( ccfg, SEC_FILTERS, key )) == NULL ){      fprintf( stderr, "KEY/VALUE \"%s\" not found!\n", key );      continue;    }    strncpy( key, val, sizeof( key ) - 1 );    key[ sizeof( key ) - 1 ] = '\0';    if( (path = camconfig_query_str( ccfg, key, "path" )) != NULL ){      if( (minfo = modinfo_query_so( path )) != NULL ){	fprintf( stderr, "*** Filter: \"%s\"\n", path );	modinfo_dump( minfo );	modinfo_destroy( minfo );	printf("\n");      } else	fprintf( stderr, "Failed to dump filter: \"%s\"\n", path );    }  }}staticCamConfig *read_ccfg( const char *path ){  FILE *fp;  CamConfig *res;  if( (fp = fopen( path, "r" )) == NULL )    return NULL;  if( (res = camconfig_read( fp )) == NULL ){    fclose( fp );    return NULL;  }  fclose( fp );  return res;}/* * snap_single:  Take a single snapshot on the camera.  This routine only *               verifies if this is the correct course of action for a single *               invocation of the camserv binary.   * * Arguments:    ccfg = Camera configuration  * * Return values:  Returns 1 if a single snapshot was to occur, else 0 */constint snap_single(CamConfig *ccfg ){  const char *snapfname;  int presnaps;  if( !(snapfname = camconfig_query_str( ccfg, SEC_MAIN, "output_snapfile")))    return 0;  presnaps = camconfig_query_def_int( ccfg, SEC_MAIN, "output_presnaps", 0 );  if( picture_single( ccfg, snapfname, presnaps ) == -1 ){    camserv_log( "snap_single", "Failed to snap picture!" );  }  return 1;}    int main( int argc, char *argv[] ){  Socket **localsocks;  CamConfig *camcfg;  char *shm_segment, tmpbuf[ 1024 ], cfg_path[ MAXPATHLEN ];  int fd, shm_alloc, donecfg;  extern int errno;  donecfg = 0;  if (argc >= 2) {    strncpy( cfg_path, argv[ 1 ], sizeof( cfg_path ) );    cfg_path[ sizeof( cfg_path ) - 1 ] = '\0';    camserv_log( "main", "Trying to read config file \"%s\": ", cfg_path);    if( (camcfg = read_ccfg( cfg_path )) == NULL ){      camserv_log( "main", "Error reading config \"%s\": %s", cfg_path,		   strerror( errno ));    } else {      camserv_log( "main", "Success reading config \"%s\"", cfg_path);      donecfg=1;    }  } else {    fprintf( stderr, "camserv v%s - by Jon Travis (jtravis@p00p.org)\n", 	     VERSION );    fprintf( stderr, "Syntax: %s <cfg file>\n", argv[0] );    fprintf( stderr, "Will try %s/.camserv and %s/camserv.cfg\n", 	     getenv("HOME"), DATDIR);       if (!donecfg) {      snprintf( cfg_path, sizeof( cfg_path ), "%s/.camserv", getenv("HOME") );      cfg_path[ sizeof( cfg_path ) - 1 ] = '\0';      camserv_log( "main", "Trying to read config file \"%s\": ", cfg_path);      if( (camcfg = read_ccfg( cfg_path )) == NULL ){	camserv_log( "main", "Error reading config \"%s\": %s", cfg_path,		     strerror( errno ));      } else {	camserv_log( "main", "Success reading config \"%s\"", cfg_path);	donecfg=1;      }    }    if (!donecfg) {      snprintf( cfg_path, sizeof( cfg_path ), "%s/camserv.cfg", DATDIR );      cfg_path[ sizeof( cfg_path ) - 1 ] = '\0';      camserv_log( "main", "Trying to read config file \"%s\": ", cfg_path);      if( (camcfg = read_ccfg( cfg_path )) == NULL ){	camserv_log( "main", "Error reading config \"%s\": %s", cfg_path,		     strerror( errno ));      } else {	camserv_log( "main", "Success reading config \"%s\"", cfg_path);	donecfg=1;      }    }  }  if (!donecfg) {    camserv_log( "main", "Error finding config file, exit!");    return(-1);  }  /* If we took a single snapshot, we are all done */  if( snap_single( camcfg ))     return 0;  if( (localsocks = socket_unix_pair( SOCK_DGRAM )) == NULL ){    camserv_log( "main", "Error creating communication sockets between procs");    return -1;  }    /* Setup a temp file for making our shm */  strcpy( tmpbuf, "/tmp/CAMSERV_XXXXXX" );  if( (fd = mkstemp( tmpbuf )) == -1 ){    camserv_log( "main", "Couldn't create temporary file: %s", tmpbuf );    strcpy( tmpbuf, argv[ 0 ] ); /* Last resort */  } else {    close( fd );  }  shm_alloc = camconfig_query_def_int( camcfg, SEC_MAIN, "shm_alloc", 				       PICTURE_MALLOC );  if( shm_alloc < PICTURE_MALLOC )    camserv_log( "main", "Allocated %d bytes for SHM [RISKY RISKY!]",		 shm_alloc);  if( (Shmid = shm_setup( tmpbuf,			  /* Allocate generous ammount */			  shm_alloc,			  &shm_segment) ) == -1 ){    socket_unix_pair_dest( localsocks );    return -1;  }  unlink( tmpbuf );/* Start the picture taker thread */  CPid = picture_taker( shm_segment, PICTURE_MALLOC, camcfg, localsocks[ 0 ]);   if( CPid == -1 ){    /* Failure setting up camerastuffs */    camserv_log( "main",  "Picture taker could not be created!");    socket_unix_pair_dest( localsocks );    return -1;  }      if( main_loop( camcfg, localsocks[ 1 ], shm_segment ) == -1 ){    camserv_log( "main", "Main loop exited abnormally");    socket_unix_pair_dest( localsocks );    if( CPid != -1 ) kill( CPid, SIGINT );    return -1;  }  socket_unix_pair_dest( localsocks );  return 0;}  

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品天堂| 欧美高清视频一二三区| 国产精品一品二品| 国产一区二区三区视频在线播放| 久久国产剧场电影| 精品一区二区三区在线观看国产 | 亚洲图片自拍偷拍| 亚洲综合色噜噜狠狠| 亚洲精品视频免费观看| 亚洲一区在线播放| 日本视频在线一区| 麻豆精品一区二区综合av| 久久99国产精品免费网站| 韩国女主播一区二区三区| 国产成人综合亚洲网站| 99re在线精品| 欧美性高清videossexo| 欧美电影影音先锋| 欧美r级电影在线观看| 国产欧美精品区一区二区三区| 日本一区二区三区国色天香 | 综合欧美一区二区三区| 一个色在线综合| 日本一区中文字幕| 国产一区欧美一区| 北岛玲一区二区三区四区| 日本高清免费不卡视频| 欧美老年两性高潮| 久久蜜桃av一区二区天堂| 国产精品传媒视频| 婷婷久久综合九色综合伊人色| 麻豆91在线看| 豆国产96在线|亚洲| 色婷婷国产精品综合在线观看| 555夜色666亚洲国产免| 久久久综合激的五月天| 亚洲欧美一区二区三区极速播放| 五月天丁香久久| 国产激情一区二区三区| 欧美性猛片aaaaaaa做受| 欧美一级电影网站| 亚洲欧洲日产国产综合网| 五月天丁香久久| 成人性色生活片免费看爆迷你毛片| 91麻豆国产香蕉久久精品| 91.xcao| 欧美激情一区在线观看| 五月综合激情日本mⅴ| 国产91色综合久久免费分享| 91久久香蕉国产日韩欧美9色| 日韩一区二区免费视频| 成人免费一区二区三区视频| 日本不卡视频在线观看| 成人av免费在线观看| 5566中文字幕一区二区电影| 国产精品国产三级国产三级人妇 | 一区二区三区国产| 激情综合网天天干| 在线观看av一区| 国产日韩高清在线| 青青草伊人久久| 91色九色蝌蚪| 久久久噜噜噜久噜久久综合| 性欧美疯狂xxxxbbbb| 99久久亚洲一区二区三区青草| 日韩亚洲欧美成人一区| 亚洲欧洲成人av每日更新| 麻豆精品国产91久久久久久| 欧美中文字幕一区二区三区亚洲 | 日韩—二三区免费观看av| jvid福利写真一区二区三区| 精品少妇一区二区三区日产乱码| 亚洲影院理伦片| www.欧美日韩国产在线| 久久久99精品久久| 免费高清视频精品| 欧美挠脚心视频网站| 亚洲黄色尤物视频| av资源网一区| 日本一区二区成人在线| 精品在线免费观看| 777a∨成人精品桃花网| 亚洲国产精品一区二区久久 | 精品av久久707| 天堂午夜影视日韩欧美一区二区| 91丨porny丨在线| 国产精品天干天干在观线| 极品少妇xxxx偷拍精品少妇| 欧美男生操女生| 香蕉乱码成人久久天堂爱免费| 91视频国产资源| 国产精品久久久久一区二区三区| 国产精品亚洲午夜一区二区三区| 欧美精品一区二区三区在线| 美女视频一区二区三区| 91精品在线麻豆| 日本美女一区二区| 欧美精品一卡两卡| 三级不卡在线观看| 欧美精品一级二级| 男人的天堂亚洲一区| 日韩一区二区三区四区五区六区| 日韩高清一级片| 欧美一级片在线观看| 青青青爽久久午夜综合久久午夜| 欧美久久久一区| 日韩av中文字幕一区二区三区| 欧美三电影在线| 亚洲不卡在线观看| 91精品国产一区二区三区香蕉 | 91视频免费观看| 亚洲精品国产一区二区精华液 | 亚洲综合av网| 欧美日韩激情在线| 美美哒免费高清在线观看视频一区二区 | 日韩高清不卡一区二区三区| 欧美高清一级片在线| 无码av免费一区二区三区试看 | 久久久久久久久久久黄色| 国产成人午夜电影网| 国产精品欧美极品| 日本乱人伦一区| 丝袜诱惑制服诱惑色一区在线观看| 欧美高清www午色夜在线视频| 麻豆国产一区二区| 中文字幕免费在线观看视频一区| av综合在线播放| 亚洲妇女屁股眼交7| 在线播放/欧美激情| 精品午夜久久福利影院| 中文字幕av资源一区| 91免费小视频| 日韩精品一二区| 国产女人水真多18毛片18精品视频| 99久久精品99国产精品| 天堂一区二区在线免费观看| 久久综合狠狠综合| 色8久久人人97超碰香蕉987| 奇米影视7777精品一区二区| 国产亚洲婷婷免费| 欧美日韩综合一区| 九九热在线视频观看这里只有精品| 中文字幕国产一区二区| 欧美午夜不卡视频| 国产精品一级片| 夜夜精品浪潮av一区二区三区| 日韩欧美一级二级三级久久久| 成人av高清在线| 奇米精品一区二区三区在线观看一| 国产精品水嫩水嫩| 91精品欧美福利在线观看| 白白色 亚洲乱淫| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产美女久久久久| 亚洲一级片在线观看| 久久久亚洲综合| 欧美日韩国产综合草草| 成人在线一区二区三区| 天天av天天翘天天综合网色鬼国产| 久久免费电影网| 欧美区在线观看| 91麻豆6部合集magnet| 久久se这里有精品| 亚洲五码中文字幕| 国产精品久久久久久久蜜臀| 日韩欧美国产wwwww| 色哟哟欧美精品| 国产成人精品一区二区三区四区| 亚洲一级二级在线| 国产精品另类一区| 欧美videos大乳护士334| 欧美吻胸吃奶大尺度电影| 成人性生交大合| 国内精品第一页| 蜜臀va亚洲va欧美va天堂 | 成人免费看视频| 免费一级欧美片在线观看| 亚洲免费毛片网站| 国产精品视频第一区| 精品剧情v国产在线观看在线| 在线免费观看一区| 91在线看国产| 高清不卡一区二区在线| 久草精品在线观看| 日本欧美加勒比视频| 亚洲成a人片在线不卡一二三区| 中文字幕中文字幕中文字幕亚洲无线| 亚洲精品一区二区三区精华液| 欧美日韩夫妻久久| 欧美日韩在线播放一区| 色综合久久久网| 91网上在线视频| 91精品国产91综合久久蜜臀| 一本色道久久综合狠狠躁的推荐| 成人免费看黄yyy456| 国产ts人妖一区二区| 国产成人午夜99999| 国产精品123| 国产美女娇喘av呻吟久久| 国内欧美视频一区二区|