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

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

?? server.cpp

?? 用于Linux下的網(wǎng)絡(luò)視頻。包里包括了接收端和發(fā)送端。大部份是從Spcaview修改過來的
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
 
   pthread_mutex_init (&vd->grabmutex, NULL);
 return err;
}
static int
GetVideoPict (struct vdIn *vd)
{
 if (ioctl (vd->fd, VIDIOCGPICT, &vd->videopict) < 0)
    exit(1);
 
 
 printf ("VIDIOCGPICT brightnes=%d hue=%d color=%d contrast=%d whiteness=%d"
     "depth=%d palette=%d\n", vd->videopict.brightness,
     vd->videopict.hue, vd->videopict.colour, vd->videopict.contrast,
     vd->videopict.whiteness, vd->videopict.depth,
     vd->videopict.palette);
 return 0;
}
int
init_v4l (struct vdIn *vd)
{
 int f;
 int erreur = 0;
 int err;
 if ((vd->fd = open (vd->videodevice, O_RDWR)) == -1)
    exit(1);
 
 if (ioctl (vd->fd, VIDIOCGCAP, &(vd->videocap)) == -1)
    exit(1);
 
 printf ("Camera found: %s \n", vd->videocap.name);
 snprintf (vd->cameraname, 32, "%s", vd->videocap.name);
 
 erreur = GetVideoPict (vd);
   if (ioctl (vd->fd, VIDIOCGCHAN, &vd->videochan) == -1)
    {
      printf ("Hmm did not support Video_channel\n");
      vd->cameratype = UNOW;
    }
 else
    {
    if (vd->videochan.name){
      printf ("Bridge found: %s \n", vd->videochan.name);
      snprintf (vd->bridge, 9, "%s", vd->videochan.name);
      }
      else
      {
      vd->cameratype = UNOW;
      }
    }
   printf ("StreamId: %d Camera\n", vd->cameratype);
 
     printf (" Format asked %d check %d\n",vd->formatIn, err); 
 vd->videopict.palette = vd->formatIn;
 vd->videopict.depth = (8 * 3) >> 1;
 vd->bppIn = (8 * 3) >> 1;
 
   vd->framesizeIn = (vd->hdrwidth * vd->hdrheight * vd->bppIn) >> 3;
   erreur = SetVideoPict (vd);
 erreur = GetVideoPict (vd);
 if (vd->formatIn != vd->videopict.palette ||
      vd->bppIn != vd->videopict.depth)
    exit(1);
 if (erreur < 0)
    exit(1);
      printf (" grabbing method default MMAP asked \n");
      // MMAP VIDEO acquisition
      memset (&(vd->videombuf), 0, sizeof (vd->videombuf));
      if (ioctl (vd->fd, VIDIOCGMBUF, &(vd->videombuf)) < 0)
    {
     perror (" init VIDIOCGMBUF FAILED\n");
    }
      printf ("VIDIOCGMBUF size %d frames %d offets[0]=%d offsets[1]=%d\n",
          vd->videombuf.size, vd->videombuf.frames,
          vd->videombuf.offsets[0], vd->videombuf.offsets[1]);
      vd->pFramebuffer =
    (unsigned char *) mmap (0, vd->videombuf.size, PROT_READ | PROT_WRITE,
                MAP_SHARED, vd->fd, 0);
      vd->mmapsize = vd->videombuf.size;
      vd->vmmap.height = vd->hdrheight;
      vd->vmmap.width = vd->hdrwidth;
      vd->vmmap.format = vd->formatIn;
      for (f = 0; f < vd->videombuf.frames; f++)
    {
     vd->vmmap.frame = f;
     if (ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap)))
        {
          perror ("cmcapture");
        }
    }
      vd->vmmap.frame = 0;
 
 vd->frame_cour = 0;
 return erreur;
}
 
