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

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

?? getvlc.c

?? MPEG2視頻編解碼程序
?? C
字號:
/* getvlc.c, 可變長編碼的解碼                                     */#include <stdio.h>#include "config.h"#include "global.h"#include "getvlc.h"/* private prototypes *//* generic picture macroblock type processing functions */static int Get_I_macroblock_type _ANSI_ARGS_((void));static int Get_P_macroblock_type _ANSI_ARGS_((void));static int Get_B_macroblock_type _ANSI_ARGS_((void));static int Get_D_macroblock_type _ANSI_ARGS_((void));/* spatial picture macroblock type processing functions */static int Get_I_Spatial_macroblock_type _ANSI_ARGS_((void));static int Get_P_Spatial_macroblock_type _ANSI_ARGS_((void));static int Get_B_Spatial_macroblock_type _ANSI_ARGS_((void));static int Get_SNR_macroblock_type _ANSI_ARGS_((void));int Get_macroblock_type(){  int macroblock_type = 0;  if (ld->scalable_mode==SC_SNR)    macroblock_type = Get_SNR_macroblock_type();  else  {    switch (picture_coding_type)    {    case I_TYPE:      macroblock_type = ld->pict_scal ? Get_I_Spatial_macroblock_type() : Get_I_macroblock_type();      break;    case P_TYPE:      macroblock_type = ld->pict_scal ? Get_P_Spatial_macroblock_type() : Get_P_macroblock_type();      break;    case B_TYPE:      macroblock_type = ld->pict_scal ? Get_B_Spatial_macroblock_type() : Get_B_macroblock_type();      break;    case D_TYPE:      macroblock_type = Get_D_macroblock_type();      break;    default:      printf("Get_macroblock_type(): unrecognized picture coding type\n");      break;    }  }  return macroblock_type;}static int Get_I_macroblock_type(){#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(I) ");#endif /* TRACE */  if (Get_Bits1())  {#ifdef TRACE    if (Trace_Flag)      printf("(1): Intra (1)\n");#endif /* TRACE */    return 1;  }  if (!Get_Bits1())  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;  }#ifdef TRACE  if (Trace_Flag)    printf("(01): Intra, Quant (17)\n");#endif /* TRACE */  return 17;}static char *MBdescr[]={  "",                  "Intra",        "No MC, Coded",         "",  "Bwd, Not Coded",    "",             "Bwd, Coded",           "",  "Fwd, Not Coded",    "",             "Fwd, Coded",           "",  "Interp, Not Coded", "",             "Interp, Coded",        "",  "",                  "Intra, Quant", "No MC, Coded, Quant",  "",  "",                  "",             "Bwd, Coded, Quant",    "",  "",                  "",             "Fwd, Coded, Quant",    "",  "",                  "",             "Interp, Coded, Quant", ""};static int Get_P_macroblock_type(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(P) (");#endif /* TRACE */  if ((code = Show_Bits(6))>=8)  {    code >>= 3;    Flush_Buffer(PMBtab0[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,3,PMBtab0[code].len);      printf("): %s (%d)\n",MBdescr[(int)PMBtab0[code].val],PMBtab0[code].val);    }#endif /* TRACE */    return PMBtab0[code].val;  }  if (code==0)  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }  Flush_Buffer(PMBtab1[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,6,PMBtab1[code].len);    printf("): %s (%d)\n",MBdescr[(int)PMBtab1[code].val],PMBtab1[code].val);  }#endif /* TRACE */  return PMBtab1[code].val;}static int Get_B_macroblock_type(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(B) (");#endif /* TRACE */  if ((code = Show_Bits(6))>=8)  {    code >>= 2;    Flush_Buffer(BMBtab0[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,4,BMBtab0[code].len);      printf("): %s (%d)\n",MBdescr[(int)BMBtab0[code].val],BMBtab0[code].val);    }#endif /* TRACE */    return BMBtab0[code].val;  }  if (code==0)  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }  Flush_Buffer(BMBtab1[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,6,BMBtab1[code].len);    printf("): %s (%d)\n",MBdescr[(int)BMBtab1[code].val],BMBtab1[code].val);  }#endif /* TRACE */  return BMBtab1[code].val;}static int Get_D_macroblock_type(){  if (!Get_Bits1())  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag=1;  }  return 1;}/* macroblock_type for pictures with spatial scalability */static int Get_I_Spatial_macroblock_type(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(I,spat) (");#endif /* TRACE */  code = Show_Bits(4);  if (code==0)  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,4,spIMBtab[code].len);    printf("): %02x\n",spIMBtab[code].val);  }#endif /* TRACE */  Flush_Buffer(spIMBtab[code].len);  return spIMBtab[code].val;}static int Get_P_Spatial_macroblock_type(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(P,spat) (");#endif /* TRACE */  code = Show_Bits(7);  if (code<2)  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }  if (code>=16)  {    code >>= 3;    Flush_Buffer(spPMBtab0[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,4,spPMBtab0[code].len);      printf("): %02x\n",spPMBtab0[code].val);    }#endif /* TRACE */    return spPMBtab0[code].val;  }  Flush_Buffer(spPMBtab1[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,7,spPMBtab1[code].len);    printf("): %02x\n",spPMBtab1[code].val);  }#endif /* TRACE */  return spPMBtab1[code].val;}static int Get_B_Spatial_macroblock_type(){  int code;  VLCtab *p;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_type(B,spat) (");#endif /* TRACE */  code = Show_Bits(9);  if (code>=64)    p = &spBMBtab0[(code>>5)-2];  else if (code>=16)    p = &spBMBtab1[(code>>2)-4];  else if (code>=8)    p = &spBMBtab2[code-8];  else  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }  Flush_Buffer(p->len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,9,p->len);    printf("): %02x\n",p->val);  }#endif /* TRACE */  return p->val;}static int Get_SNR_macroblock_type(){  int code;#ifdef TRACE			/* *CH* */  if (Trace_Flag)    printf("macroblock_type(SNR) (");#endif TRACE  code = Show_Bits(3);  if (code==0)  {    if (!Quiet_Flag)      printf("Invalid macroblock_type code\n");    Fault_Flag = 1;    return 0;  }  Flush_Buffer(SNRMBtab[code].len);#ifdef TRACE			/* *CH* */  if (Trace_Flag)  {    Print_Bits(code,3,SNRMBtab[code].len);    printf("): %s (%d)\n",MBdescr[(int)SNRMBtab[code].val],SNRMBtab[code].val);  }#endif TRACE  return SNRMBtab[code].val;}int Get_motion_code(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("motion_code (");#endif /* TRACE */  if (Get_Bits1())  {#ifdef TRACE    if (Trace_Flag)      printf("0): 0\n");#endif /* TRACE */    return 0;  }  if ((code = Show_Bits(9))>=64)  {    code >>= 6;    Flush_Buffer(MVtab0[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,3,MVtab0[code].len);      printf("%d): %d\n",        Show_Bits(1),Show_Bits(1)?-MVtab0[code].val:MVtab0[code].val);    }#endif /* TRACE */    return Get_Bits1()?-MVtab0[code].val:MVtab0[code].val;  }  if (code>=24)  {    code >>= 3;    Flush_Buffer(MVtab1[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,6,MVtab1[code].len);      printf("%d): %d\n",        Show_Bits(1),Show_Bits(1)?-MVtab1[code].val:MVtab1[code].val);    }#endif /* TRACE */    return Get_Bits1()?-MVtab1[code].val:MVtab1[code].val;  }  if ((code-=12)<0)  {    if (!Quiet_Flag)/* HACK */      printf("Invalid motion_vector code (MBA %d, pic %d)\n", global_MBA, global_pic);    Fault_Flag=1;    return 0;  }  Flush_Buffer(MVtab2[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code+12,9,MVtab2[code].len);    printf("%d): %d\n",      Show_Bits(1),Show_Bits(1)?-MVtab2[code].val:MVtab2[code].val);  }#endif /* TRACE */  return Get_Bits1() ? -MVtab2[code].val : MVtab2[code].val;}/* get differential motion vector (for dual prime prediction) */int Get_dmvector(){#ifdef TRACE  if (Trace_Flag)    printf("dmvector (");#endif /* TRACE */  if (Get_Bits(1))  {#ifdef TRACE    if (Trace_Flag)      printf(Show_Bits(1) ? "11): -1\n" : "10): 1\n");#endif /* TRACE */    return Get_Bits(1) ? -1 : 1;  }  else  {#ifdef TRACE    if (Trace_Flag)      printf("0): 0\n");#endif /* TRACE */    return 0;  }}int Get_coded_block_pattern(){  int code;#ifdef TRACE  if (Trace_Flag)    printf("coded_block_pattern_420 (");#endif /* TRACE */  if ((code = Show_Bits(9))>=128)  {    code >>= 4;    Flush_Buffer(CBPtab0[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,5,CBPtab0[code].len);      printf("): ");      Print_Bits(CBPtab0[code].val,6,6);      printf(" (%d)\n",CBPtab0[code].val);    }#endif /* TRACE */    return CBPtab0[code].val;  }  if (code>=8)  {    code >>= 1;    Flush_Buffer(CBPtab1[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,8,CBPtab1[code].len);      printf("): ");      Print_Bits(CBPtab1[code].val,6,6);      printf(" (%d)\n",CBPtab1[code].val);    }#endif /* TRACE */    return CBPtab1[code].val;  }  if (code<1)  {    if (!Quiet_Flag)      printf("Invalid coded_block_pattern code\n");    Fault_Flag = 1;    return 0;  }  Flush_Buffer(CBPtab2[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code,9,CBPtab2[code].len);    printf("): ");    Print_Bits(CBPtab2[code].val,6,6);    printf(" (%d)\n",CBPtab2[code].val);  }#endif /* TRACE */  return CBPtab2[code].val;}int Get_macroblock_address_increment(){  int code, val;#ifdef TRACE  if (Trace_Flag)    printf("macroblock_address_increment (");#endif /* TRACE */  val = 0;  while ((code = Show_Bits(11))<24)  {    if (code!=15) /* if not macroblock_stuffing */    {      if (code==8) /* if macroblock_escape */      {#ifdef TRACE        if (Trace_Flag)          printf("00000001000 ");#endif /* TRACE */        val+= 33;      }      else      {        if (!Quiet_Flag)          printf("Invalid macroblock_address_increment code\n");        Fault_Flag = 1;        return 1;      }    }    else /* macroblock suffing */    {#ifdef TRACE      if (Trace_Flag)        printf("00000001111 ");#endif /* TRACE */    }    Flush_Buffer(11);  }  /* macroblock_address_increment == 1 */  /* ('1' is in the MSB position of the lookahead) */  if (code>=1024)  {    Flush_Buffer(1);#ifdef TRACE    if (Trace_Flag)      printf("1): %d\n",val+1);#endif /* TRACE */    return val + 1;  }  /* codes 00010 ... 011xx */  if (code>=128)  {    /* remove leading zeros */    code >>= 6;    Flush_Buffer(MBAtab1[code].len);#ifdef TRACE    if (Trace_Flag)    {      Print_Bits(code,5,MBAtab1[code].len);      printf("): %d\n",val+MBAtab1[code].val);    }#endif /* TRACE */        return val + MBAtab1[code].val;  }    /* codes 00000011000 ... 0000111xxxx */  code-= 24; /* remove common base */  Flush_Buffer(MBAtab2[code].len);#ifdef TRACE  if (Trace_Flag)  {    Print_Bits(code+24,11,MBAtab2[code].len);    printf("): %d\n",val+MBAtab2[code].val);  }#endif /* TRACE */  return val + MBAtab2[code].val;}/* combined MPEG-1 and MPEG-2 stage. parse VLC and    perform dct_diff arithmetic.   MPEG-1:  ISO/IEC 11172-2 section   MPEG-2:  ISO/IEC 13818-2 section 7.2.1       Note: the arithmetic here is presented more elegantly than   the spec, yet the results, dct_diff, are the same.*/int Get_Luma_DC_dct_diff(){  int code, size, dct_diff;#ifdef TRACE/*  if (Trace_Flag)    printf("dct_dc_size_luminance: (");*/#endif /* TRACE */  /* decode length */  code = Show_Bits(5);  if (code<31)  {    size = DClumtab0[code].val;    Flush_Buffer(DClumtab0[code].len);#ifdef TRACE/*    if (Trace_Flag)    {      Print_Bits(code,5,DClumtab0[code].len);      printf("): %d",size);    }*/#endif /* TRACE */  }  else  {    code = Show_Bits(9) - 0x1f0;    size = DClumtab1[code].val;    Flush_Buffer(DClumtab1[code].len);#ifdef TRACE/*    if (Trace_Flag)    {      Print_Bits(code+0x1f0,9,DClumtab1[code].len);      printf("): %d",size);    }*/#endif /* TRACE */  }#ifdef TRACE/*  if (Trace_Flag)    printf(", dct_dc_differential (");*/#endif /* TRACE */  if (size==0)    dct_diff = 0;  else  {    dct_diff = Get_Bits(size);#ifdef TRACE/*    if (Trace_Flag)      Print_Bits(dct_diff,size,size);*/#endif /* TRACE */    if ((dct_diff & (1<<(size-1)))==0)      dct_diff-= (1<<size) - 1;  }#ifdef TRACE/*  if (Trace_Flag)    printf("): %d\n",dct_diff);*/#endif /* TRACE */  return dct_diff;}int Get_Chroma_DC_dct_diff(){  int code, size, dct_diff;#ifdef TRACE/*  if (Trace_Flag)    printf("dct_dc_size_chrominance: (");*/#endif /* TRACE */  /* decode length */  code = Show_Bits(5);  if (code<31)  {    size = DCchromtab0[code].val;    Flush_Buffer(DCchromtab0[code].len);#ifdef TRACE/*    if (Trace_Flag)    {      Print_Bits(code,5,DCchromtab0[code].len);      printf("): %d",size);    }*/#endif /* TRACE */  }  else  {    code = Show_Bits(10) - 0x3e0;    size = DCchromtab1[code].val;    Flush_Buffer(DCchromtab1[code].len);#ifdef TRACE/*    if (Trace_Flag)    {      Print_Bits(code+0x3e0,10,DCchromtab1[code].len);      printf("): %d",size);    }*/#endif /* TRACE */  }#ifdef TRACE/*   if (Trace_Flag)    printf(", dct_dc_differential (");*/#endif /* TRACE */  if (size==0)    dct_diff = 0;  else  {    dct_diff = Get_Bits(size);#ifdef TRACE/*    if (Trace_Flag)      Print_Bits(dct_diff,size,size);*/#endif /* TRACE */    if ((dct_diff & (1<<(size-1)))==0)      dct_diff-= (1<<size) - 1;  }#ifdef TRACE/*  if (Trace_Flag)    printf("): %d\n",dct_diff);*/#endif /* TRACE */  return dct_diff;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区黑丝| 日韩亚洲欧美中文三级| 欧美欧美欧美欧美首页| 久久久久久久久久久久久久久99| 亚洲麻豆国产自偷在线| 国产一区二区三区在线观看免费| 欧美日韩在线免费视频| 综合av第一页| 成人av免费在线| 久久男人中文字幕资源站| 日韩中文字幕不卡| 欧美午夜精品免费| 一区二区在线观看视频| 不卡视频在线看| 国产欧美日韩在线看| 国产综合色产在线精品| 欧美成人一区二区| 蜜臀久久99精品久久久久宅男| 色妹子一区二区| 亚洲欧美激情一区二区| 成人午夜大片免费观看| 国产精品网友自拍| 国产成a人无v码亚洲福利| 欧美精品一区二区高清在线观看 | 久久影院午夜论| 亚洲成人精品影院| 欧美亚洲动漫精品| 亚洲一区二区三区在线看| 色哟哟日韩精品| 亚洲女同女同女同女同女同69| 岛国一区二区在线观看| 国产亚洲婷婷免费| 国产麻豆成人传媒免费观看| 国产亚洲女人久久久久毛片| 国产传媒久久文化传媒| 久久精品男人的天堂| 国产xxx精品视频大全| 亚洲国产精品成人综合| 国产v综合v亚洲欧| 日韩美女视频一区二区| 日本国产一区二区| 五月婷婷综合激情| 日韩精品一区二区三区在线观看| 久久精品国产99国产| 久久伊人蜜桃av一区二区| 国产精品自拍av| 中文字幕一区二区三区乱码在线| 99久久精品费精品国产一区二区| 亚洲精品乱码久久久久久| 欧美日韩国产一级二级| 精品一区二区三区视频在线观看| 精品av综合导航| 99久久精品国产一区| 亚洲电影一区二区三区| 精品国产91久久久久久久妲己 | 日产国产欧美视频一区精品| 日韩欧美在线网站| 国产aⅴ综合色| 亚洲一区二区三区中文字幕| 欧美一区二区在线免费观看| 国产成人免费网站| 一区二区三区在线观看欧美| 69久久99精品久久久久婷婷| 国产高清无密码一区二区三区| 亚洲日本乱码在线观看| 91精品国产综合久久精品| 国产激情精品久久久第一区二区| 亚洲色欲色欲www在线观看| 91精品在线免费| 成人国产一区二区三区精品| 五月天精品一区二区三区| 国产日韩亚洲欧美综合| 欧美乱妇23p| 波多野结衣中文字幕一区二区三区| 亚洲在线视频一区| 日本一区二区三区四区| 91精品国产综合久久久久久漫画 | 国产精品麻豆99久久久久久| 欧美三电影在线| 成人晚上爱看视频| 琪琪久久久久日韩精品| 亚洲免费观看高清完整版在线观看熊| 欧美一级理论片| 欧美在线观看视频一区二区 | 中文字幕一区视频| 日韩无一区二区| 欧美性生活久久| 粉嫩av亚洲一区二区图片| 蜜桃视频第一区免费观看| 亚洲一区二区视频| 日韩毛片高清在线播放| 久久久久成人黄色影片| 欧美久久久影院| 91国内精品野花午夜精品 | 久久99久久99精品免视看婷婷 | 亚洲视频小说图片| 国产欧美精品一区二区色综合朱莉| 91麻豆精品国产自产在线观看一区| 99久久er热在这里只有精品15| 久久精品国产99| 伦理电影国产精品| 奇米影视一区二区三区小说| 午夜精品123| 亚洲综合在线电影| 亚洲欧洲制服丝袜| 亚洲欧洲综合另类在线| 亚洲欧洲日产国产综合网| 中文文精品字幕一区二区| 欧美大片在线观看| 欧美v日韩v国产v| 日韩精品一区二区三区蜜臀| 在线不卡中文字幕播放| 欧美浪妇xxxx高跟鞋交| 欧美精品日韩精品| 欧美精品一级二级三级| 91精品免费在线观看| 91麻豆精品91久久久久久清纯| 91精品久久久久久久久99蜜臂| 欧美精品视频www在线观看| 欧美性xxxxxxxx| 欧美一区二区三区视频免费播放| 在线不卡的av| 久久综合久久综合亚洲| 久久久99精品免费观看| 国产精品蜜臀av| 一区二区在线观看免费视频播放 | 国产成人av网站| 懂色一区二区三区免费观看| 波多野结衣精品在线| 色视频成人在线观看免| 欧美日本国产一区| 日韩欧美精品三级| 久久久www免费人成精品| 国产欧美中文在线| 亚洲精品精品亚洲| 日本中文字幕一区| 国产福利精品导航| 在线精品视频一区二区三四| 欧美精品久久99久久在免费线| 欧美电视剧在线观看完整版| 国产精品久久久久久久久免费丝袜| 中文字幕在线不卡一区| 亚洲福利视频一区| 国内久久婷婷综合| 色婷婷久久久久swag精品| 在线电影一区二区三区| 国产亚洲欧美色| 一区二区在线观看免费| 久久精品国产77777蜜臀| 成人午夜免费av| 69堂国产成人免费视频| 国产欧美精品国产国产专区| 亚洲国产一区在线观看| 国产成人av福利| 欧美日本一道本在线视频| 欧美激情在线免费观看| 午夜国产不卡在线观看视频| 国产精品1区二区.| 欧美日韩视频第一区| 国产精品三级电影| 美女一区二区三区| 在线观看视频一区| 国产婷婷色一区二区三区四区| 亚洲gay无套男同| 成人app在线| 2020日本不卡一区二区视频| 亚洲小说欧美激情另类| 成人污视频在线观看| 精品日韩成人av| 亚洲成人动漫在线观看| 波多野结衣91| 国产欧美精品在线观看| 麻豆视频观看网址久久| 欧美伊人精品成人久久综合97| 中文一区在线播放| 国产精品中文字幕一区二区三区| 欧美猛男男办公室激情| 亚洲精品乱码久久久久久黑人| 成人免费毛片app| 久久女同性恋中文字幕| 精品一区二区在线视频| 欧美放荡的少妇| 亚洲午夜久久久久久久久电影院| 99国产精品久| 国产精品视频麻豆| 国产成人午夜高潮毛片| 日韩精品一区二区三区视频在线观看| 亚洲成人黄色影院| 在线看不卡av| 亚洲一区日韩精品中文字幕| 91视频com| 最好看的中文字幕久久| 99riav久久精品riav| 国产精品久久午夜夜伦鲁鲁| 国产91丝袜在线18| 中文字幕国产一区| 国产91在线观看丝袜| 一区在线观看视频| 色哦色哦哦色天天综合| 一区二区三区免费在线观看|