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

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

?? sei.c

?? jm_frext22.ZIP的壓縮文件,主要用于嵌入式系統圖象的編解碼的開發.
?? C
?? 第 1 頁 / 共 4 頁
字號:
}


/*!
 ************************************************************************
 *  \brief
 *     Interpret the Progressive refinement segment end SEI message
 *  \param payload
 *     a pointer that point to the sei payload
 *  \param size
 *     the size of the sei message
 *  \param img
 *     the image pointer
 *    
 ************************************************************************
 */
void interpret_progressive_refinement_end_info( byte* payload, int size, ImageParameters *img )
{
  int progressive_refinement_id;

  Bitstream* buf;

  buf = malloc(sizeof(Bitstream));
  buf->bitstream_length = size;
  buf->streamBuffer = payload;
  buf->frame_bitoffset = 0;

  UsedBits = 0;

  progressive_refinement_id   = ue_v("SEI: progressive_refinement_id"  , buf);

#ifdef PRINT_PROGRESSIVE_REFINEMENT_END_INFO
  printf("Progressive refinement segment end SEI message\n");
  printf("progressive_refinement_id   = %d\n", progressive_refinement_id);
#endif
  free (buf);
#ifdef PRINT_PROGRESSIVE_REFINEMENT_END_INFO
#undef PRINT_PROGRESSIVE_REFINEMENT_END_INFO
#endif
}


/*!
 ************************************************************************
 *  \brief
 *     Interpret the Motion-constrained slice group set SEI message
 *  \param payload
 *     a pointer that point to the sei payload
 *  \param size
 *     the size of the sei message
 *  \param img
 *     the image pointer
 *    
 ************************************************************************
 */
void interpret_motion_constrained_slice_group_set_info( byte* payload, int size, ImageParameters *img )
{
  int num_slice_groups_minus1, slice_group_id, exact_match_flag, pan_scan_rect_flag, pan_scan_rect_id;
  int i;

  Bitstream* buf;

  buf = malloc(sizeof(Bitstream));
  buf->bitstream_length = size;
  buf->streamBuffer = payload;
  buf->frame_bitoffset = 0;

  UsedBits = 0;
  
  num_slice_groups_minus1   = ue_v("SEI: num_slice_groups_minus1"  , buf);
  
#ifdef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
  printf("Motion-constrained slice group set SEI message\n");
  printf("num_slice_groups_minus1   = %d\n", num_slice_groups_minus1);
#endif

  for (i=0; i<=num_slice_groups_minus1;i++)
  {
    slice_group_id   = ue_v("SEI: slice_group_id"  , buf);
#ifdef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
    printf("slice_group_id            = %d\n", slice_group_id);
#endif
  }
  
  exact_match_flag   = u_1("SEI: exact_match_flag"  , buf);
  pan_scan_rect_flag = u_1("SEI: pan_scan_rect_flag"  , buf);

#ifdef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
  printf("exact_match_flag         = %d\n", exact_match_flag);
  printf("pan_scan_rect_flag       = %d\n", pan_scan_rect_flag);
#endif
  
  if (pan_scan_rect_flag)
  {
    pan_scan_rect_id = ue_v("SEI: pan_scan_rect_id"  , buf);
#ifdef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
    printf("pan_scan_rect_id         = %d\n", pan_scan_rect_id);
#endif
  }

  free (buf);
#ifdef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
#undef PRINT_MOTION_CONST_SLICE_GROUP_SET_INFO
#endif
}


/*!
 ************************************************************************
 *  \brief
 *     Interpret the Reserved SEI message
 *  \param payload
 *     a pointer that point to the sei payload
 *  \param size
 *     the size of the sei message
 *  \param img
 *     the image pointer
 *    
 ************************************************************************
 */
void interpret_reserved_info( byte* payload, int size, ImageParameters *img )
{
  int offset = 0;
  byte payload_byte;

#ifdef PRINT_RESERVED_INFO
  printf("Reserved SEI message\n");
#endif
  assert (size<16);

  while (offset < size)
  {
    payload_byte = payload[offset];
    offset ++;
#ifdef PRINT_RESERVED_INFO
    printf("reserved_sei_message_payload_byte = %d\n", payload_byte);
#endif
  }
#ifdef PRINT_RESERVED_INFO
#undef PRINT_RESERVED_INFO
#endif
}


