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

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

?? video.cpp

?? This code is based on mpeg_play, available from: http://bmrc.berkeley.edu/frame/research/mpeg/
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  vid_stream->slice.extra_info = get_extra_bit_info(vid_stream);  /* Reset past intrablock address. */  vid_stream->mblock.past_intra_addr = -2;  /* Reset previous recon motion vectors. */  vid_stream->mblock.recon_right_for_prev = 0;  vid_stream->mblock.recon_down_for_prev = 0;  vid_stream->mblock.recon_right_back_prev = 0;  vid_stream->mblock.recon_down_back_prev = 0;  /* Reset macroblock address. */  vid_stream->mblock.mb_address = ((vid_stream->slice.vert_pos - 1) *                                   vid_stream->mb_width) - 1;  /* Reset past dct dc y, cr, and cb values. */#ifdef USE_ATI  vid_stream->block.dct_dc_y_past = 0;  vid_stream->block.dct_dc_cr_past = 0;  vid_stream->block.dct_dc_cb_past = 0;#else  vid_stream->block.dct_dc_y_past = 1024 << 3;  vid_stream->block.dct_dc_cr_past = 1024 << 3;  vid_stream->block.dct_dc_cb_past = 1024 << 3;#endif  return PARSE_OK;}/* *-------------------------------------------------------------- * * ParseMacroBlock -- * *      Parseoff macroblock. Reconstructs DCT values. Applies *      inverse DCT, reconstructs motion vectors, calculates and *      set pixel values for macroblock in current pict image *      structure. * * Results: *      Here's where everything really happens. Welcome to the *      heart of darkness. * * Side effects: *      Bit stream irreversibly parsed off. * *-------------------------------------------------------------- */static int ParseMacroBlock( VidStream* vid_stream ){  int addr_incr;  unsigned int data;  int mask, i, recon_right_for, recon_down_for, recon_right_back,      recon_down_back;  int zero_block_flag;  BOOLEAN mb_quant = 0, mb_motion_forw = 0, mb_motion_back = 0,       mb_pattern = 0;#ifndef DISABLE_DITHER  int no_dith_flag = 0;  int ditherType = vid_stream->ditherType;#endif#ifdef ANALYSIS  mbSizeCount = bitCountRead();#endif#ifdef USE_ATI  /* Empty macroblock */  vid_stream->block.dct_recon[0][0] = 0xFFFFFFFF;  vid_stream->block.dct_recon[1][0] = 0xFFFFFFFF;  vid_stream->block.dct_recon[2][0] = 0xFFFFFFFF;  vid_stream->block.dct_recon[3][0] = 0xFFFFFFFF;  vid_stream->block.dct_recon[4][0] = 0xFFFFFFFF;  vid_stream->block.dct_recon[5][0] = 0xFFFFFFFF;#endif  /*   * Parse off macroblock address increment and add to macroblock address.   */  do  {    unsigned int ind;    show_bits11(ind);    DecodeMBAddrInc(addr_incr);    if (mb_addr_inc[ind].num_bits==0)    {      addr_incr = 1;    }    if (addr_incr == MB_ESCAPE)    {      vid_stream->mblock.mb_address += 33;      addr_incr = MB_STUFFING;    }  } while (addr_incr == MB_STUFFING);  vid_stream->mblock.mb_address += addr_incr;  if( vid_stream->mblock.mb_address > (int) (vid_stream->mb_height *                                       vid_stream->mb_width - 1) )    return SKIP_TO_START_CODE;  /*   * If macroblocks have been skipped, process skipped macroblocks.   */  if (vid_stream->mblock.mb_address - vid_stream->mblock.past_mb_addr > 1) {    if (vid_stream->picture.code_type == P_TYPE)      ProcessSkippedPFrameMBlocks(vid_stream);    else if (vid_stream->picture.code_type == B_TYPE)      ProcessSkippedBFrameMBlocks(vid_stream);  }  /* Set past macroblock address to current macroblock address. */  vid_stream->mblock.past_mb_addr = vid_stream->mblock.mb_address;  /* Based on picture type decode macroblock type. */  switch (vid_stream->picture.code_type) {  case I_TYPE:    DecodeMBTypeI(mb_quant, mb_motion_forw, mb_motion_back, mb_pattern,                  vid_stream->mblock.mb_intra);    break;  case P_TYPE:    DecodeMBTypeP(mb_quant, mb_motion_forw, mb_motion_back, mb_pattern,                  vid_stream->mblock.mb_intra);    break;  case B_TYPE:    DecodeMBTypeB(mb_quant, mb_motion_forw, mb_motion_back, mb_pattern,                  vid_stream->mblock.mb_intra);    break;  case D_TYPE:    fprintf(stderr, "ERROR:  MPEG-1 Streams with D-frames are not supported\n");    exit(1);  }  /* If quantization flag set, parse off new quantization scale. */  if (mb_quant == TRUE) {    get_bits5(data);    vid_stream->slice.quant_scale = data;  }  /* If forward motion vectors exist... */  if (mb_motion_forw == TRUE) {    /* Parse off and decode horizontal forward motion vector. */    DecodeMotionVectors(vid_stream->mblock.motion_h_forw_code);    /* If horiz. forward r data exists, parse off. */    if ((vid_stream->picture.forw_f != 1) &&        (vid_stream->mblock.motion_h_forw_code != 0)) {      get_bitsn(vid_stream->picture.forw_r_size, data);      vid_stream->mblock.motion_h_forw_r = data;    }    /* Parse off and decode vertical forward motion vector. */    DecodeMotionVectors(vid_stream->mblock.motion_v_forw_code);    /* If vert. forw. r data exists, parse off. */    if ((vid_stream->picture.forw_f != 1) &&        (vid_stream->mblock.motion_v_forw_code != 0)) {      get_bitsn(vid_stream->picture.forw_r_size, data);      vid_stream->mblock.motion_v_forw_r = data;    }  }  /* If back motion vectors exist... */  if (mb_motion_back == TRUE) {    /* Parse off and decode horiz. back motion vector. */    DecodeMotionVectors(vid_stream->mblock.motion_h_back_code);    /* If horiz. back r data exists, parse off. */    if ((vid_stream->picture.back_f != 1) &&        (vid_stream->mblock.motion_h_back_code != 0)) {      get_bitsn(vid_stream->picture.back_r_size, data);      vid_stream->mblock.motion_h_back_r = data;    }    /* Parse off and decode vert. back motion vector. */    DecodeMotionVectors(vid_stream->mblock.motion_v_back_code);    /* If vert. back r data exists, parse off. */    if ((vid_stream->picture.back_f != 1) &&        (vid_stream->mblock.motion_v_back_code != 0)) {      get_bitsn(vid_stream->picture.back_r_size, data);      vid_stream->mblock.motion_v_back_r = data;    }  }#ifdef ANALYSIS  if (vid_stream->mblock.mb_intra) {    stat_a[0].i_mbnum++;    mbCBPPtr = stat_a[0].i_mbcbp;    mbCoeffPtr = stat_a[0].i_mbcoeff;    mbSizePtr = &(stat_a[0].i_mbsize);  } else if (mb_motion_back && mb_motion_forw) {    stat_a[0].bi_mbnum++;    mbCBPPtr = stat_a[0].bi_mbcbp;    mbCoeffPtr = stat_a[0].bi_mbcoeff;    mbSizePtr = &(stat_a[0].bi_mbsize);  } else if (mb_motion_back) {    stat_a[0].b_mbnum++;    mbCBPPtr = stat_a[0].b_mbcbp;    mbCoeffPtr = stat_a[0].b_mbcoeff;    mbSizePtr = &(stat_a[0].b_mbsize);  } else {    stat_a[0].p_mbnum++;    mbCBPPtr = stat_a[0].p_mbcbp;    mbCoeffPtr = stat_a[0].p_mbcoeff;    mbSizePtr = &(stat_a[0].p_mbsize);  }#endif  /* If mblock pattern flag set, parse and decode CBP (code block pattern). */  if (mb_pattern == TRUE) {    DecodeCBP(vid_stream->mblock.cbp);  }  /* Otherwise, set CBP to zero. */  else    vid_stream->mblock.cbp = 0;#ifdef ANALYSIS  mbCBPPtr[vid_stream->mblock.cbp]++;#endif  /* Reconstruct motion vectors depending on picture type. */  if (vid_stream->picture.code_type == P_TYPE) {    /*     * If no forw motion vectors, reset previous and current vectors to 0.     */    if (!mb_motion_forw) {      recon_right_for = 0;      recon_down_for = 0;      vid_stream->mblock.recon_right_for_prev = 0;      vid_stream->mblock.recon_down_for_prev = 0;    }    /*     * Otherwise, compute new forw motion vectors. Reset previous vectors to     * current vectors.     */    else {      ComputeForwVector(&recon_right_for, &recon_down_for, vid_stream);    }  }  if (vid_stream->picture.code_type == B_TYPE) {    /* Reset prev. and current vectors to zero if mblock is intracoded. */    if (vid_stream->mblock.mb_intra) {      vid_stream->mblock.recon_right_for_prev = 0;      vid_stream->mblock.recon_down_for_prev = 0;      vid_stream->mblock.recon_right_back_prev = 0;      vid_stream->mblock.recon_down_back_prev = 0;    } else {            /* If no forw vectors, current vectors equal prev. vectors. */            if (!mb_motion_forw) {        recon_right_for = vid_stream->mblock.recon_right_for_prev;        recon_down_for = vid_stream->mblock.recon_down_for_prev;      }      /*       * Otherwise compute forw. vectors. Reset prev vectors to new values.       */            else {        ComputeForwVector(&recon_right_for, &recon_down_for, vid_stream);      }            /* If no back vectors, set back vectors to prev back vectors. */            if (!mb_motion_back) {        recon_right_back = vid_stream->mblock.recon_right_back_prev;        recon_down_back = vid_stream->mblock.recon_down_back_prev;      }      /* Otherwise compute new vectors and reset prev. back vectors. */      else {        ComputeBackVector(&recon_right_back, &recon_down_back, vid_stream);      }      /*       * Store vector existence flags in structure for possible skipped       * macroblocks to follow.       */      vid_stream->mblock.bpict_past_forw = mb_motion_forw;      vid_stream->mblock.bpict_past_back = mb_motion_back;    }  }#ifndef DISABLE_DITHER  /* For each possible block in macroblock. */  if (ditherType == GRAY_DITHER ||      ditherType == GRAY2_DITHER ||      ditherType == GRAY256_DITHER ||      ditherType == GRAY2562_DITHER ||      ditherType == MONO_DITHER ||      ditherType == MONO_THRESHOLD) {    for (mask = 32, i = 0; i < 4; mask >>= 1, i++) {      /* If block exists... */      if ((vid_stream->mblock.mb_intra) || (vid_stream->mblock.cbp & mask)) {        zero_block_flag = 0;        ParseReconBlock(i, vid_stream);      } else {        zero_block_flag = 1;      }      /* If macroblock is intra coded... */      if (vid_stream->mblock.mb_intra) {        ReconIMBlock(vid_stream, i);      } else if (mb_motion_forw && mb_motion_back) {        ReconBiMBlock(vid_stream, i, recon_right_for, recon_down_for,                    recon_right_back, recon_down_back, zero_block_flag);      } else if (mb_motion_forw || (vid_stream->picture.code_type == P_TYPE)) {        ReconPMBlock(vid_stream, i, recon_right_for, recon_down_for,                    zero_block_flag);      } else if (mb_motion_back) {        ReconBMBlock(vid_stream, i, recon_right_back, recon_down_back,                    zero_block_flag);      }    }    /* Kill the Chrominance blocks... */    if ((vid_stream->mblock.mb_intra) || (vid_stream->mblock.cbp & 0x2)) {        ParseAwayBlock(4, vid_stream);    }    if ((vid_stream->mblock.mb_intra) || (vid_stream->mblock.cbp & 0x1)) {        ParseAwayBlock(5, vid_stream);    }  } else {    if ((ditherType == MBORDERED_DITHER) &&        (vid_stream->mblock.cbp == 0) &&        (vid_stream->picture.code_type == 3) &&        (!vid_stream->mblock.mb_intra) &&        (!(mb_motion_forw && mb_motion_back))) {      MBOrderedDitherDisplayCopy(vid_stream, vid_stream->mblock.mb_address,                      mb_motion_forw, recon_right_for, recon_down_for,                      mb_motion_back, recon_right_back, recon_down_back,                     vid_stream->past->display, vid_stream->future->display);      vid_stream->ditherFlags[vid_stream->mblock.mb_address] = 0;      no_dith_flag = 1;    }    else {#endif      for (mask = 32, i = 0; i < 6; mask >>= 1, i++) {                /* If block exists... */        if ((vid_stream->mblock.mb_intra) || (vid_stream->mblock.cbp & mask)) {          zero_block_flag = 0;          ParseReconBlock(i, vid_stream);        } else {          zero_block_flag = 1;        }#ifndef USE_ATI        /* If macroblock is intra coded... */        if (vid_stream->mblock.mb_intra) {          ReconIMBlock(vid_stream, i);        } else if (mb_motion_forw && mb_motion_back) {          ReconBiMBlock(vid_stream, i, recon_right_for, recon_down_for,                        recon_right_back, recon_down_back, zero_block_flag);        } else if (mb_motion_forw || (vid_stream->picture.code_type == P_TYPE)) {          ReconPMBlock(vid_stream, i, recon_right_for, recon_down_for,                       zero_block_flag);        } else if (mb_motion_back) {          ReconBMBlock(vid_stream, i, recon_right_back, recon_down_back,                       zero_block_flag);        }#endif      }#ifdef USE_ATI      vhar128_macroblock(vid_stream->ati_handle,			 (vid_stream->mblock.mb_address % vid_stream->mb_width) << 4,			 (vid_stream->mblock.mb_address / vid_stream->mb_width) << 4,			 vid_stream->mblock.mb_intra,			 mb_motion_back, mb_motion_forw,			 recon_right_back, recon_down_back,			 recon_right_for, recon_down_for,			 vid_stream->block.dct_recon);#endif#ifndef DISABLE_DITHER    }  }#endif#ifndef DISABLE_DITHER  if ((ditherType == MBORDERED_DITHER) && (!no_dith_flag)) {    if ((vid_stream->picture.code_type == 2) &&        (vid_stream->mblock.cbp == 0) &&        (!vid_stream->mblock.mb_intra)) {      MBOrderedDitherDisplayCopy(vid_stream, vid_stream->mblock.mb_address,                                 1, recon_right_for, recon_down_for,                                 0, 0, 0,                                 vid_stream->future->display,                                 (unsigned char *) NULL);      vid_stream->ditherFlags[vid_stream->mblock.mb_address] = 0;    }    else {      vid_stream->ditherFlags[vid_stream->mblock.mb_address] = 1;    }  }#endif  /* If D Type picture, flush marker bit. */  if (vid_stream->picture.code_type == 4)    flush_bits(1);  /* If macroblock was intracoded, set macroblock past intra address. */  if (vid_stream->mblock.mb_intra)    vid_stream->mblock.past_intra_addr =      vid_stream->mblock.mb_address;  /* Store macroblock error for filter info */  if (vid_stream->mblock.mb_intra)    vid_stream->current->mb_qscale[vid_stream->mblock.mb_address] = 0;  else    vid_stream->current->mb_qscale[vid_stream->mblock.mb_address] = vid_stream->slice.quant_scale;#ifdef ANALYSIS  *mbSizePtr += bitCountRead() - mbSizeCount;#endif  return PARSE_OK;}/* software decoder follows */#ifndef USE_ATI/* *-------------------------------------------------------------- * * ReconIMBlock -- * *        Reconstructs intra coded macroblock. * * Results: *        None. * * Side effects: *        None. * *-------------------------------------------------------------- */#if defined(USE_CROP_TABLE) && !defined(NDEBUG)/* If people really 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米四色…亚洲| 在线不卡一区二区| 欧美人妇做爰xxxⅹ性高电影| 精品日韩一区二区| 亚洲精品国产视频| 黄色小说综合网站| 欧美人妇做爰xxxⅹ性高电影| 国产日本亚洲高清| 青青草97国产精品免费观看| 日本精品一级二级| 国产精品丝袜久久久久久app| 麻豆免费精品视频| 69p69国产精品| 亚洲中国最大av网站| 成年人午夜久久久| 日本一区二区不卡视频| 九九国产精品视频| 91麻豆精品国产91久久久更新时间 | 欧美日韩日本视频| 综合激情成人伊人| 成人精品视频一区二区三区| 精品久久国产老人久久综合| 婷婷中文字幕综合| 欧美日韩一区二区三区四区五区| 中文字幕亚洲不卡| av在线不卡网| 国产精品蜜臀av| 福利一区二区在线观看| 国产日韩欧美制服另类| 国产一区二区三区免费看| 精品人在线二区三区| 麻豆91精品视频| 日韩美女视频在线| 狠狠色丁香久久婷婷综合_中| 欧美丰满少妇xxxxx高潮对白| 五月激情丁香一区二区三区| 精品视频123区在线观看| 亚洲国产视频在线| 欧美精品18+| 美女一区二区久久| 亚洲精品一区二区三区蜜桃下载| 激情五月激情综合网| 久久精品这里都是精品| 成人免费视频app| 中文字幕一区二区三区四区| 色婷婷一区二区三区四区| 一区二区三区在线视频观看58| 一本色道久久综合亚洲91| 亚洲影视资源网| 欧美日韩国产免费| 精品一区二区影视| 亚洲欧洲av色图| 欧美三日本三级三级在线播放| 日韩精品视频网| 久久久蜜桃精品| 一本大道久久精品懂色aⅴ| 亚洲国产婷婷综合在线精品| 日韩三级免费观看| 东方欧美亚洲色图在线| 亚洲一区二区影院| 欧美一级在线视频| eeuss鲁片一区二区三区在线看| 尤物视频一区二区| 日韩欧美国产精品一区| 成人精品视频一区二区三区| 亚洲小说春色综合另类电影| 日韩一区国产二区欧美三区| 成a人片亚洲日本久久| 香蕉久久夜色精品国产使用方法| 精品国产三级电影在线观看| 色综合一个色综合亚洲| 蜜桃av一区二区三区电影| 国产精品色哟哟网站| 欧美剧情片在线观看| 丁香啪啪综合成人亚洲小说 | 亚洲免费观看高清完整版在线观看 | 91 com成人网| 国产成人av资源| 日本在线播放一区二区三区| 中文字幕日韩欧美一区二区三区| 日韩亚洲欧美综合| 91黄色免费观看| 顶级嫩模精品视频在线看| 日本最新不卡在线| 亚洲综合色视频| 国产片一区二区| 日韩三级高清在线| 欧美性色综合网| 成人av在线播放网址| 久久精品国产在热久久| 亚洲免费观看高清在线观看| 久久青草国产手机看片福利盒子 | 日韩一级免费一区| 在线观看日韩毛片| 99久久综合精品| 国产精品自拍三区| 伦理电影国产精品| 丝袜亚洲另类欧美综合| 亚洲欧洲精品成人久久奇米网| 亚洲精品在线观看网站| 欧美福利电影网| 欧美色精品在线视频| 日本韩国一区二区三区| 成人黄色片在线观看| 国产老妇另类xxxxx| 日本特黄久久久高潮| 天天综合网 天天综合色| 亚洲主播在线播放| 一区二区三区欧美视频| 亚洲色大成网站www久久九九| 国产精品乱码一区二三区小蝌蚪| 久久网这里都是精品| 精品久久久三级丝袜| 精品日产卡一卡二卡麻豆| 欧美成人免费网站| 精品日韩在线一区| 精品乱人伦小说| 久久久久久久久久电影| 久久免费美女视频| 国产日韩在线不卡| 国产亚洲人成网站| 国产精品久久久久久久蜜臀| 中文字幕 久热精品 视频在线| 欧美国产一区在线| 亚洲欧洲性图库| 亚洲男人电影天堂| 亚洲福利视频三区| 日韩电影在线观看电影| 久久精品二区亚洲w码| 韩国v欧美v亚洲v日本v| 国产大陆a不卡| 91在线视频18| 欧美剧在线免费观看网站 | 久久久久久久一区| 国产精品久久免费看| 亚洲精品一二三| 免费成人在线播放| 国产精品12区| 91精品福利在线| 日韩欧美在线观看一区二区三区| 欧美精品一区二区三区久久久| 欧美国产国产综合| 亚洲综合一区二区| 久久99深爱久久99精品| 国产成人在线看| 欧美影院一区二区三区| 日韩欧美一级二级三级久久久| 国产日韩精品视频一区| 亚洲一区二区三区视频在线播放| 青草av.久久免费一区| a亚洲天堂av| 欧美一级理论片| 国产精品乱码一区二三区小蝌蚪| 亚洲午夜电影在线| 国产精品88888| 欧美剧情片在线观看| 久久精品亚洲精品国产欧美 | 国产精品久久久久久久午夜片| 亚洲一区二区三区激情| 国精产品一区一区三区mba桃花| 97久久超碰国产精品| 精品国产免费久久 | 色婷婷综合激情| 精品国产乱码久久久久久夜甘婷婷| 亚洲欧美中日韩| 久久电影网站中文字幕| 在线观看日韩国产| 欧美激情一区二区三区蜜桃视频| 日韩专区中文字幕一区二区| 成人黄页在线观看| 亚洲精品一区二区精华| 亚洲国产综合视频在线观看| av男人天堂一区| 久久久午夜精品| 麻豆91小视频| 91精品国产福利| 亚洲国产精品久久艾草纯爱| 福利一区在线观看| 亚洲精品在线电影| 久久av中文字幕片| 欧美日本一区二区三区四区| 亚洲视频一区在线观看| 国产高清成人在线| 精品剧情v国产在线观看在线| 丝瓜av网站精品一区二区| 一本色道久久综合狠狠躁的推荐| 中文字幕精品三区| 国产一区二区不卡在线| 日韩精品一区二区三区视频播放 | 午夜精品视频一区| 日本高清成人免费播放| 国产女人水真多18毛片18精品视频 | 高清久久久久久| 久久久久久影视| 国产老女人精品毛片久久| 欧美mv和日韩mv国产网站| 麻豆高清免费国产一区| 欧美一区二区日韩一区二区| 日韩精品1区2区3区| 欧美三级视频在线|