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

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

?? tmndec.c

?? h.263解碼器 視頻會(huì)議 圖像采集 圖像壓縮
?? C
字號(hào):
#include <stdio.h>#include <stdlib.h>#include <ctype.h>#include <fcntl.h>#define GLOBAL#include "config.h"#include "tmndec.h"#include "global.h"#ifdef USE_TIME#ifndef WIN32#include <sys/time.h>#else#include <windows.h>#endif#endif#ifdef WIN32#include <io.h>#endif#ifdef WINDOWSint initDisplay (int pels, int lines);int closeDisplay ();#endif/* private prototypes */static void initdecoder _ANSI_ARGS_((void));static void options _ANSI_ARGS_((int *argcp, char **argvp[]));static int getval _ANSI_ARGS_((char *argv[]));/* private data */static int loopflag;int main(argc,argv)int argc;char *argv[];{  int first, framenum;#ifdef USE_TIME  int runtime;#ifndef WIN32  struct timeval tstart,tstop;#else  unsigned int startTime, stopTime;#endif#endif#ifdef USE_TIME  /* default is read frame rate from bitstream */  framerate=99;#endif  options(&argc,&argv);  /* pointer to name of output files */#if (defined DISPLAY || defined WINDOWS)  if (outtype==T_X11 || outtype == T_WIN)    outputname = "";  else#endif    outputname = argv[argc-1];  ld = &base;   /* open MPEG input file(s) */  if ((base.infile=open(argv[1],O_RDONLY|O_BINARY))<0) {    sprintf(errortext,"Input file %s not found\n",argv[1]);    error(errortext);  }  first = 1;  do {    if (base.infile!=0)      lseek(base.infile,0l,0);    initbits();    framenum = 0;    temp_ref = 0;    prev_temp_ref -1;     while (getheader()) {      if (first) {        initdecoder();#ifdef USE_TIME#ifndef WIN32        gettimeofday(&tstart,(struct timezone *)NULL);        if (framerate > 0)          gettimeofday(&tftarget,(struct timezone *)NULL);#else        startTime = timeGetTime();        if (framerate > 0)          targetTime = timeGetTime();#endif#endif        first = 0;      }      getpicture(&framenum);            framenum++;    }  } while (loopflag);  close(base.infile);#ifdef USE_TIME#ifndef WIN32  gettimeofday(&tstop,(struct timezone *)NULL);  runtime = 100*(tstop.tv_sec-tstart.tv_sec)    + (tstop.tv_usec-tstart.tv_usec)/10000;#else  stopTime = timeGetTime();  runtime = (stopTime - startTime) / 10;#endif  if (!quiet && runtime!=0)    printf("%d.%02d seconds, %d frames, %d.%02d fps\n",           runtime/100, runtime%100,           framenum, ((10000*framenum+runtime/2)/runtime)/100,           ((10000*framenum+runtime/2)/runtime)%100);#endif#ifdef DISPLAY  if (outtype==T_X11)    exit_display();#endif#ifdef WINDOWS  if (outtype == T_WIN)    closeDisplay();#endif  return 0;}static void initdecoder(){  int i, cc, size;  FILE *cleared;  /* clip table */  if (!(clp=(unsigned char *)malloc(1024)))    error("malloc failed\n");  clp += 384;  for (i=-384; i<640; i++)    clp[i] = (i<0) ? 0 : ((i>255) ? 255 : i);  /* MPEG-1 = TMN parameters */  matrix_coefficients = 5;  switch (source_format) {    case (SF_SQCIF):      horizontal_size = 128;      vertical_size = 96;      break;    case (SF_QCIF):      horizontal_size = 176;      vertical_size = 144;      break;    case (SF_CIF):      horizontal_size = 352;      vertical_size = 288;      break;    case (SF_4CIF):      horizontal_size = 704;      vertical_size = 576;      break;    case (SF_16CIF):      horizontal_size = 1408;      vertical_size = 1152;      break;    default:      printf("ERROR: Illegal input format\n");      exit(-1);      break;  }  mb_width = horizontal_size/16;  mb_height = vertical_size/16;  coded_picture_width = horizontal_size;  coded_picture_height = vertical_size;  chrom_width =  coded_picture_width>>1;  chrom_height = coded_picture_height>>1;  blk_cnt = 6;  for (cc=0; cc<3; cc++) {    if (cc==0)      size = coded_picture_width*coded_picture_height;    else      size = chrom_width*chrom_height;    if (!(refframe[cc] = (unsigned char *)malloc(size)))      error("malloc failed\n");    if (!(oldrefframe[cc] = (unsigned char *)malloc(size)))      error("malloc failed\n");    if (!(bframe[cc] = (unsigned char *)malloc(size)))      error("malloc failed\n");  }  for (cc=0; cc<3; cc++) {    if (cc==0) {      size = (coded_picture_width+64)*(coded_picture_height+64);      if (!(edgeframeorig[cc] = (unsigned char *)malloc(size)))        error("malloc failed\n");      edgeframe[cc] = edgeframeorig[cc] + (coded_picture_width+64) * 32 + 32;    }    else {      size = (chrom_width+32)*(chrom_height+32);      if (!(edgeframeorig[cc] = (unsigned char *)malloc(size)))        error("malloc failed\n");      edgeframe[cc] = edgeframeorig[cc] + (chrom_width+32) * 16 + 16;    }  }  if (expand) {    for (cc=0; cc<3; cc++) {      if (cc==0)        size = coded_picture_width*coded_picture_height*4;      else        size = chrom_width*chrom_height*4;            if (!(exnewframe[cc] = (unsigned char *)malloc(size)))        error("malloc failed\n");    }  }  /* Clear output file for concatenated storing */  if (outtype == T_YUV_CONC) {    if ((cleared = fopen(outputname,"wb")) == NULL)       error("couldn't clear outputfile\n");    else      fclose(cleared);  }  /* IDCT */  if (refidct)    init_idctref();  else    init_idct();#ifdef DISPLAY  if (outtype==T_X11) {    init_display("");  }#endif#ifdef WINDOWS  if (outtype==T_WIN) {    initDisplay(coded_picture_width, coded_picture_height);  }#endif}void error(text)char *text;{  fprintf(stderr,text);  exit(1);}/* trace output */void printbits(code,bits,len)int code,bits,len;{  int i;  for (i=0; i<len; i++)    printf("%d",(code>>(bits-1-i))&1);}/* option processing */static void options(argcp,argvp)int *argcp;char **argvp[];{  while (*argcp>1 && (*argvp)[1][0]=='-')  {    while ((*argvp)[1][1])    {      switch (toupper((*argvp)[1][1]))      {#ifdef USE_TIME      case 'F':        framerate = getval(*argvp);        break;#endif      case 'V':        verbose = getval(*argvp);        break;      case 'O':        outtype = getval(*argvp);        break;      case 'R':        refidct = 1;        break;      case 'L':        loopflag = 1;        break;      case 'X':        expand = 1;        break;      case 'T':        trace = 1;        break;      case 'Q':        quiet = 1;        break;      default:        fprintf(stderr,"undefined option -%c ignored\n",(*argvp)[1][1]);      }      (*argvp)[1]++;    }    (*argvp)++;    (*argcp)--;  }  if (outtype != T_X11 && outtype != T_WIN) {    loopflag = 0;  /* No looping for output to file */#ifdef USE_TIME    framerate = 0; /* No delay necessary when output to file */#endif  }#ifdef DISPLAY  if (outtype==T_X11)  {    (*argcp)++; /* fake outfile parameter */  }#endif#ifdef WINDOWS  if (outtype==T_WIN)  {    (*argcp)++; /* fake outfile parameter */  }#endif  if (*argcp!=3 && *argcp!=4)  {    printf("\n%s\n",version);    printf("Usage:   tmndecode {options} bitstream {outputfilename%%d}\n\Options: -vn  verbose output (n: level)\n\         -on  output format \n\              n=0 : YUV\n\              n=1 : SIF\n\              n=2 : TGA\n\              n=3 : PPM\n");#ifdef DISPLAY    printf("\              n=4 : X11 Display\n");#endif    printf("\              n=5 : YUV concatenated\n");#ifdef WINDOWS    printf("\              n=6 : Windows 95/NT Display\n");#endif    printf("\              You have to choose one output format!\n\         -q   disable warnings to stderr\n\         -r   use double precision reference IDCT\n\         -t   enable low level tracing\n");#ifdef DISPLAY    printf("\         -x   interpolate pictures to double size before display\n");#endif#ifdef USE_TIME    printf("\         -fn  frame rate\n\              n=0  : as fast as possible\n\              n=99 : read frame rate from bitstream (default)\n");#endif    #ifdef DISPLAY    printf("\         -l   loop sequence\n");#endif    exit(0);  }}static int getval(argv)char *argv[];{  int val;  if (sscanf(argv[1]+2,"%d",&val)!=1)    return 0;  while (isdigit(argv[1][2]))    argv[1]++;  return val;}#ifdef USE_TIME#ifndef WINDOWS/* Unix version */void doframerate(int pb){  struct timeval tfdiff;  const float REF_FRAME_RATE = 29.97;  /* Compute desired frame rate */  if (framerate <= 0)    return;    if (framerate != 99) {    tftarget.tv_usec += 1000000 / framerate;  }  else {    if (pb) {      tftarget.tv_usec += 1000000 / (REF_FRAME_RATE/trb);    }    else {      tftarget.tv_usec += 1000000 / (REF_FRAME_RATE/(trd-trb));    }  }  /* this is where we should be */  if (tftarget.tv_usec >= 1000000)  {    tftarget.tv_usec -= 1000000;    tftarget.tv_sec++;  }  /* this is where we are */  gettimeofday(&tfdiff,(struct timezone *)NULL);  tfdiff.tv_usec = tftarget.tv_usec - tfdiff.tv_usec;  tfdiff.tv_sec  = tftarget.tv_sec  - tfdiff.tv_sec;  if (tfdiff.tv_usec < 0)  {    tfdiff.tv_usec += 1000000;    tfdiff.tv_sec--;  }  /* See if we are already lagging behind */  if (tfdiff.tv_sec < 0 || (tfdiff.tv_sec == 0 && tfdiff.tv_usec <= 0))    return;    /* Spin for awhile */  select(0,NULL,NULL,NULL,&tfdiff);}#else /* Win32 version */void doframerate(int pb){  DWORD currentTime;  int diffTime;  const float REF_FRAME_RATE = (float)29.97;  /* Compute desired frame rate */  if (framerate <= 0)    return;    if (framerate != 99) {    targetTime += 1000 / framerate;  }  else {    if (pb) {      targetTime += (int)(1000 / (REF_FRAME_RATE/trb));    }    else {      targetTime += (int)(1000 / (REF_FRAME_RATE/(trd-trb)));    }  }  /* this is where we are */  currentTime = timeGetTime();    diffTime = targetTime - currentTime;  /* See if we are already lagging behind */  if (diffTime <= 0)    return;    /* Spin for awhile */  Sleep(diffTime);        /* this is not a very accurate timer */}#endif#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利在线导航| 亚洲精品免费电影| 91久久精品一区二区| 国产精品一区在线观看你懂的| 日韩av成人高清| 一区二区免费在线播放| 亚洲视频你懂的| 中文字幕第一页久久| 久久美女艺术照精彩视频福利播放| 日韩三级在线免费观看| 91精品在线免费| 欧美日韩国产乱码电影| 91久久精品午夜一区二区| 91丨porny丨国产入口| 成人自拍视频在线观看| 美洲天堂一区二卡三卡四卡视频| 亚洲成人第一页| 亚洲不卡在线观看| 五月天欧美精品| 成人国产精品免费观看视频| 国产一区二区三区四区在线观看 | 亚洲一区二区三区小说| 中文字幕一区二区5566日韩| 成人免费在线播放视频| 国产精品不卡一区| 国产精品成人免费| 国产精品久久久久久久第一福利 | 日韩视频一区二区在线观看| 欧美一区二区免费视频| 欧美一区二区在线不卡| 91精品在线观看入口| 欧美三电影在线| 欧美巨大另类极品videosbest | 精品国产乱码久久久久久影片| 6080国产精品一区二区| 欧美巨大另类极品videosbest | 久久九九99视频| 一区在线观看免费| 午夜精品一区二区三区三上悠亚| 另类中文字幕网| av一区二区久久| 欧美二区三区的天堂| 国产农村妇女毛片精品久久麻豆| 一卡二卡三卡日韩欧美| 国产尤物一区二区| 色综合久久综合网97色综合| 日韩视频免费观看高清在线视频| 国产欧美日韩精品一区| 亚洲国产精品视频| 国产成人av自拍| 538在线一区二区精品国产| 欧美国产精品一区| 五月婷婷久久丁香| 99久久久国产精品免费蜜臀| 日韩欧美精品在线视频| 亚洲精品成人天堂一二三| 国产一区二区电影| 欧美日本免费一区二区三区| 国产精品夫妻自拍| 久久成人精品无人区| 91福利小视频| 国产精品人成在线观看免费| 久久成人羞羞网站| 欧美日韩国产影片| 亚洲乱码国产乱码精品精小说| 国产精品一区在线观看乱码 | 国产亚洲欧美日韩俺去了| 亚洲午夜一区二区三区| 成人av资源网站| 久久综合999| 美女视频免费一区| 欧美亚洲一区二区三区四区| 国产精品美女久久福利网站| 精品一区中文字幕| 91精品国产品国语在线不卡| 一区二区三区在线观看网站| 不卡av电影在线播放| 亚洲精品在线电影| 日本欧美一区二区三区乱码| 欧美视频一区二| 一区二区三区精品视频在线| av一区二区三区在线| 国产日韩影视精品| 国产精品综合视频| 久久综合久久综合亚洲| 麻豆久久久久久| 91精品国产综合久久福利软件 | 91麻豆国产在线观看| 欧美激情一区二区三区不卡| 美女视频一区在线观看| 欧美精三区欧美精三区| 一区二区三区在线免费播放| gogogo免费视频观看亚洲一| 欧美激情一区在线观看| 国产91精品免费| 久久精品欧美一区二区三区不卡| 另类小说色综合网站| 日韩欧美国产午夜精品| 日韩高清一级片| 3atv一区二区三区| 调教+趴+乳夹+国产+精品| 欧美日韩一区二区三区视频| 亚洲一区二区三区四区不卡| 在线看不卡av| 舔着乳尖日韩一区| 91精品国产综合久久福利| 亚洲国产va精品久久久不卡综合| 在线视频综合导航| 亚洲成人1区2区| 91精品国产综合久久久久久漫画| 日欧美一区二区| 日韩欧美亚洲一区二区| 久久福利资源站| 久久精品一区二区三区av| 国产一区二区三区精品欧美日韩一区二区三区 | 久久久99免费| 成人激情小说网站| 亚洲色图在线看| 欧美午夜精品久久久久久超碰 | 欧美天堂亚洲电影院在线播放| 亚洲综合小说图片| 678五月天丁香亚洲综合网| 爽好久久久欧美精品| 欧美大片在线观看一区二区| 国产美女在线观看一区| 国产精品乱码久久久久久| 91在线无精精品入口| 一区2区3区在线看| 91精品国产高清一区二区三区 | 亚洲一区二区三区四区五区中文 | 1024成人网色www| 欧美三级一区二区| 免费高清不卡av| 国产三区在线成人av| 99久久精品久久久久久清纯| 亚洲一区二区av电影| 欧美一二三区精品| 成人性生交大片免费看视频在线| 亚洲欧洲综合另类| 日韩写真欧美这视频| 国产成人欧美日韩在线电影| 亚洲乱码国产乱码精品精98午夜 | 亚洲欧美另类图片小说| 在线成人高清不卡| 国产成人免费网站| 亚洲韩国一区二区三区| 精品国产乱码久久久久久牛牛| 东方欧美亚洲色图在线| 亚洲国产成人91porn| 久久精品亚洲麻豆av一区二区| 91视频com| 麻豆一区二区三区| 亚洲乱码国产乱码精品精小说| 精品久久人人做人人爽| 91麻豆文化传媒在线观看| 麻豆精品一区二区综合av| 中文字幕一区在线| 精品欧美一区二区在线观看| 91久久精品网| 国产精品系列在线观看| 午夜激情综合网| 中文字幕一区二区三区在线观看 | 综合久久国产九一剧情麻豆| 欧美一区二区播放| 91麻豆视频网站| 国产激情视频一区二区在线观看 | jlzzjlzz亚洲日本少妇| 蜜桃一区二区三区在线观看| 亚洲激情第一区| 国产欧美精品一区二区三区四区| 欧美三级视频在线观看| 成人高清视频免费观看| 久久精品国产第一区二区三区| 亚洲激情中文1区| 国产精品午夜久久| 精品国产乱码久久久久久老虎| 欧美日韩一区二区在线观看视频| 成人app网站| 国产九色sp调教91| 蜜桃视频一区二区| 午夜精品久久久久久久| 亚洲天天做日日做天天谢日日欢| 欧美一区二区三区电影| 色噜噜久久综合| 色综合天天综合狠狠| 成人一级片在线观看| 久99久精品视频免费观看| 日韩国产高清影视| 亚洲成人激情社区| 夜夜操天天操亚洲| 最新欧美精品一区二区三区| 中文字幕不卡在线播放| 欧美精品一区二| 欧美成人一区二区三区在线观看| 在线观看网站黄不卡| 91蜜桃在线观看| 99re66热这里只有精品3直播 | 国产精品久久久久久久蜜臀 | 日本欧美一区二区| 午夜在线成人av|