Пример #1
0
static char * def2portstr()
{
 int num;
 unsigned short * ports = (unsigned short*)getpts("default", &num);
 char * str;
 int i;

  str = emalloc(num * 5 + 1);
  for(i=0;i<num;i++)
  {
    char tmp[40];
    snprintf(tmp, sizeof(tmp), "%d", ports[i]);
    if(str[0] != '\0')
        strcat(str, ",");
    strcat(str, tmp);
  } 
  
  return str;
}
Пример #2
0
    CullView()
    {
        fClip.set(0, 0, SkIntToScalar(160), SkIntToScalar(160));

        SkRandom    rand;

        for (int i = 0; i < 50; i++) {
            int x = nextScalarRange(rand, -fClip.width()*1, fClip.width()*2);
            int y = nextScalarRange(rand, -fClip.height()*1, fClip.height()*2);
            if (i == 0)
                fPath.moveTo(x, y);
            else
                fPath.lineTo(x, y);
        }

        SkScalar bump = fClip.width()/8;
        subdivide(&fPath, bump);
        subdivide(&fPath, bump);
        subdivide(&fPath, bump);
        fPoints = getpts(fPath, &fPtCount);
    }
Пример #3
0
tree_cell * nasl_scanner_get_port(lex_ctxt * lexic)
{
 tree_cell * retc;
 int idx = get_int_var_by_num(lexic, 0, -1);
 struct arglist * script_infos = lexic->script_infos;
 struct arglist * prefs = arg_get_value(script_infos, "preferences");
 char  *prange = arg_get_value(prefs, "port_range");
 static int num = 0;
 static u_short * ports = NULL;

 if (prange == NULL)
   return NULL; 

 if(idx < 0)
 {
 	nasl_perror(lexic, "Argument error in scanner_get_port()\n");
	nasl_perror(lexic, "Correct usage is : num = scanner_get_port(<num>)\n");
	nasl_perror(lexic, "Where <num> should be 0 the first time you call it\n");
	return NULL;
 }

 if (ports == NULL)
   {
     ports = (u_short*)getpts(prange, &num);
     if (ports == NULL)
       {
	 return NULL;
       }
   }
  
 if(idx >= num)
   {
    return NULL;
   }
 
 retc = alloc_tree_cell(0, NULL);
 retc->type = CONST_INT;
 retc->x.i_val = ports[idx];
 return retc;
}
Пример #4
0
static event_t *
dvd_pes(dvd_player_t *dp, uint32_t sc, uint8_t *buf, int len)
{
  media_pipe_t *mp = dp->dp_mp;
  media_queue_t *mq;
  uint8_t flags, hlen, x;
  int64_t dts = AV_NOPTS_VALUE, pts = AV_NOPTS_VALUE;
  int rlen, outlen, data_type = 0, rate = 0;
  uint8_t *outbuf;
  int type, track;
  media_codec_t *cw, **cwp;
  AVCodecContext *ctx;
  enum CodecID codec_id;
  AVRational mpeg_tc = {1, 90000};
  event_t *e;
  media_codec_params_t mcp = {0};

  x     = getu8(buf, len);
  flags = getu8(buf, len);
  hlen  = getu8(buf, len);
  
  if(len < hlen)
    return NULL;

  if((x & 0xc0) != 0x80)
    /* no MPEG 2 PES */
    return NULL;

  if((flags & 0xc0) == 0xc0) {
    if(hlen < 10)
      return NULL;

    pts = getpts(buf, len);
    dts = getpts(buf, len);

    hlen -= 10;
  } else if((flags & 0xc0) == 0x80) {
    if(hlen < 5)
      return NULL;

    dts = pts = getpts(buf, len);
    hlen -= 5;
  }

  buf += hlen;
  len -= hlen;

  if(sc == PRIVATE_STREAM_1) {
    if(len < 1)
      return NULL;
      
    sc = getu8(buf, len);
    if(sc >= 0x80 && sc <= 0xbf) {
      /* audio, skip heeader */
      if(len < 3)
	return NULL;
      buf += 3;
      len -= 3;
    }
  }

  if(sc > 0x1ff)
    return NULL;

  if(sc >= 0x1e0 && sc <= 0x1ef) {
    codec_id  = CODEC_ID_MPEG2VIDEO;
    type      = CODEC_TYPE_VIDEO;
    data_type = MB_VIDEO;
    rate = dp->dp_aspect_override;
    cwp = &dp->dp_video;
    mq = &mp->mp_video;

    mcp.width = dp->dp_vwidth;
    mcp.height = dp->dp_vheight;

  } else if((sc >= 0x80 && sc <= 0x9f) || (sc >= 0x1c0 && sc <= 0x1df)) {

    if(dp->dp_audio_track == DP_AUDIO_DISABLE)
      return NULL;
    
    track = dp->dp_audio_track == DP_AUDIO_FOLLOW_VM ? 
      dp->dp_audio_track_vm : dp->dp_audio_track;

    if((sc & 7) != track)
      return NULL;

    type = CODEC_TYPE_AUDIO;
    data_type = MB_AUDIO;

    switch(sc) {
    case 0x80 ... 0x87:
      codec_id = CODEC_ID_AC3;
      rate = 48000;
      break;
	    
    case 0x88 ... 0x9f:
      codec_id = CODEC_ID_DTS;
      rate = 48000;
      break;

    case 0x1c0 ... 0x1df:
      codec_id = CODEC_ID_MP2;
      rate = 48000;
      break;
    default:
      return NULL;
    }
    cwp = &dp->dp_audio;
    mq = &mp->mp_audio;

  } else if (sc >= 0x20 && sc <= 0x3f) {