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

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

?? explicit_gop.c

?? h264標準的VC實現
?? C
?? 第 1 頁 / 共 2 頁
字號:
      {
        //! Next is Display Order
        if (order_read == 0)
        {
          if (isdigit((int)(*(input->ExplicitPyramidFormat+i))))
          {
            sscanf(input->ExplicitPyramidFormat+i,"%d",&display_no);
            gop_structure[coded_frame].display_no = display_no;
            order_read = 1;
            if (display_no<0 || display_no>=input->jumpd)
            {
              snprintf(errortext, ET_SIZE, "Invalid Frame Order value. Frame position needs to be in [0,%d] range.",input->jumpd-1);
              error (errortext, 400);          
            }
            for (k=0;k<coded_frame;k++)
            {
              if (gop_structure[k].display_no == display_no)
              {
                snprintf(errortext, ET_SIZE, "Frame Order value %d in frame %d already used for enhancement frame %d.",display_no,coded_frame,k);
                error (errortext, 400);          
              }
            }
          }
          else
          {
            snprintf(errortext, ET_SIZE, "Slice Type needs to be followed by Display Order. Please check configuration file.");
            error (errortext, 400);
          }
        }
        else if (order_read == 1)
        { 
          if (stored_read == 0 && !(isdigit((int)(*(input->ExplicitPyramidFormat+i)))))
          {
            switch (input->ExplicitPyramidFormat[i])
            {
            case 'E':
            case 'e':
              gop_structure[coded_frame].reference_idc = NALU_PRIORITY_DISPOSABLE;
              break;
            case 'R':
            case 'r':
              gop_structure[coded_frame].reference_idc= NALU_PRIORITY_HIGH;
              break;
            default:
              snprintf(errortext, ET_SIZE, "Reference_IDC invalid in ExplicitPyramidFormat param. Please check configuration file.");
              error (errortext, 400);
              break;
            }
            stored_read = 1;          
          }
          else if (stored_read == 1 && qp_read == 0)
          {
            if (isdigit((int)(*(input->ExplicitPyramidFormat+i))))
            {
              sscanf(input->ExplicitPyramidFormat+i,"%d",&qp);
              gop_structure[coded_frame].slice_qp= qp;
                qp_read = 1;
                if (qp<0 || qp>51)
                {
                  snprintf(errortext, ET_SIZE, "Invalid QP value. Please check configuration file.");
                  error (errortext, 400);          
                }
            }
            else
            {
              snprintf(errortext, ET_SIZE, "Reference_IDC needs to be followed by QP. Please check configuration file.");
              error (errortext, 400);
            }
          }
          else if (stored_read == 1 && qp_read == 1 && !(isdigit((int)(*(input->ExplicitPyramidFormat+i)))) && (i < nLength - 2))
          {
            stored_read =0;
            qp_read=0;
            order_read=0;
            slice_read=0;
            i--;
            coded_frame ++;
            if (coded_frame >= input->jumpd )
            {
              snprintf(errortext, ET_SIZE, "Total number of frames in Enhancement GOP need to be fewer or equal to FrameSkip parameter.");
              error (errortext, 400);
            }
            
          }
        }
        
      }      
    }
  }
  else
  {
    snprintf(errortext, ET_SIZE, "ExplicitPyramidFormat is empty. Please check configuration file.");
    error (errortext, 400);
  }

  input->successive_Bframe = coded_frame + 1;
}


