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

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

?? audioin_devdsp.c

?? 一個可以實現嵌入式視頻監控系統的最新版客戶端軟件。
?? C
字號:
/*************************************************************************** *   Copyright (C) 2004 by Tyler Montbriand                                * *   tsm@accesscomm.ca                                                     * *   Released under the GNU LGPL                                           * ***************************************************************************/#include "audio_detect.h"#ifdef AUDIOIN_DEVDSP#include <sys/soundcard.h>#include <sys/ioctl.h>#include <fcntl.h>#include <errno.h>#include <SDL/SDL.h>#include <SDL/SDL_thread.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include "SDL_audioin.h"#include "SDL_audioin_internal.h"#define DEFAULT_DEV "/dev/dsp"#define MAX_RETRY   3static volatile int fd=-1;// Converts SDL audio types to UNIX onesextern int mask_in[],mask_out[],samplesize[];static SDL_AudioSpec localspec;static SDL_Thread *ainthread=NULL;int ainthread_func(void *);static int          DSP_GetFrameSize(int fd);static int          DSP_SetFrameSize(int fd, int framesize);static int          DSP_SetChannels(int fd, int channels);static int          DSP_SetRate(int fd, int rate);static unsigned int DSP_GetMask(int fd);static int          DSP_SetFormat(int fd, unsigned int format);static void DEVDSP_CloseAudioIn();static int DEVDSP_PauseAudioIn(int pause_on);static int DEVDSP_OpenAudioIn(SDL_AudioSpec *requested, SDL_AudioSpec *restult);Sound_InputFunctions driver_DEVDSP={  "DSP",  "Input driver using raw /dev/dsp and ioctls",  "tsm@accesscomm.ca",  null_init,  null_quit,  DEVDSP_OpenAudioIn,  DEVDSP_CloseAudioIn,  DEVDSP_PauseAudioIn};int DEVDSP_OpenAudioIn(SDL_AudioSpec *requested, SDL_AudioSpec *result){  const char *dev=DEFAULT_DEV;  int mask=0,n,tries=0;  if(requested==NULL)  {    SDL_SetError("Requested format unspecified");    return(-1);  }  if(getenv("SDL_DSP_DEV")!=NULL)    dev=getenv("SDL_DSP_DEV");  localspec=(*requested);  requested=&localspec;  fd=open(dev,O_RDONLY|O_NONBLOCK);  while((fd<0)&&((tries++)<3))  {    SDL_Delay(500);//    fprintf(stderr,"Failed to open device, retry %d\n",tries);    /**     * Open in nonblocking mode so if the device is busy, it will     * fail instead of hanging     */    fd=open(dev,O_RDONLY|O_NONBLOCK);  }  if(fd<0)  {    SDL_SetError("Couldn't open audio device %s : %s",dev,strerror(errno));    fprintf(stderr,      "Could not open audio device for reading.  It may be already in use.\n\n"      "Note that anything using full-duplex mode can block all other\n"      "programs from using the device even when nothing else has opened it\n"      "for write.\n");    return(-1);  }  /* Re-enable blocking, we need it */  if(fcntl(fd,F_SETFL,O_RDONLY)<0)  {    SDL_SetError("Could not enable blocking: %s",strerror(errno));   // fclose(fd);   close(fd);    fd=-1;    return(-1);  }  mask=DSP_GetMask(fd);  if(mask==0)  {    SDL_SetError("No formats supported?  Not good.");    close(fd);    fd=-1;    return(-1);  }  for(n=0; mask_in[n]>=0; n++)    if((mask_in[n]==requested->format)&&(mask&mask_out[n]))    {      requested->size=requested->samples*requested->channels*samplesize[n];      if((DSP_SetFormat(fd,mask_out[n])<0)||         (DSP_SetChannels(fd,requested->channels)<0)||         (DSP_SetFrameSize(fd,requested->size)<0)||         (DSP_SetRate(fd,requested->freq)<0))      {        SDL_SetError("Couldn't initialize device");        close(fd);        fd=-1;        return(-1);      }      audioin_status=SDL_AUDIO_PAUSED;      ainthread=SDL_CreateThread(ainthread_func,NULL);      return(0);    }  SDL_SetError("Format not supported");  close(fd);  fd=-1;  return(-1);}int DEVDSP_PauseAudioIn(int pause_on){  if(audioin_status!=SDL_AUDIO_STOPPED)  {    if(pause_on)      audioin_status=SDL_AUDIO_PAUSED;    else      audioin_status=SDL_AUDIO_PLAYING;    return(0);  }  SDL_SetError("Cannot pause, audio not open");  return(-1);}void DEVDSP_CloseAudioIn(){  int status;  if(audioin_status!=SDL_AUDIO_STOPPED)  {    audioin_status=SDL_AUDIO_STOPPED;    SDL_WaitThread(ainthread,&status);    if(status!=0)      fprintf(stderr,"Thread exited with status %d\n",status);    ainthread=NULL;  }}int ainthread_func(void *dat){  Uint8 *buf=NULL;  if(audioin_status==SDL_AUDIO_STOPPED)    return(-1);  buf=(Uint8 *)malloc(localspec.size);  while(audioin_status!=SDL_AUDIO_STOPPED)  {    ssize_t bytes=0;    bytes=read(fd,buf,localspec.size);    if(bytes<0)    {      audioin_status=SDL_AUDIO_STOPPED;      free(buf);      fprintf(stderr,"audio input thread cannot read from audio device\n");      SDL_SetError("Could not read from audio device");      return(-1);    }    if(audioin_status==SDL_AUDIO_PLAYING)    {      if(localspec.callback!=NULL)        localspec.callback(localspec.userdata,buf,localspec.size);    }  }  free(buf);  return(0);}unsigned int DSP_GetMask(int fd){  unsigned int mask=0;  ioctl(fd,SNDCTL_DSP_GETFMTS,&mask);  return(mask);}int DSP_SetChannels(int fd, int channels){  return(ioctl(fd,SNDCTL_DSP_CHANNELS,&channels));}int DSP_SetRate(int fd, int rate){  return(ioctl(fd,SNDCTL_DSP_SPEED,&rate));}int DSP_GetFrameSize(int fd){  int framesize=0;  ioctl(fd,SNDCTL_DSP_GETBLKSIZE,&framesize);  return(framesize);}int DSP_SetFrameSize(int fd, int framesize){  return(ioctl(fd,SNDCTL_DSP_SETFRAGMENT,&framesize));}int DSP_SetFormat(int fd, unsigned int format){  return(ioctl(fd,SNDCTL_DSP_SETFMT,&format));}int mask_in[]={  AUDIO_U8, AUDIO_S8, AUDIO_U16LSB, AUDIO_S16LSB, AUDIO_U16MSB, AUDIO_S16MSB, -1};int mask_out[]={   AFMT_U8,  AFMT_S8,  AFMT_U16_LE,  AFMT_S16_LE,  AFMT_U16_BE,  AFMT_S16_BE, -1};int samplesize[]={ 1,1,2,2,2,2,-1 };#endif/*AUDIOIN_DEVDSP*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久久久久 | 91在线视频观看| 91精品麻豆日日躁夜夜躁| 伊人开心综合网| 99精品黄色片免费大全| 国产精品伦理在线| 成人美女在线观看| 日韩限制级电影在线观看| 日韩精品欧美精品| 日韩亚洲欧美中文三级| 理论电影国产精品| 久久久久免费观看| 国产综合色产在线精品| 精品国产一区二区在线观看| 免费成人av在线播放| 欧美大尺度电影在线| 国产自产视频一区二区三区| 精品国偷自产国产一区| 美女一区二区三区在线观看| 欧美成人三级在线| 韩国女主播一区| 欧美极品xxx| 色香蕉成人二区免费| 亚洲在线一区二区三区| 日韩亚洲欧美成人一区| 狠狠网亚洲精品| 国产精品久久久一区麻豆最新章节| 日本成人在线网站| 久久久久国产精品人| 91麻豆自制传媒国产之光| 日韩一区在线免费观看| 欧美午夜精品理论片a级按摩| 五月天中文字幕一区二区| 日韩三级在线免费观看| 国产成人日日夜夜| 亚洲国产美国国产综合一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 蜜桃一区二区三区在线观看| 精品国产伦理网| 成人av先锋影音| 中文字幕一区二区视频| 精品视频全国免费看| 久久精品欧美一区二区三区麻豆| 成人免费av资源| 久久亚洲影视婷婷| 26uuu成人网一区二区三区| 成人免费视频视频在线观看免费 | 久久99国产精品成人| 亚洲视频在线一区观看| 久久综合色播五月| 欧美日韩国产在线观看| 波多野结衣91| 经典三级在线一区| 亚洲成av人**亚洲成av**| 国产精品国产自产拍高清av| 久久久久亚洲综合| 欧美本精品男人aⅴ天堂| 欧洲国内综合视频| www.欧美精品一二区| 国产一区二区精品久久| 另类中文字幕网| 日韩电影一区二区三区| 亚洲国产精品久久艾草纯爱 | 在线欧美一区二区| aaa国产一区| 久久久综合九色合综国产精品| 91成人在线精品| 成人黄色在线视频| 高清国产午夜精品久久久久久| 激情综合色丁香一区二区| 欧美bbbbb| 日本三级亚洲精品| 视频在线在亚洲| 日日夜夜免费精品| 五月激情综合网| 丝袜美腿亚洲色图| 午夜电影网亚洲视频| 亚洲午夜电影在线观看| 亚洲成人综合网站| 丝袜脚交一区二区| 免费xxxx性欧美18vr| 免费成人在线网站| 久久99精品久久只有精品| 狠狠色狠狠色综合系列| 国产一区在线精品| 国产99久久精品| 成人h动漫精品一区二区| aaa欧美大片| 欧美系列亚洲系列| 日韩亚洲欧美在线观看| xnxx国产精品| 国产精品免费丝袜| 一区二区三区免费在线观看| 夜夜精品浪潮av一区二区三区| 一区二区在线观看视频在线观看| 亚洲一卡二卡三卡四卡五卡| 婷婷国产v国产偷v亚洲高清| 人人超碰91尤物精品国产| 国产精品自拍网站| 国产69精品久久99不卡| 日本二三区不卡| 91精品蜜臀在线一区尤物| 久久久久久麻豆| 一区二区三区欧美视频| 久久99精品网久久| 91色视频在线| 制服视频三区第一页精品| 国产亚洲欧美一级| 亚洲欧美日韩一区| 麻豆精品一区二区综合av| 成人精品视频一区二区三区尤物| 91黄色激情网站| 精品国产露脸精彩对白| 中文字幕在线不卡一区 | 日韩免费电影一区| 欧美极品aⅴ影院| 天天免费综合色| 成人性色生活片免费看爆迷你毛片| 91福利资源站| 国产亚洲欧美日韩俺去了| 亚洲一二三四在线| 国产一区二区三区四区在线观看| 色婷婷一区二区| 久久人人爽爽爽人久久久| 亚洲一区在线电影| 国产精品综合视频| 欧美精品99久久久**| 国产精品色眯眯| 久久99精品久久只有精品| 欧美性猛交一区二区三区精品| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 中文字幕精品在线不卡| 日韩不卡手机在线v区| 一本色道亚洲精品aⅴ| 欧美精品一区二区三区视频 | 51精品国自产在线| 中文字幕一区二| 狠狠色丁香久久婷婷综| 欧美日韩一本到| 亚洲日本一区二区| 高清av一区二区| 欧美电影免费观看高清完整版在线观看| 中文字幕一区二区三区视频| 国产做a爰片久久毛片| 日韩小视频在线观看专区| 亚洲成人免费av| 欧美性受xxxx| 亚洲人成在线播放网站岛国| 国产成人精品免费网站| 精品成人私密视频| 久久精品免费观看| 欧美一区二区三区影视| 亚洲va天堂va国产va久| 91国产免费看| 一区二区三区高清在线| 色综合久久88色综合天天免费| 欧美国产日本韩| 国产乱码精品一区二区三区av | 91久久线看在观草草青青| 国产精品免费免费| 国产91丝袜在线18| 欧美国产精品劲爆| 成人h版在线观看| 日韩毛片一二三区| 91蜜桃视频在线| 亚洲男人天堂av| 欧美色综合影院| 亚洲超碰精品一区二区| 欧美精品第1页| 青青草视频一区| 精品卡一卡二卡三卡四在线| 久久精品理论片| 国产亚洲一区二区在线观看| 国产伦精品一区二区三区在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 国产高清在线观看免费不卡| 国产欧美精品在线观看| 成人在线综合网站| 亚洲美女电影在线| 欧美日本一区二区| 久久99精品一区二区三区| 国产亚洲精品超碰| 91视频在线观看| 午夜影视日本亚洲欧洲精品| 日韩欧美成人一区二区| 国产激情视频一区二区在线观看| 亚洲国产精品精华液2区45| 91蝌蚪porny成人天涯| 天天色天天操综合| 久久先锋资源网| 一本色道**综合亚洲精品蜜桃冫 | 久久久www成人免费毛片麻豆| 成人免费观看av| 午夜视频一区二区| 久久综合av免费| 色八戒一区二区三区| 男人的天堂久久精品| 国产精品久久久一本精品| 欧美日韩大陆一区二区| 国产成人免费高清|