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

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

?? output.c

?? the newest JM software by h.264 JVT official reference model.
?? C
?? 第 1 頁 / 共 2 頁
字號:
      ret = write(p_out, buf, (p->size_y_cr-crop_bottom-crop_top)*(p->size_x_cr-crop_right-crop_left)*symbol_size_in_bytes);
      if (ret != ((p->size_y_cr-crop_bottom-crop_top)*(p->size_x_cr-crop_right-crop_left)*symbol_size_in_bytes))
      {
        error ("write_out_picture: error writing to YUV output file.", 500);
      }
    }
  }

  free(buf);

//  fsync(p_out);
}

/*!
 ************************************************************************
 * \brief
 *    Initialize output buffer for direct output
 ************************************************************************
 */
void init_out_buffer()
{
  out_buffer = alloc_frame_store();
}

/*!
 ************************************************************************
 * \brief
 *    Uninitialize output buffer for direct output
 ************************************************************************
 */
void uninit_out_buffer()
{
  free_frame_store(out_buffer);
  out_buffer=NULL;
}

/*!
 ************************************************************************
 * \brief
 *    Initialize picture memory with (Y:0,U:128,V:128)
 ************************************************************************
 */
void clear_picture(StorablePicture *p)
{
  int i;

  if (img->bitdepth_luma == 8)
  {
    // this does not seem to be right since it seems to work only for imgpel == byte
    // should be fixed
    for(i=0;i<p->size_y;i++)
      memset(p->imgY[i], img->dc_pred_value_comp[0], p->size_x*sizeof(imgpel));
  }
  else
  {
    int j;
    for(i=0;i < p->size_y; i++)
    for(j=0;j < p->size_x; j++)
      p->imgY[i][j] = img->dc_pred_value_comp[0];
  }

  if (img->bitdepth_chroma == 8)
  {
    for(i=0;i<p->size_y_cr;i++)
      memset(p->imgUV[0][i], img->dc_pred_value_comp[1], p->size_x_cr*sizeof(imgpel));
    for(i=0;i<p->size_y_cr;i++)
      memset(p->imgUV[1][i], img->dc_pred_value_comp[2], p->size_x_cr*sizeof(imgpel));
  }
  else
  {  
   int k, j;
   for (k = 0; k < 2; k++)
   {
      for(i=0;i<p->size_y_cr;i++)
      for(j=0;j < p->size_x_cr; j++)
        p->imgUV[k][i][j] = img->dc_pred_value_comp[1];
   }
  }
}

/*!
 ************************************************************************
 * \brief
 *    Write out not paired direct output fields. A second empty field is generated
 *    and combined into the frame buffer.
 * \param fs
 *    FrameStore that contains a single field
 * \param p_out
 *    Output file
 ************************************************************************
 */
void write_unpaired_field(FrameStore* fs, int p_out)
{
  StorablePicture *p;
  assert (fs->is_used<3);
  if(fs->is_used &1)
  {
    // we have a top field
    // construct an empty bottom field
    p = fs->top_field;
    fs->bottom_field = alloc_storable_picture(BOTTOM_FIELD, p->size_x, p->size_y, p->size_x_cr, p->size_y_cr);
    fs->bottom_field->chroma_format_idc = p->chroma_format_idc;
    clear_picture(fs->bottom_field);
    dpb_combine_field_yuv(fs);
    write_picture (fs->frame, p_out, TOP_FIELD);
  }

  if(fs->is_used &2)
  {
    // we have a bottom field
    // construct an empty top field
    p = fs->bottom_field;
    fs->top_field = alloc_storable_picture(TOP_FIELD, p->size_x, p->size_y, p->size_x_cr, p->size_y_cr);
    clear_picture(fs->top_field);
    fs->top_field->chroma_format_idc = p->chroma_format_idc;
    clear_picture(fs->top_field);
    fs ->top_field->frame_cropping_flag = fs->bottom_field->frame_cropping_flag;
    if(fs ->top_field->frame_cropping_flag)
    {
      fs ->top_field->frame_cropping_rect_top_offset = fs->bottom_field->frame_cropping_rect_top_offset;
      fs ->top_field->frame_cropping_rect_bottom_offset = fs->bottom_field->frame_cropping_rect_bottom_offset;
      fs ->top_field->frame_cropping_rect_left_offset = fs->bottom_field->frame_cropping_rect_left_offset;
      fs ->top_field->frame_cropping_rect_right_offset = fs->bottom_field->frame_cropping_rect_right_offset;
    }
    dpb_combine_field_yuv(fs);
    write_picture (fs->frame, p_out, BOTTOM_FIELD);
  }

  fs->is_used=3;
}

/*!
 ************************************************************************
 * \brief
 *    Write out unpaired fields from output buffer.
 * \param p_out
 *    Output file
 ************************************************************************
 */