/*!
************************************************************************
* \brief
*    Encode Enhancement Layer. 
************************************************************************
*/
void encode_enhancement_layer()
{
    if ((input->successive_Bframe != 0) && (IMG_NUMBER > 0)) // B-frame(s) to encode
    {
      img->type = B_SLICE;            // set image type to B-frame
      
      if (input->NumFramesInELSubSeq == 0) 
        img->layer = 0;
      else 
        img->layer = 1;
      
      if (input->StoredBPictures == 0 && input->PyramidCoding==0)
      {
        img->frame_num++;                 //increment frame_num once for B-frames
        img->frame_num %= (1 << (log2_max_frame_num_minus4 + 4));
      }
      img->nal_reference_idc = 0;     

      //if (input->PyramidCoding == 3 || input->PyramidCoding == 1)
      if (input->PyramidCoding)
      {
        for(img->b_frame_to_code=1; img->b_frame_to_code<=input->successive_Bframe; img->b_frame_to_code++)
        {
          
          img->nal_reference_idc = 0;     

          img->type = gop_structure[img->b_frame_to_code - 1].slice_type;

          if (gop_structure[img->b_frame_to_code - 1].reference_idc== NALU_PRIORITY_HIGH )            
          {
            img->nal_reference_idc = 1;
            img->frame_num++;                 //increment frame_num for each stored B slice
            img->frame_num %= (1 << (log2_max_frame_num_minus4 + 4));
          } 

          img->b_interval =
            ((double) (input->jumpd + 1) / (input->successive_Bframe + 1.0) );

          if (input->PyramidCoding == 3)
            img->b_interval = 1.0;
          
          img->toppoc = 2*((IMG_NUMBER-1)*(input->jumpd + 1) + (int) (img->b_interval * (double)(1 + gop_structure[img->b_frame_to_code - 1].display_no)));      

          if (img->b_frame_to_code == 1)
            img->delta_pic_order_cnt[0] = img->toppoc - 2*(start_tr_in_this_IGOP  + (IMG_NUMBER)*((input->jumpd+1)));
          else
            img->delta_pic_order_cnt[0] = img->toppoc - 2*(start_tr_in_this_IGOP  + (IMG_NUMBER-1)*((input->jumpd+1)) + (int) (2.0 *img->b_interval * (double) (1+ gop_structure[img->b_frame_to_code - 2].display_no)));

          if ((input->PicInterlace==FRAME_CODING)&&(input->MbInterlace==FRAME_CODING))
            img->bottompoc = img->toppoc;     //progressive
          else 
            img->bottompoc = img->toppoc+1;
          
          img->framepoc = min (img->toppoc, img->bottompoc);
          
          img->delta_pic_order_cnt[1]= 0;   // POC200301
          
          encode_one_frame();  // encode one B-frame
          if (input->ReportFrameStats)
            report_frame_statistic();
        }
        img->b_frame_to_code = 0;
      }
      else 
      {      
        for(img->b_frame_to_code=1; img->b_frame_to_code<=input->successive_Bframe; img->b_frame_to_code++)
        {
          
          img->nal_reference_idc = 0;     
          if (input->StoredBPictures == 1 )
            
          {
            img->nal_reference_idc = 1;
            img->frame_num++;                 //increment frame_num once for B-frames
            img->frame_num %= (1 << (log2_max_frame_num_minus4 + 4));
          }

          img->b_interval =
            ((double) (input->jumpd + 1) / (input->successive_Bframe + 1.0) );

          if (input->PyramidCoding == 3)
            img->b_interval = 1.0;
          
          img->toppoc = 2*((IMG_NUMBER-1)*(input->jumpd+1) + (int) (img->b_interval * (double)img->b_frame_to_code));      


          if ((input->PicInterlace==FRAME_CODING)&&(input->MbInterlace==FRAME_CODING))
            img->bottompoc = img->toppoc;     //progressive
          else 
            img->bottompoc = img->toppoc+1;
          
          img->framepoc = min (img->toppoc, img->bottompoc);
          
          //the following is sent in the slice header
          if (!input->StoredBPictures)
          {
            img->delta_pic_order_cnt[0]= 2*(img->b_frame_to_code-1);
          }
          else
          {
            img->delta_pic_order_cnt[0]= -2;
          }
          
          img->delta_pic_order_cnt[1]= 0;   // POC200301
          
          encode_one_frame();  // encode one B-frame
          if (input->ReportFrameStats)
            report_frame_statistic();
        }
      }
    }
    img->b_frame_to_code = 0;
}