int 
v4lGrab (struct vdIn *vd )
{
    static int frame = 0;
 
 int len;
 int status;
 int count = 0;
 int size;
 int erreur = 0;
 int m4vsize = 0;
 int qualite = 1024;
 struct frame_t *headerframe;
 double timecourant =0;
 double temps = 0;
/******XVID****/
      unsigned char *mp4_buffer = NULL;
      unsigned char *in_buffer = NULL;
      int key;
    int stats_type;
    int stats_quant;
    int stats_length;
      int sse[3];
      int enc_result;
      int input_num;
/******************/
      vd->vmmap.height = vd->hdrheight;
      vd->vmmap.width = vd->hdrwidth;
      vd->vmmap.format = vd->formatIn;
      if (ioctl (vd->fd, VIDIOCSYNC,&vd->vmmap.frame) < 0)
    {
     perror ("cvsync err\n");
     erreur = -1;
    }
 
    /* Is there someone using the frame */ 
    while((vd->framelock[vd->frame_cour] != 0) && vd->signalquit)
   usleep(1000);
    pthread_mutex_lock (&vd->grabmutex);
/********************************XVID******************************************/
in_buffer = (unsigned char *) malloc(IMAGE_SIZE(XDIM, YDIM));
    if (!in_buffer)
                 {printf("in_buffer err!");
        goto free_all_memory;}
mp4_buffer = (unsigned char *) malloc(IMAGE_SIZE(XDIM, YDIM) * 2);
    if (mp4_buffer==NULL)
    {
        fprintf(stderr,"malloc error");
        goto free_all_memory;
    }
enc_result = enc_init(1);
    if (enc_result) {
        fprintf(stderr, "Encore INIT problem, return value %d\n", enc_result);
        goto release_all;
    }
memcpy(in_buffer,vd->pFramebuffer + vd->videombuf.offsets[vd->vmmap.frame],IMAGE_SIZE(XDIM, YDIM));
 printf("the framesize is %d",IMAGE_SIZE(XDIM, YDIM));
        
    m4vsize=enc_main((uint8_t *)in_buffer,
        mp4_buffer,&key, &stats_type,&stats_quant, &stats_length, sse);
         printf("the m4vsize is %d!!!!\n\n",m4vsize);
memcpy(vd->ptframe[vd->frame_cour]+ sizeof(struct frame_t),mp4_buffer,m4vsize);
/****************************************************************************/
     headerframe=(struct frame_t*)vd->ptframe[vd->frame_cour];
     snprintf(headerframe->header,5,"%s","SPCA"); 
     headerframe->deltatimes=(int)(headerframe->seqtimes-timecourant); 
     headerframe->w = vd->hdrwidth;
     headerframe->h = vd->hdrheight;
     headerframe->size = (( m4vsize < 0)?0:m4vsize);
     headerframe->format = vd->formatIn;
     headerframe->nbframe = frame++; 
 
    pthread_mutex_unlock (&vd->grabmutex); 
    /************************************/
    
      if ((ioctl (vd->fd, VIDIOCMCAPTURE, &(vd->vmmap))) < 0)
    {
     perror ("cmcapture");
     printf (">>cmcapture err %d\n", status);
     erreur = -1;
    }
      vd->vmmap.frame = (vd->vmmap.frame + 1) % vd->videombuf.frames;
      vd->frame_cour = (vd->frame_cour +1) % OUTFRMNUMB;
      //printf("frame nb %d\n",vd->vmmap.frame);
release_all:
 
 
    if (enc_handle) {
        enc_result = enc_stop();
        if (enc_result)
            fprintf(stderr, "Encore RELEASE problem return value %d\n",
                    enc_result);
    }
free_all_memory:
        printf("free the mem");
    free(mp4_buffer);
    free(in_buffer);
 return erreur;
}
static int
SetVideoPict (struct vdIn *vd)
{
 if (ioctl (vd->fd, VIDIOCSPICT, &vd->videopict) < 0)
    exit(1);
 
 printf ("VIDIOCSPICT brightnes=%d hue=%d color=%d contrast=%d whiteness=%d"
     "depth=%d palette=%d\n", vd->videopict.brightness,
     vd->videopict.hue, vd->videopict.colour, vd->videopict.contrast,
     vd->videopict.whiteness, vd->videopict.depth,
     vd->videopict.palette);
 
 return 0;
}
 