void flush_direct_output(int p_out)
{
  write_unpaired_field(out_buffer, p_out);

  free_storable_picture(out_buffer->frame);
  out_buffer->frame = NULL;
  free_storable_picture(out_buffer->top_field);
  out_buffer->top_field = NULL;
  free_storable_picture(out_buffer->bottom_field);
  out_buffer->bottom_field = NULL;
  out_buffer->is_used = 0;
}


/*!
 ************************************************************************
 * \brief
 *    Write a frame (from FrameStore)
 * \param fs
 *    FrameStore containing the frame
 * \param p_out
 *    Output file
 ************************************************************************
 */
void write_stored_frame( FrameStore *fs,int p_out)
{
  // make sure no direct output field is pending
  flush_direct_output(p_out);

  if (fs->is_used<3)
  {
    write_unpaired_field(fs, p_out);
  }
  else
  {
    write_picture(fs->frame, p_out, FRAME);
  }

  fs->is_output = 1;
}


/*!
 ************************************************************************
 * \brief
 *    Directly output a picture without storing it in the DPB. Fields
 *    are buffered before they are written to the file.
 * \param p
 *    Picture for output
 * \param p_out
 *    Output file
 ************************************************************************
 */
void direct_output(StorablePicture *p, int p_out)
{
  switch ( p->structure )
  {
  case FRAME:
    // we have a frame (or complementary field pair)
    // so output it directly
    flush_direct_output(p_out);
    write_picture (p, p_out, FRAME);
    free_storable_picture(p);
    return;
    break;
  case TOP_FIELD:
    if (out_buffer->is_used &1)
      flush_direct_output(p_out);
    out_buffer->top_field = p;
    out_buffer->is_used |= 1;
    break;
  case BOTTOM_FIELD:
    if (out_buffer->is_used &2)
      flush_direct_output(p_out);
    out_buffer->bottom_field = p;
    out_buffer->is_used |= 2;
    break;
  default:
    printf("invalid picture type\n");
    break;
  }

  if (out_buffer->is_used == 3)
  {
    // we have both fields, so output them
    dpb_combine_field_yuv(out_buffer);
    write_picture (out_buffer->frame, p_out, FRAME);
    free_storable_picture(out_buffer->frame);
    out_buffer->frame = NULL;
    free_storable_picture(out_buffer->top_field);
    out_buffer->top_field = NULL;
    free_storable_picture(out_buffer->bottom_field);
    out_buffer->bottom_field = NULL;
    out_buffer->is_used = 0;
  }
}