void poc_based_ref_management(int current_pic_num)
{
  unsigned i, pic_num = 0;

  int min_poc=INT_MAX;
  DecRefPicMarking_t *tmp_drpm,*tmp_drpm2;

  if (img->dec_ref_pic_marking_buffer!=NULL)
    return;

  if ((dpb.ref_frames_in_buffer+dpb.ltref_frames_in_buffer)==0)
    return;

  for (i=0; i<dpb.used_size;i++)
  {
    if (dpb.fs[i]->is_reference  && (!(dpb.fs[i]->is_long_term)) && dpb.fs[i]->poc < min_poc)
    {
      min_poc = dpb.fs[i]->frame->poc ;
      pic_num =  dpb.fs[i]->frame->pic_num;
    }
  }
  
  tmp_drpm=(DecRefPicMarking_t*)calloc (1,sizeof (DecRefPicMarking_t));
  tmp_drpm->Next=NULL;
  
  tmp_drpm->memory_management_control_operation = 0;
  
  tmp_drpm2=(DecRefPicMarking_t*)calloc (1,sizeof (DecRefPicMarking_t));
  tmp_drpm2->Next=tmp_drpm;
  
  tmp_drpm2->memory_management_control_operation = 1;
  tmp_drpm2->difference_of_pic_nums_minus1 = current_pic_num - pic_num - 1;
  img->dec_ref_pic_marking_buffer = tmp_drpm2;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品www牛牛影视| 日韩一区二区免费视频| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美色综合| 国产精品久久久久久福利一牛影视| 色综合久久久久久久| 欧美xxxxx裸体时装秀| 亚洲一二三区在线观看| 国产一区二区在线影院| 欧美日韩久久不卡| 亚洲精品视频自拍| 国产精品一线二线三线精华| 欧美伦理电影网| 一区二区三区日本| 91同城在线观看| 亚洲国产精品传媒在线观看| 久久精品二区亚洲w码| 欧美中文字幕不卡| 亚洲天堂免费看| 从欧美一区二区三区| 精品国一区二区三区| 免费成人av在线播放| 欧美日韩精品一区二区三区| 一个色综合网站| 色8久久精品久久久久久蜜| 国产精品午夜在线观看| 国产精品夜夜嗨| 精品国内二区三区| 国产一区二区女| 26uuu亚洲综合色欧美| 久久er99精品| 久久婷婷一区二区三区| 国产一区欧美日韩| 中国av一区二区三区| 不卡区在线中文字幕| 亚洲国产成人一区二区三区| 国产成人在线色| 国产精品欧美久久久久无广告 | 欧美大片拔萝卜| 欧美aaaaa成人免费观看视频| 狠狠色丁香婷综合久久| 91精品国产色综合久久ai换脸| www激情久久| 国产成人在线色| 国产精品对白交换视频| 91污在线观看| 亚洲黄色av一区| 欧美日韩电影在线播放| 乱一区二区av| 中文字幕第一区| 一本在线高清不卡dvd| 亚洲一本大道在线| 日韩欧美国产麻豆| 精品一区二区三区欧美| 亚洲国产激情av| 色婷婷久久一区二区三区麻豆| 精品国产成人系列| 国产99精品国产| 一区二区国产盗摄色噜噜| 欧美精品丝袜中出| 国产揄拍国内精品对白| 国内精品不卡在线| 中文字幕字幕中文在线中不卡视频| 婷婷丁香激情综合| 久久久www成人免费毛片麻豆 | 亚洲丝袜美腿综合| 欧美高清性hdvideosex| 美女视频黄久久| 精品少妇一区二区| 日本韩国欧美国产| 久久99热国产| 一区二区三区欧美日| 精品国产成人在线影院| 欧美在线观看一区| 国产乱妇无码大片在线观看| 亚洲午夜一区二区三区| 国产午夜亚洲精品不卡| 在线视频你懂得一区二区三区| 亚洲色图.com| 26uuu欧美日本| 91黄色免费网站| 国产成a人无v码亚洲福利| 日韩电影在线一区二区三区| 国产精品国产馆在线真实露脸 | 丝袜诱惑亚洲看片| 国产日产精品一区| 欧美一区二区美女| 91久久国产综合久久| 国产精品主播直播| 视频一区在线播放| 亚洲午夜精品在线| 亚洲三级在线免费观看| 久久精品人人做人人爽人人| 制服丝袜亚洲色图| 欧美亚洲国产一区二区三区| 成人精品电影在线观看| 韩国午夜理伦三级不卡影院| 日韩黄色小视频| 亚洲自拍都市欧美小说| 亚洲视频一区二区免费在线观看| 成人国产电影网| 国产久卡久卡久卡久卡视频精品| 日韩欧美一区电影| 欧美日韩免费观看一区二区三区| 一区二区三区四区不卡在线| 国产清纯美女被跳蛋高潮一区二区久久w| 视频一区二区国产| 一区二区成人在线| 亚洲国产另类av| 亚洲综合精品久久| 综合av第一页| 国产精品成人免费| 亚洲欧美中日韩| 一区视频在线播放| 自拍偷拍亚洲综合| 亚洲天堂av老司机| 亚洲三级免费观看| 亚洲四区在线观看| 亚洲女子a中天字幕| 一区二区三区电影在线播| 亚洲女爱视频在线| 亚洲综合在线五月| 天堂va蜜桃一区二区三区漫画版 | 亚洲婷婷综合色高清在线| 国产精品网曝门| 国产欧美精品一区| 欧美激情在线一区二区| 国产精品国产自产拍高清av王其| 欧美日韩亚洲综合在线| 欧美一区二区日韩一区二区| 精品国产一区二区三区av性色| 国产91精品精华液一区二区三区| 一区二区三区在线视频播放| 亚洲欧美日韩一区二区 | 中文字幕日韩一区二区| 成人免费在线视频| 亚洲美女屁股眼交| 亚洲国产一区二区视频| 日本亚洲天堂网| 黄色精品一二区| 成人高清av在线| 欧美日韩精品欧美日韩精品| 日韩免费福利电影在线观看| 精品久久久久久久人人人人传媒| 欧美日韩精品免费| 久久久夜色精品亚洲| 亚洲另类一区二区| 男女激情视频一区| proumb性欧美在线观看| 欧美日韩精品高清| 久久久精品欧美丰满| 一区二区视频免费在线观看| 午夜一区二区三区在线观看| 激情国产一区二区 | 国产另类ts人妖一区二区| 国产麻豆精品一区二区| 91在线精品一区二区三区| 欧美日韩精品欧美日韩精品一| 成人高清视频在线| 欧美一区二区黄色| 日韩一区中文字幕| 精品无码三级在线观看视频| 91在线视频观看| 精品粉嫩aⅴ一区二区三区四区| 在线观看视频91| 国产日产精品1区| 日本亚洲最大的色成网站www| 亚洲va在线va天堂| www.综合网.com| 精品久久久网站| 五月天久久比比资源色| 北条麻妃国产九九精品视频| 精品国产乱码久久久久久图片| 欧美一级片免费看| 亚洲精品高清视频在线观看| 国产精品一二三区| 精品欧美一区二区久久| 午夜电影久久久| 在线观看成人小视频| 国产精品国产三级国产普通话三级 | 337p亚洲精品色噜噜狠狠| 自拍偷在线精品自拍偷无码专区| 综合激情成人伊人| 国产麻豆视频精品| 欧美精品一区二区三区在线播放| 久久久777精品电影网影网| 轻轻草成人在线| 欧美剧情电影在线观看完整版免费励志电影 | 欧美日韩高清一区| 亚洲美女视频在线| 91视频免费观看| ...av二区三区久久精品| 伦理电影国产精品| 欧美大尺度电影在线| 亚洲国产精品久久久男人的天堂| 久久国产精品区| 日韩欧美成人一区二区| 日本视频在线一区| 欧美xxx久久| 国产在线播放一区二区三区|