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

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

?? video.cpp

?? This code is based on mpeg_play, available from: http://bmrc.berkeley.edu/frame/research/mpeg/
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  vid_stream->mb_width = (vid_stream->h_size + 15) / 16;  vid_stream->mb_height = (vid_stream->v_size + 15) / 16;#ifndef DISABLE_DITHER  /* If dither type is MBORDERED allocate ditherFlags. */  if (ditherType == MBORDERED_DITHER) {    vid_stream->ditherFlags =         (char *) malloc(vid_stream->mb_width*vid_stream->mb_height);  }#endif  /* Parse of aspect ratio code. */  get_bits4(data);  vid_stream->aspect_ratio = (unsigned char) data;  /* Parse off picture rate code. */  get_bits4(data);  vid_stream->picture_rate = (unsigned char) data;  /* Parse off bit rate. */  get_bits18(data);  vid_stream->bit_rate = data;  /* Flush marker bit. */  flush_bits(1);  /* Parse off vbv buffer size. */  get_bits10(data);  vid_stream->vbv_buffer_size = data;#ifdef not_def  /* Lets not bother with this.  Only increases memory image */  if (data*1024>vid_stream->max_buf_length) {    unsigned int *newbuf;    int sz=1024*data+1;    /* If they actually want a bigger buffer than we default to,       let them have it! (if we can) */    newbuf = (unsigned int *) realloc(vid_stream->buf_start, (unsigned int) 4*sz);    if (newbuf!=(unsigned int *)NULL) {      vid_stream->max_buf_length=sz;      vid_stream->buffer=          (vid_stream->buffer-vid_stream->buf_start)+newbuf;      vid_stream->buf_start=newbuf;    }}#endif  /* Parse off contrained parameter flag. */  get_bits1(data);  if (data) {    vid_stream->const_param_flag = TRUE;  } else    vid_stream->const_param_flag = FALSE;  /*   * If intra_quant_matrix_flag set, parse off intra quant matrix values.   */  get_bits1(data);  if (data) {    for (i = 0; i < 64; i++) {      get_bits8(data);      vid_stream->intra_quant_matrix[zigzag[i][1]][zigzag[i][0]] =        (unsigned char) data;    }  }  /*   * If non intra quant matrix flag set, parse off non intra quant matrix   * values.   */  get_bits1(data);  if (data) {    for (i = 0; i < 64; i++) {      get_bits8(data);      vid_stream->non_intra_quant_matrix[zigzag[i][1]][zigzag[i][0]] =        (unsigned char) data;    }  }  /* Adjust noise base matrix according to non_intra matrix */  for( i = 0; i < 8; i++ )    for( j = 0; j < 8; j++ )      vid_stream->noise_base_matrix[i][j] = (short) vid_stream->non_intra_quant_matrix[i][j];    j_rev_dct((short *) vid_stream->noise_base_matrix);    for( i = 0; i < 8; i++ )    for( j = 0; j < 8; j++ )      vid_stream->noise_base_matrix[i][j] *= vid_stream->noise_base_matrix[i][j];  /* Go to next start code. */  next_start_code(vid_stream);  /*   * If next start code is extension start code, parse off extension data.   */  if (next_bits(32, EXT_START_CODE, vid_stream)) {    flush_bits32;    if (vid_stream->ext_data != NULL) {      free(vid_stream->ext_data);      vid_stream->ext_data = NULL;    }    vid_stream->ext_data = get_ext_data(vid_stream);  }  /* If next start code is user start code, parse off user data. */  if (next_bits(32, USER_START_CODE, vid_stream)) {    flush_bits32;    if (vid_stream->user_data != NULL) {      free(vid_stream->user_data);      vid_stream->user_data = NULL;    }    vid_stream->user_data = get_ext_data(vid_stream);  }  return PARSE_OK;}/* *-------------------------------------------------------------- * * ParseGOP -- * *      Parses of group of pictures header from bit stream *      associated with vid_stream. * * Results: *      Values in gop header placed into video stream structure. * * Side effects: *      Bit stream irreversibly parsed. * *-------------------------------------------------------------- */static int ParseGOP( VidStream* vid_stream ){  unsigned int data;  /* Flush group of pictures start code. */  flush_bits32;  /* Parse off drop frame flag. */  get_bits1(data);  if (data) {    vid_stream->group.drop_flag = TRUE;  } else    vid_stream->group.drop_flag = FALSE;  /* Parse off hour component of time code. */  get_bits5(data);  vid_stream->group.tc_hours = data;  /* Parse off minute component of time code. */  get_bits6(data);  vid_stream->group.tc_minutes = data;  /* Flush marker bit. */  flush_bits(1);  /* Parse off second component of time code. */  get_bits6(data);  vid_stream->group.tc_seconds = data;  /* Parse off picture count component of time code. */  get_bits6(data);  vid_stream->group.tc_pictures = data;  /* Parse off closed gop and broken link flags. */  get_bits2(data);  if (data > 1) {    vid_stream->group.closed_gop = TRUE;    if (data > 2) {      vid_stream->group.broken_link = TRUE;    } else      vid_stream->group.broken_link = FALSE;  } else {    vid_stream->group.closed_gop = FALSE;    if (data) {      vid_stream->group.broken_link = TRUE;    } else      vid_stream->group.broken_link = FALSE;  }  /* Goto next start code. */  next_start_code(vid_stream);  /* If next start code is extension data, parse off extension data. */  if (next_bits(32, EXT_START_CODE, vid_stream)) {    flush_bits32;    if (vid_stream->group.ext_data != NULL) {      free(vid_stream->group.ext_data);      vid_stream->group.ext_data = NULL;    }    vid_stream->group.ext_data = get_ext_data(vid_stream);  }  /* If next start code is user data, parse off user data. */  if (next_bits(32, USER_START_CODE,vid_stream)) {    flush_bits32;    if (vid_stream->group.user_data != NULL) {      free(vid_stream->group.user_data);      vid_stream->group.user_data = NULL;    }    vid_stream->group.user_data = get_ext_data(vid_stream);  }  return PARSE_OK;}/* *-------------------------------------------------------------- * * ParsePicture -- * *      Parses picture header. Marks picture to be presented *      at particular time given a time stamp. * * Results: *      Values from picture header put into video stream structure. * * Side effects: *      Bit stream irreversibly parsed. * *-------------------------------------------------------------- */static int ParsePicture( VidStream* vid_stream, TimeStamp time_stamp ){  unsigned int data;  int i;  /* Flush header start code. */  flush_bits32;  /* This happens if there is a picture code before a sequence start */  if (vid_stream->ring[0] == NULL) {    printf("Warning: picture block before sequence header block\n");    return SKIP_PICTURE;  }  /* Parse off temporal reference. */  get_bits10(data);  vid_stream->picture.temp_ref = data;  /* Parse of picture type. */  get_bits3(data);  vid_stream->picture.code_type = data;  if ((vid_stream->picture.code_type == B_TYPE) &&      ((vid_stream->future == NULL) ||       ((vid_stream->past == NULL) && !(vid_stream->group.closed_gop))))    /* According to 2-D.5.1 (p D-18) this is ok, if the refereneces are OK */    return SKIP_PICTURE;  if ((vid_stream->picture.code_type == P_TYPE) && (vid_stream->future == NULL))    return SKIP_PICTURE;#ifdef ANALYSIS  StartTime();  stat_a[0].frametype = vid_stream->picture.code_type;  stat_a[0].number = 1;  stat_a[0].totsize = 45;  pictureSizeCount = bitCountRead();#endif  /* Parse off vbv buffer delay value. */  get_bits16(data);  vid_stream->picture.vbv_delay = data;  /* If P or B type frame... */  if ((vid_stream->picture.code_type == P_TYPE) ||       (vid_stream->picture.code_type == B_TYPE)) {    /* Parse off forward vector full pixel flag. */    get_bits1(data);    if (data) {      vid_stream->picture.full_pel_forw_vector = TRUE;    } else {      vid_stream->picture.full_pel_forw_vector = FALSE;    }    /* Parse of forw_r_code. */    get_bits3(data);    /* Decode forw_r_code into forw_r_size and forw_f. */    vid_stream->picture.forw_r_size = data - 1;    vid_stream->picture.forw_f = (1 << vid_stream->picture.forw_r_size);  }  /* If B type frame... */  if (vid_stream->picture.code_type == B_TYPE) {    /* Parse off back vector full pixel flag. */    get_bits1(data);    if (data)      vid_stream->picture.full_pel_back_vector = TRUE;    else      vid_stream->picture.full_pel_back_vector = FALSE;    /* Parse off back_r_code. */    get_bits3(data);    /* Decode back_r_code into back_r_size and back_f. */    vid_stream->picture.back_r_size = data - 1;    vid_stream->picture.back_f = (1 << vid_stream->picture.back_r_size);  }  /* Get extra bit picture info. */  if (vid_stream->picture.extra_info != NULL) {    free(vid_stream->picture.extra_info);    vid_stream->picture.extra_info = NULL;  }  vid_stream->picture.extra_info = get_extra_bit_info(vid_stream);  /* Goto next start code. */  next_start_code(vid_stream);  /* If start code is extension start code, parse off extension data. */  if (next_bits(32, EXT_START_CODE, vid_stream)) {    flush_bits32;    if (vid_stream->picture.ext_data != NULL) {      free(vid_stream->picture.ext_data);      vid_stream->picture.ext_data = NULL;    }    vid_stream->picture.ext_data = get_ext_data(vid_stream);  }  /* If start code is user start code, parse off user data. */  if (next_bits(32, USER_START_CODE, vid_stream)) {    flush_bits32;    if (vid_stream->picture.user_data != NULL) {      free(vid_stream->picture.user_data);      vid_stream->picture.user_data = NULL;    }    vid_stream->picture.user_data = get_ext_data(vid_stream);  }  /* Find a pict image structure in ring buffer not currently locked. */  i = 0;  while (vid_stream->ring[i]->locked != 0) {    if (++i >= RING_BUF_SIZE) {      perror("Fatal error. Ring buffer full.");      exit(1);    }  }  /* Set current pict image structure to the one just found in ring. */  vid_stream->current = vid_stream->ring[i];  /* Set time stamp. */  vid_stream->current->show_time = time_stamp;  /* Reset past macroblock address field. */  vid_stream->mblock.past_mb_addr = -1;#ifdef USE_ATI  int back, forw, current;  back = forw = -1;  current = i;  /* Look for indexes of future and past frames */  for(i = 0; i < RING_BUF_SIZE; i++)  {    if(vid_stream->future == vid_stream->ring[i]) forw = i;    if(vid_stream->past == vid_stream->ring[i]) back = i;  }  /* Start decoding a new frame */  switch(vid_stream->picture.code_type)  {    case B_TYPE:      vhar128_newdecode(vid_stream->ati_handle, forw, back, current);    break;    case P_TYPE:      vhar128_newdecode(vid_stream->ati_handle, -1, forw, current);    break;    case I_TYPE:      vhar128_newdecode(vid_stream->ati_handle, -1, -1, current);    break;  }#endif  return PARSE_OK;}/* *-------------------------------------------------------------- * * ParseSlice -- * *      Parses off slice header. * * Results: *      Values found in slice header put into video stream structure. * * Side effects: *      Bit stream irreversibly parsed. * *-------------------------------------------------------------- */static int ParseSlice( VidStream* vid_stream ){  unsigned int data;  /* Flush slice start code. */  flush_bits(24);  /* Parse off slice vertical position. */  get_bits8(data);  vid_stream->slice.vert_pos = data;  /* Parse off quantization scale. */  get_bits5(data);  vid_stream->slice.quant_scale = data;  /* Parse off extra bit slice info. */  if (vid_stream->slice.extra_info != NULL) {    free(vid_stream->slice.extra_info);    vid_stream->slice.extra_info = NULL;  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀91精品一区二区三区| 久久先锋影音av鲁色资源| 欧美午夜视频网站| 精品国产精品网麻豆系列| 国产精品天天看| 亚洲成人av一区| 国产综合久久久久影院| 一本色道久久综合狠狠躁的推荐| 欧美日韩成人综合在线一区二区| 国产精品短视频| 黄色精品一二区| 中文字幕第一页久久| 青青草伊人久久| 欧美视频一区二区三区| 日本网站在线观看一区二区三区| 不卡高清视频专区| 2024国产精品| 97超碰欧美中文字幕| 国产精品私人影院| 欧美在线观看视频在线| 亚洲免费色视频| 国产精品资源在线观看| 欧美电影免费观看高清完整版在| 亚洲综合视频在线观看| 成人高清av在线| 亚洲国产欧美日韩另类综合| 色一情一乱一乱一91av| 日本亚洲电影天堂| 国产精品嫩草影院av蜜臀| 欧美日韩久久久久久| 国产老肥熟一区二区三区| 亚洲一区二区视频| 久久蜜桃av一区二区天堂| 国产一区中文字幕| 久久精品日产第一区二区三区高清版 | 欧美精品一区二区三区蜜桃视频 | 成人亚洲一区二区一| 日韩女同互慰一区二区| 99视频热这里只有精品免费| 欧美经典三级视频一区二区三区| 欧美日韩亚州综合| 五月婷婷另类国产| 91精品国产综合久久久久久漫画 | 欧美挠脚心视频网站| 国产成人啪午夜精品网站男同| 久久精品视频免费观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 九九久久精品视频| 国产日韩欧美a| www.亚洲人| 精品中文字幕一区二区| 午夜精品成人在线| 亚洲另类在线制服丝袜| 欧美日韩一区二区三区四区| 成人一区二区三区中文字幕| 蓝色福利精品导航| 中文字幕免费在线观看视频一区| 欧美一区二区三区免费大片 | 国产午夜精品久久久久久久| 欧美美女一区二区三区| 国产资源在线一区| 日韩不卡免费视频| 五月天激情综合| 亚洲激情综合网| 亚洲欧美激情在线| 中文字幕五月欧美| 欧美福利视频导航| 欧美色图第一页| 91国产成人在线| 国产一区二区三区在线观看免费| 日欧美一区二区| 中文天堂在线一区| 欧美激情一区二区三区四区 | 国产三级欧美三级日产三级99 | 成人av动漫网站| 国产精品自拍三区| 国产成人在线免费观看| 国产精品一二三在| 国产成人免费高清| 成人晚上爱看视频| av成人免费在线观看| aaa欧美日韩| 97久久精品人人爽人人爽蜜臀 | 亚洲欧美电影院| 亚洲精选在线视频| 亚洲一二三四久久| 婷婷开心激情综合| 日本午夜一本久久久综合| 免费在线成人网| 另类小说综合欧美亚洲| 国产一区二区在线观看免费| 国产电影精品久久禁18| 成人免费毛片app| 91香蕉国产在线观看软件| 日韩av一区二区三区四区| 日本免费新一区视频| 精品一区二区三区免费毛片爱 | 国产精品美女视频| 亚洲视频电影在线| 欧美xxxxxxxxx| 欧美高清视频一二三区 | 久久久久久久久99精品| 国产调教视频一区| 亚洲女爱视频在线| 日韩电影网1区2区| 国产盗摄精品一区二区三区在线| 高清不卡一区二区在线| 国内精品久久久久影院色| 成人亚洲一区二区一| 在线观看av一区| 日韩精品一区二区在线观看| 国产农村妇女毛片精品久久麻豆| 亚洲欧美区自拍先锋| 三级亚洲高清视频| 国产jizzjizz一区二区| 欧美性大战xxxxx久久久| 日韩欧美中文字幕一区| 欧美一区二区在线免费观看| 久久色中文字幕| 亚洲国产美国国产综合一区二区 | 国产一区二区在线电影| 色婷婷久久一区二区三区麻豆| 欧美精选一区二区| 国产日韩v精品一区二区| 亚洲一区二区免费视频| 国产精品1区二区.| 欧美久久久久久蜜桃| 中文字幕亚洲一区二区av在线| 日本成人在线视频网站| 99精品久久免费看蜜臀剧情介绍| 日韩一级片网址| 日韩理论片在线| 国产一区二区三区香蕉| 欧美人与性动xxxx| 国产精品女上位| 麻豆视频一区二区| 日本高清不卡视频| 国产婷婷一区二区| 免费在线欧美视频| 欧美影院一区二区| 中文字幕亚洲一区二区av在线| 久久精品国产秦先生| 欧美私人免费视频| 亚洲天天做日日做天天谢日日欢| 国产综合色产在线精品| 欧美精品日日鲁夜夜添| 一区二区三区在线不卡| 午夜视频在线观看一区| 色综合久久中文综合久久牛| 久久精品在这里| 美女诱惑一区二区| 欧美日韩情趣电影| 亚洲精品国产一区二区三区四区在线 | 欧美大胆人体bbbb| 亚洲成国产人片在线观看| 99久久精品国产观看| 久久久久久久久久久99999| 免费成人结看片| 欧美日韩亚洲国产综合| 亚洲最色的网站| 欧洲激情一区二区| 一区二区日韩av| 日本乱人伦aⅴ精品| 亚洲精品乱码久久久久久日本蜜臀 | 欧美激情自拍偷拍| 国产成人午夜精品影院观看视频 | 男男成人高潮片免费网站| 欧美日韩久久一区二区| 五月婷婷久久综合| 3d动漫精品啪啪1区2区免费 | 99亚偷拍自图区亚洲| 国产精品久久久久久福利一牛影视| 国产高清在线精品| 欧美高清在线视频| kk眼镜猥琐国模调教系列一区二区| 国产日产欧美精品一区二区三区| 狠狠色狠狠色合久久伊人| 久久美女艺术照精彩视频福利播放| 国内精品免费**视频| 国产喂奶挤奶一区二区三区| 成人激情免费网站| 亚洲人亚洲人成电影网站色| 91久久免费观看| 亚洲成在线观看| 日韩欧美你懂的| 国产成人夜色高潮福利影视| 国产精品午夜久久| 91一区二区在线| 午夜影视日本亚洲欧洲精品| 欧美一区二区三区四区五区| 久久成人久久鬼色| 国产精品五月天| 91精品1区2区| 美腿丝袜亚洲三区| 欧美激情资源网| 欧美性生活影院| 精品一区二区三区免费| 国产精品网站一区| 欧美日韩精品是欧美日韩精品| 美女一区二区三区在线观看|