/*!
 ************************************************************************
 *  \brief
 *     Interpret the Buffering period SEI message
 *  \param payload
 *     a pointer that point to the sei payload
 *  \param size
 *     the size of the sei message
 *  \param img
 *     the image pointer
 *    
 ************************************************************************
 */
void interpret_buffering_period_info( byte* payload, int size, ImageParameters *img )
{
  int seq_parameter_set_id, initial_cpb_removal_delay, initial_cpb_removal_delay_offset;
  unsigned int k;

  Bitstream* buf;
  seq_parameter_set_rbsp_t *sps;

  buf = malloc(sizeof(Bitstream));
  buf->bitstream_length = size;
  buf->streamBuffer = payload;
  buf->frame_bitoffset = 0;

  UsedBits = 0;

  seq_parameter_set_id   = ue_v("SEI: seq_parameter_set_id"  , buf);
   sps = &SeqParSet[seq_parameter_set_id];

  activate_sps(sps);

#ifdef PRINT_BUFFERING_PERIOD_INFO
  printf("Buffering period SEI message\n");
  printf("seq_parameter_set_id   = %d\n", seq_parameter_set_id);
#endif

  if (sps->vui_seq_parameters.nal_hrd_parameters_present_flag)
  {
    for (k=0; k<sps->vui_seq_parameters.nal_hrd_parameters.cpb_cnt_minus1+1; k++)
    {
      initial_cpb_removal_delay        = u_v(sps->vui_seq_parameters.nal_hrd_parameters.cpb_removal_delay_length_minus1+1,
                                             "SEI: initial_cpb_removal_delay"         , buf);
      initial_cpb_removal_delay_offset = u_v(sps->vui_seq_parameters.nal_hrd_parameters.cpb_removal_delay_length_minus1+1,
                                             "SEI: initial_cpb_removal_delay_offset"  , buf);
#ifdef PRINT_BUFFERING_PERIOD_INFO
      printf("nal initial_cpb_removal_delay[%d]        = %d\n", k, initial_cpb_removal_delay);
      printf("nal initial_cpb_removal_delay_offset[%d] = %d\n", k, initial_cpb_removal_delay_offset);
#endif
    }
  }

  if (sps->vui_seq_parameters.vcl_hrd_parameters_present_flag)
  {
    for (k=0; k<sps->vui_seq_parameters.vcl_hrd_parameters.cpb_cnt_minus1+1; k++)
    {
      initial_cpb_removal_delay        = u_v(sps->vui_seq_parameters.vcl_hrd_parameters.cpb_removal_delay_length_minus1+1,
                                             "SEI: initial_cpb_removal_delay"         , buf);
      initial_cpb_removal_delay_offset = u_v(sps->vui_seq_parameters.vcl_hrd_parameters.cpb_removal_delay_length_minus1+1,
                                             "SEI: initial_cpb_removal_delay_offset"  , buf);
#ifdef PRINT_BUFFERING_PERIOD_INFO
      printf("vcl initial_cpb_removal_delay[%d]        = %d\n", k, initial_cpb_removal_delay);
      printf("vcl initial_cpb_removal_delay_offset[%d] = %d\n", k, initial_cpb_removal_delay_offset);
#endif
    }
  }

  free (buf);
#ifdef PRINT_BUFFERING_PERIOD_INFO
#undef PRINT_BUFFERING_PERIOD_INFO
#endif
}


/*!
 ************************************************************************
 *  \brief
 *     Interpret the Picture timing SEI message
 *  \param payload
 *     a pointer that point to the sei payload
 *  \param size
 *     the size of the sei message
 *  \param img
 *     the image pointer
 *    
 ************************************************************************
 */