int
close_v4l (struct vdIn *vd)
{
 int i;
      printf ("unmapping frame buffer\n");
      munmap (vd->pFramebuffer, vd->mmapsize);
 printf ("close video_device\n"); 
 close (vd->fd);
 
 if (vd->videodevice)
    {
      free (vd->videodevice);
      vd->videodevice = NULL;
    }
 if (vd->cameraname)
    {
      free (vd->cameraname);
      vd->cameraname = NULL;
    }
 for (i = 0; i < OUTFRMNUMB; i++)
    {
      if (vd->ptframe[i])
    {
     free (vd->ptframe[i]);
     vd->ptframe[i] = NULL;
     vd->framelock[i] = 0;
     printf ("freeing output buffer %d\n",i);
    }
    }
     pthread_mutex_destroy (&vd->grabmutex);
}
int sendpacket ( unsigned char *framepointer, int framelength)
{     
   bool done = false;
    while (!done)
    {
      if (framelength > Packetfixlength)
    {
     framelength -= Packetfixlength;
     nread = Packetfixlength;
    }
      else
    {
     nread = framelength;
     framelength = 0;
    }
 
       
      if (nread!=frameheadfixlength&&framelength==0)
              {status = session.SendPacket(framepointer, nread,26,1,1000);}
         else {status = session.SendPacket(framepointer, nread,26,0,1000);}
      if (status < 0)
    {    
     exit (-1);
    }
      RTPTime::Wait (delay);
      framepointer += Packetfixlength;
      printf("%d",nread);
      if (framelength == 0)
    return (10); 
    }
 
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三区视频在线观看| 欧美国产激情二区三区| 亚洲成人一区二区| 在线观看亚洲成人| 亚洲综合丝袜美腿| 欧美日韩高清一区二区三区| 亚洲午夜久久久久久久久久久 | 麻豆精品一二三| 日韩欧美国产综合在线一区二区三区| 日本一不卡视频| 久久先锋资源网| 成人晚上爱看视频| 亚洲桃色在线一区| 欧美日韩精品专区| 免费日韩伦理电影| 久久精品视频免费| 色哟哟精品一区| 亚洲一级在线观看| 日韩欧美在线综合网| 国产精品123区| 亚洲激情图片一区| 91精品国产综合久久小美女| 国产精品中文字幕日韩精品 | 国产日产精品一区| 91啪在线观看| 免费成人av在线播放| 久久精品亚洲精品国产欧美kt∨| 粉嫩aⅴ一区二区三区四区五区| 日韩一区在线看| 88在线观看91蜜桃国自产| 国产一区二区0| 亚洲自拍偷拍av| 欧美电视剧在线看免费| 99免费精品在线| 欧美a一区二区| 综合久久久久久| 精品日韩在线观看| 一本一本大道香蕉久在线精品| 奇米色777欧美一区二区| 国产精品天美传媒| 91精品国产麻豆| 菠萝蜜视频在线观看一区| 五月天激情综合网| 17c精品麻豆一区二区免费| 欧美一区二区三区免费观看视频| 成人美女在线观看| 免费观看成人av| 一区二区三区日韩欧美| 精品成人在线观看| 欧美人与性动xxxx| 95精品视频在线| 国产一区不卡精品| 青青草97国产精品免费观看 | 色婷婷久久久综合中文字幕| 激情另类小说区图片区视频区| 一区二区三区视频在线看| 久久亚洲一区二区三区明星换脸 | 99久久99久久久精品齐齐| 久久99九九99精品| 日韩精品一二三| 亚洲欧美色一区| 中文av一区二区| 久久久久国色av免费看影院| 欧美精品v国产精品v日韩精品 | 色综合中文综合网| 亚洲愉拍自拍另类高清精品| 国产亚洲精品bt天堂精选| 欧美一级免费大片| 欧美日本高清视频在线观看| 91极品美女在线| 欧美一区二区三区四区久久 | 中文字幕一区在线观看视频| 久久久国产精华| 精品福利二区三区| 精品日韩一区二区三区| 日韩一区国产二区欧美三区| 欧美日韩黄色一区二区| 色综合久久久久综合体桃花网| 粉嫩av一区二区三区| 风间由美性色一区二区三区| 国产成人综合在线播放| 国产一区啦啦啦在线观看| 韩国一区二区在线观看| 精品一区二区三区免费视频| 久久 天天综合| 激情久久五月天| 国产乱码精品一区二区三| 国产成人精品免费网站| 懂色一区二区三区免费观看 | 亚洲免费大片在线观看| 伊人色综合久久天天人手人婷| 亚洲狠狠丁香婷婷综合久久久| 亚洲日本免费电影| 一区二区三区在线高清| 亚洲一本大道在线| 免费成人在线影院| 国产一区二区三区四区五区美女 | 99精品视频在线播放观看| av亚洲精华国产精华| 99久久综合狠狠综合久久| 91免费国产视频网站| 色噜噜狠狠色综合欧洲selulu| 欧美在线你懂得| 欧美一区二区久久| 国产亚洲综合av| 综合分类小说区另类春色亚洲小说欧美| 中文字幕亚洲一区二区va在线| 亚洲男人天堂av| 丝袜诱惑制服诱惑色一区在线观看| 日本亚洲欧美天堂免费| 国产一区二区电影| 色综合激情久久| 欧美一区二区三区在线电影 | 欧美国产亚洲另类动漫| 亚洲欧美日韩在线不卡| 日韩制服丝袜av| 国产一区999| 国产精品卡一卡二| 亚洲日穴在线视频| 美女在线观看视频一区二区| 国产成人在线视频网站| 在线视频你懂得一区| 欧美刺激脚交jootjob| 亚洲欧洲在线观看av| 日韩专区一卡二卡| 成人丝袜18视频在线观看| 欧美日韩一卡二卡| 中文字幕免费不卡在线| 亚洲国产精品久久久久秋霞影院| 极品少妇一区二区三区精品视频| 99精品视频在线播放观看| 日韩久久精品一区| 亚洲精品国产视频| 国产精品66部| 欧美日高清视频| 国产精品看片你懂得| 蜜臀av在线播放一区二区三区| 色综合久久88色综合天天6| 精品1区2区在线观看| 亚洲一区影音先锋| 成人精品小蝌蚪| 精品国产一区二区三区av性色| 亚洲欧美一区二区不卡| 国产精品自在欧美一区| 日韩一卡二卡三卡国产欧美| 亚洲你懂的在线视频| 国产精品亚洲а∨天堂免在线| 欧美日韩免费不卡视频一区二区三区| 国产蜜臀97一区二区三区| 日本午夜精品视频在线观看| 91福利视频网站| 精品一区免费av| 欧美乱熟臀69xxxxxx| 一区二区三区成人| 成+人+亚洲+综合天堂| 久久久久久久电影| 久久超级碰视频| 欧美一区二区三区视频免费播放| 玉米视频成人免费看| 99精品视频一区| 国产精品久久免费看| 成人免费av在线| 久久精品日韩一区二区三区| 老司机精品视频一区二区三区| 在线电影院国产精品| 亚洲一二三四区| 欧美在线综合视频| 伊人色综合久久天天| 色综合一个色综合亚洲| 亚洲人成精品久久久久久 | 日本一区二区成人| 国产激情精品久久久第一区二区| 精品福利视频一区二区三区| 激情丁香综合五月| 精品国产污网站| 久久av资源站| 久久日一线二线三线suv| 国产精品资源网| 国产精品午夜在线| 99精品国产99久久久久久白柏| 中文字幕制服丝袜成人av | 欧美久久久久久久久| 日韩av在线播放中文字幕| 欧美一区二区三区在线视频| 久久机这里只有精品| 久久午夜老司机| 成人v精品蜜桃久久一区| 亚洲手机成人高清视频| 亚洲欧洲精品一区二区三区| 99久久国产综合精品女不卡| 亚洲三级在线免费| 欧美日韩美少妇| 久久99精品久久久久久国产越南 | 九九国产精品视频| 国产偷国产偷亚洲高清人白洁| 成人免费高清在线观看| 伊人开心综合网| 欧美一区二区精品在线| 国产精品中文字幕日韩精品| 亚洲人成亚洲人成在线观看图片|