/*!
************************************************************************
* \brief
*    For adaptive frame/field coding remove dangling top field from direct
*    output frame version instead.
* \param p
*    Picture for output
* \param p_out
*    Output file
************************************************************************
*/
void direct_output_paff(StorablePicture *p, int p_out)
{
  printf("Warning!!! Frame can't fit in DPB. Displayed out of sequence.\n");
  free_storable_picture(out_buffer->frame);
  out_buffer->frame = NULL;
  free_storable_picture(out_buffer->top_field);
  out_buffer->top_field = NULL;
  free_storable_picture(out_buffer->bottom_field);
  out_buffer->bottom_field = NULL;
  out_buffer->is_used = 0;

  direct_output(p, p_out);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀精品久久久久久蜜臀| 欧美在线免费视屏| 欧亚洲嫩模精品一区三区| 欧美一级欧美三级在线观看| 欧美国产一区二区在线观看 | 亚洲v日本v欧美v久久精品| 久久99精品久久久久婷婷| 色网综合在线观看| 国产午夜一区二区三区| 男女激情视频一区| 欧美性xxxxx极品少妇| 国产欧美一区在线| 经典三级在线一区| 7777精品伊人久久久大香线蕉超级流畅 | 精品国产亚洲一区二区三区在线观看| 亚洲欧美日韩系列| 成人国产一区二区三区精品| 日韩亚洲欧美一区| 亚洲图片欧美视频| 日本韩国精品在线| 亚洲女人****多毛耸耸8| 国产一区二区中文字幕| 精品久久久久久综合日本欧美| 亚洲国产视频a| 91精品福利在线| 国产精品国产三级国产有无不卡 | 一区二区三区在线免费观看| yourporn久久国产精品| 久久亚洲捆绑美女| 国产高清精品网站| 国产精品美女久久久久久2018| 狠狠v欧美v日韩v亚洲ⅴ| 精品久久久久久久久久久久包黑料 | 欧美午夜一区二区三区免费大片| 1000精品久久久久久久久| 成人涩涩免费视频| 国产精品久久免费看| caoporn国产精品| 成人欧美一区二区三区白人| 91在线云播放| 亚洲国产人成综合网站| 欧美猛男超大videosgay| 丝袜诱惑亚洲看片| 日韩午夜激情视频| 国产成人免费高清| 亚洲男人都懂的| 欧美日韩成人综合天天影院| 日韩影院在线观看| 国产亚洲人成网站| 91偷拍与自偷拍精品| 亚洲一二三区视频在线观看| 欧美日本在线看| 国产麻豆午夜三级精品| 欧美韩国日本不卡| 欧美日韩一区中文字幕| 免费成人在线观看视频| 国产日韩精品久久久| 91麻豆精品视频| 首页国产丝袜综合| 国产亚洲人成网站| 欧美日韩亚州综合| 韩日欧美一区二区三区| 国产精品电影一区二区| 欧美午夜不卡视频| 国产成人在线免费| 亚洲成人av一区二区| 国产日韩欧美a| 欧美性一二三区| 国产一区二区三区久久悠悠色av| 亚洲色图欧美在线| 精品捆绑美女sm三区| 色综合天天综合网国产成人综合天| 首页国产丝袜综合| 中文字幕一区二区在线播放| 欧美日韩精品一区二区天天拍小说| 国产永久精品大片wwwapp| 亚洲午夜精品17c| 久久久久久久久伊人| 欧美天堂一区二区三区| 国产成人综合在线观看| 日韩国产一二三区| 亚洲激情在线播放| 国产欧美精品日韩区二区麻豆天美| 欧美日韩国产成人在线免费| eeuss鲁片一区二区三区| 久久综合综合久久综合| 亚洲一卡二卡三卡四卡五卡| 久久久99精品久久| 日韩一区二区免费在线电影| 日本道色综合久久| 国产成a人亚洲精品| 蜜桃久久久久久久| 性久久久久久久久久久久| 亚洲女同一区二区| 中文字幕乱码久久午夜不卡| 精品国产麻豆免费人成网站| 欧美日韩三级视频| 欧美午夜电影在线播放| 色视频欧美一区二区三区| 国产精一品亚洲二区在线视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲动漫第一页| 一区二区三区四区视频精品免费 | 久久久久久久久久电影| 日韩欧美的一区| 日韩午夜激情av| 制服丝袜激情欧洲亚洲| 在线亚洲人成电影网站色www| 成人av动漫网站| 成人深夜在线观看| 成人动漫视频在线| 99精品欧美一区二区三区综合在线| 国产精品一区免费视频| 国产乱码精品一品二品| 国产河南妇女毛片精品久久久| 国产一区在线观看麻豆| 国产成人aaa| 成人福利视频在线看| 91丨porny丨蝌蚪视频| av午夜一区麻豆| 99综合电影在线视频| 99久久国产免费看| 色婷婷精品久久二区二区蜜臂av| 99re在线视频这里只有精品| 91在线视频18| 欧美色图在线观看| 欧美日韩成人在线| 精品91自产拍在线观看一区| 久久综合九色综合97婷婷女人| 久久久综合视频| 国产精品日产欧美久久久久| 亚洲欧洲日产国码二区| 亚洲综合激情小说| 五月综合激情网| 国产精品综合视频| 色悠悠久久综合| 日韩一级片在线播放| 久久久国产精华| 一区二区三区在线免费观看| 日日夜夜免费精品视频| 国产一区二区在线观看免费| 成人视屏免费看| 欧美精品日日鲁夜夜添| 欧美哺乳videos| 亚洲欧美经典视频| 奇米色777欧美一区二区| 国产乱码精品一区二区三 | 国产一区二区三区四区五区入口| 国产成人综合视频| 欧美色图第一页| 久久综合狠狠综合久久激情| 亚洲丝袜精品丝袜在线| 日韩精彩视频在线观看| 国产成人精品午夜视频免费| 在线观看91视频| 久久久www成人免费毛片麻豆| 亚洲欧美电影院| 国产精品一线二线三线精华| 色婷婷久久久综合中文字幕| 精品国产一二三区| 一区二区三区高清不卡| 国产精品白丝av| 欧美美女视频在线观看| 国产精品久久久久aaaa| 免费一区二区视频| 日本乱人伦aⅴ精品| 久久久久久免费网| 免费亚洲电影在线| 欧美亚洲国产一区二区三区| 26uuu色噜噜精品一区二区| 亚洲一区二区三区四区的| 国产91在线观看| 日韩欧美国产一二三区| 亚洲一区影音先锋| av在线播放不卡| 久久久99久久| 精品一区二区免费看| 欧美精品丝袜久久久中文字幕| 国产精品久久久久久一区二区三区 | 一区二区三区中文字幕| 成人深夜视频在线观看| 精品免费国产一区二区三区四区| 亚洲自拍另类综合| 99久久er热在这里只有精品66| 久久久久久电影| 国产在线精品不卡| 欧美成人官网二区| 久久国产成人午夜av影院| 69精品人人人人| 亚洲成人www| 欧美日本视频在线| 日韩国产欧美三级| 欧美高清精品3d| 五月天一区二区三区| 欧美日韩国产另类不卡| 亚洲一区二区三区三| 欧美性xxxxx极品少妇| 亚洲一区二区三区免费视频| 欧美三级乱人伦电影| 亚洲成av人片一区二区|