void interpret_picture_timing_info( byte* payload, int size, ImageParameters *img )
{
  int cpb_removal_delay, dpb_output_delay, picture_structure_present_flag, picture_structure;
  int clock_time_stamp_flag;
  int ct_type, nuit_field_based_flag, counting_type, full_timestamp_flag, discontinuity_flag, cnt_dropped_flag, nframes;
  int seconds_value, minutes_value, hours_value, seconds_flag, minutes_flag, hours_flag, time_offset;
  int NumClockTs = 0;
  int i;

  Bitstream* buf;

  buf = malloc(sizeof(Bitstream));
  buf->bitstream_length = size;
  buf->streamBuffer = payload;
  buf->frame_bitoffset = 0;

  UsedBits = 0;

  assert (NULL!=active_sps);

#ifdef PRINT_PCITURE_TIMING_INFO
  printf("Picture timing SEI message\n");
#endif

  if ((active_sps->vui_seq_parameters.nal_hrd_parameters_present_flag)||
      (active_sps->vui_seq_parameters.vcl_hrd_parameters_present_flag))
  {
      cpb_removal_delay = ue_v("SEI: cpb_removal_delay" , buf);
      dpb_output_delay  = ue_v("SEI: dpb_output_delay"  , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
      printf("cpb_removal_delay = %d\n",cpb_removal_delay);
      printf("dpb_output_delay  = %d\n",dpb_output_delay);
#endif
  }

  picture_structure_present_flag  = u_1("SEI: picture_structure_present_flag"  , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
  printf("picture_structure_present_flag = %d\n",picture_structure_present_flag);
#endif
  if (picture_structure_present_flag)
  {
    picture_structure = u_v(3, "SEI: picture_structure" , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
    printf("picture_structure = %d\n",picture_structure);
#endif    
    switch (picture_structure)
    {
    case 0:
    case 1:
    case 2:
      NumClockTs = 1;
      break;
    case 3:
    case 4:
    case 7:
      NumClockTs = 2;
      break;
    case 5:
    case 6:
    case 8:
      NumClockTs = 3;
      break;
    default:
      error("reserved picture_structure used (can't determine NumClockTs)", 500);
    }
    for (i=0; i<NumClockTs; i++)
    {
      clock_time_stamp_flag = u_1("SEI: clock_time_stamp_flag"  , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
      printf("clock_time_stamp_flag = %d\n",clock_time_stamp_flag);
#endif
      if (clock_time_stamp_flag)
      {
        ct_type               = u_v(2, "SEI: ct_type"               , buf);
        nuit_field_based_flag = u_1(   "SEI: nuit_field_based_flag" , buf);
        counting_type         = u_v(5, "SEI: counting_type"         , buf);
        full_timestamp_flag   = u_1(   "SEI: full_timestamp_flag"   , buf);
        discontinuity_flag    = u_1(   "SEI: discontinuity_flag"    , buf);
        cnt_dropped_flag      = u_1(   "SEI: cnt_dropped_flag"      , buf);
        nframes               = u_v(8, "SEI: nframes"               , buf);

#ifdef PRINT_PCITURE_TIMING_INFO
        printf("ct_type               = %d\n",ct_type);
        printf("nuit_field_based_flag = %d\n",nuit_field_based_flag);
        printf("full_timestamp_flag   = %d\n",full_timestamp_flag);
        printf("discontinuity_flag    = %d\n",discontinuity_flag);
        printf("cnt_dropped_flag      = %d\n",cnt_dropped_flag);
        printf("nframes               = %d\n",nframes);
#endif    
        if (full_timestamp_flag)
        {
          seconds_value         = u_v(6, "SEI: seconds_value"   , buf);
          minutes_value         = u_v(6, "SEI: minutes_value"   , buf);
          hours_value           = u_v(5, "SEI: hours_value"     , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
          printf("seconds_value = %d\n",seconds_value);
          printf("minutes_value = %d\n",minutes_value);
          printf("hours_value   = %d\n",hours_value);
#endif    
        }
        else
        {
          seconds_flag          = u_1(   "SEI: seconds_flag" , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
          printf("seconds_flag = %d\n",seconds_flag);
#endif    
          if (seconds_flag)
          {
            seconds_value         = u_v(6, "SEI: seconds_value"   , buf);
            minutes_flag          = u_1(   "SEI: minutes_flag" , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
            printf("seconds_value = %d\n",seconds_value);
            printf("minutes_flag  = %d\n",minutes_flag);
#endif    
            if(minutes_flag)
            {
              minutes_value         = u_v(6, "SEI: minutes_value"   , buf);
              hours_flag            = u_1(   "SEI: hours_flag" , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
              printf("minutes_value = %d\n",minutes_value);
              printf("hours_flag    = %d\n",hours_flag);
#endif    
              if(hours_flag)
              {
                hours_value           = u_v(5, "SEI: hours_value"     , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
                printf("hours_value   = %d\n",hours_value);
#endif    
              }
            
            }
          }
        }
        if(active_sps->vui_seq_parameters.nal_hrd_parameters.time_offset_length) //!KS which HRD params shall be used?
        {
          time_offset=0;
          // time_offset = i_v(active_sps->vui_seq_parameters.nal_hrd_parameters.time_offset_length, "SEI: time_offset"   , buf);
#ifdef PRINT_PCITURE_TIMING_INFO
          printf("time_offset   = %d\n",time_offset);
#endif    
        }
      }
    }
  }

  free (buf);
#ifdef PRINT_PCITURE_TIMING_INFO
#undef PRINT_PCITURE_TIMING_INFO
#endif
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.亚洲免费av| 精品国产精品一区二区夜夜嗨| 91久久免费观看| 亚洲精品在线观看视频| 一区二区三区中文在线| 国产白丝精品91爽爽久久| 91精品国产综合久久小美女| 亚洲欧洲日韩女同| 国产一区二区三区免费观看| 欧美区在线观看| 亚洲妇熟xx妇色黄| 一本大道综合伊人精品热热| 久久久精品国产免大香伊| 日本中文字幕一区二区有限公司| 色婷婷av一区二区| 国产精品毛片高清在线完整版| 免费观看日韩电影| 51精品久久久久久久蜜臀| 亚洲制服丝袜av| 一本大道久久精品懂色aⅴ| 日本一区二区在线不卡| 国产精品99久久久久久久女警| 日韩欧美精品在线| 乱中年女人伦av一区二区| 欧美日韩视频在线观看一区二区三区 | 夜夜精品视频一区二区| 国产成a人无v码亚洲福利| 久久伊人中文字幕| 国产一区二区三区国产| 精品国产一区二区三区忘忧草| 麻豆国产欧美日韩综合精品二区| 欧美日韩国产免费| 日本不卡一二三| 欧美xxxxx裸体时装秀| 另类小说色综合网站| 久久综合九色综合欧美亚洲| 韩日精品视频一区| 久久亚洲精品小早川怜子| 国产精一品亚洲二区在线视频| 久久久久久久久久久久久女国产乱 | 国产精品萝li| 波多野结衣在线aⅴ中文字幕不卡| 久久亚洲春色中文字幕久久久| 久久成人羞羞网站| 天天综合网天天综合色| 91福利国产精品| 三级影片在线观看欧美日韩一区二区| 欧美日韩一区二区三区在线| 日韩在线a电影| 久久亚洲精华国产精华液 | 精品一区二区在线播放| 久久网站热最新地址| 国产91精品欧美| 亚洲黄色小视频| 666欧美在线视频| 国产乱码精品一区二区三区忘忧草| 国产欧美精品一区aⅴ影院| 91网站黄www| 久久国产夜色精品鲁鲁99| 国产三级三级三级精品8ⅰ区| 99久久久国产精品| 日本不卡视频一二三区| 国产日韩精品一区二区浪潮av | 亚洲欧美另类图片小说| 欧美日韩精品三区| 国产成人av电影在线| 亚洲一区二区四区蜜桃| 亚洲精品一区二区三区精华液| 99久免费精品视频在线观看 | 国产高清亚洲一区| 亚洲一本大道在线| 国产丝袜美腿一区二区三区| 91官网在线观看| 国产成人精品免费网站| 午夜精品福利一区二区三区蜜桃| 久久日韩精品一区二区五区| 94色蜜桃网一区二区三区| 美日韩一区二区三区| 亚洲欧美另类图片小说| 精品美女被调教视频大全网站| 一本色道久久综合精品竹菊| 麻豆成人91精品二区三区| 亚洲日本电影在线| 久久久不卡影院| 91精品黄色片免费大全| 色婷婷久久久亚洲一区二区三区| 国产传媒一区在线| 日本特黄久久久高潮 | 亚洲国产岛国毛片在线| 欧美精品18+| 在线影院国内精品| 成人黄色av电影| 国产精品白丝av| 精品一区二区三区的国产在线播放| 亚洲一二三四区| 亚洲精选视频在线| 亚洲人快播电影网| 国产精品私人自拍| 国产人伦精品一区二区| 337p粉嫩大胆噜噜噜噜噜91av | 精品久久久久久久久久久久包黑料| 欧美视频日韩视频| 精品视频1区2区3区| 色综合一区二区| 97国产一区二区| 91一区二区三区在线播放| caoporn国产一区二区| 粉嫩av亚洲一区二区图片| 国产一区二区三区日韩| 国产馆精品极品| 国产91综合一区在线观看| 国产盗摄女厕一区二区三区| 国产精品一卡二| 国产成a人亚洲精| 成人免费毛片高清视频| 国产**成人网毛片九色 | 中文字幕制服丝袜成人av| 久久久久久久久一| 国产精品视频yy9299一区| 久久精品一区四区| www国产亚洲精品久久麻豆| 久久久亚洲精品石原莉奈| 国产日韩av一区二区| 亚洲国产精品成人久久综合一区| 中文字幕的久久| 亚洲最快最全在线视频| 亚洲成人黄色小说| 蜜桃av一区二区三区电影| 国产一区二区三区视频在线播放| 国产福利精品一区| 色综合欧美在线| 欧美日韩免费不卡视频一区二区三区| 91精品国模一区二区三区| 精品国产伦理网| 国产精品久久久久9999吃药| 亚洲综合精品自拍| 日产国产高清一区二区三区 | 国产欧美一区二区三区鸳鸯浴| 久久精品综合网| 一片黄亚洲嫩模| 日本三级亚洲精品| av一区二区不卡| 欧美日韩国产首页| 国产日韩欧美一区二区三区综合| 17c精品麻豆一区二区免费| 亚洲va在线va天堂| 国产丶欧美丶日本不卡视频| 91极品视觉盛宴| 久久九九国产精品| 亚洲在线视频免费观看| 蜜乳av一区二区三区| 色综合久久99| 久久久亚洲综合| 日韩精品一级二级| 成人污视频在线观看| 欧美三电影在线| 国产精品你懂的| 蜜臀99久久精品久久久久久软件| 99久久精品免费看国产免费软件| 欧美男女性生活在线直播观看| 久久综合久久久久88| 婷婷久久综合九色综合绿巨人| 成人精品视频一区| 欧美xxxxx牲另类人与| 亚洲一区二区偷拍精品| 大桥未久av一区二区三区中文| 欧美日韩久久久一区| 亚洲欧洲精品一区二区精品久久久 | av不卡在线播放| 欧美mv日韩mv国产网站app| 亚洲另类一区二区| 成人18精品视频| 精品国产一区二区三区久久影院| 亚洲高清在线视频| 99re这里只有精品首页| 国产性天天综合网| 久色婷婷小香蕉久久| 欧美日韩日日骚| 亚洲一区二区欧美| 97久久久精品综合88久久| 久久久精品欧美丰满| 精品一二线国产| 欧美一区二区不卡视频| 亚洲午夜在线观看视频在线| 99久精品国产| 综合av第一页| 99视频精品全部免费在线| 久久精品一二三| 国产在线播放一区| 欧美r级在线观看| 狠狠色伊人亚洲综合成人| 欧美一级xxx| 久久99精品一区二区三区 | 精品粉嫩aⅴ一区二区三区四区| 午夜欧美视频在线观看| 欧美日韩中字一区| 午夜精品久久久久久久久久久| 欧美日韩久久久久久| 亚洲123区在线观看| 欧美日韩一二三|