Ejemplo n.º 1
0
static int encode_time (session_time_desc_t *tptr, sdp_encode_t *se)
{
  uint64_t start, end;
  time_repeat_desc_t *rptr;
  uint32_t ix;
  char buffer[80];
  
  while (tptr != NULL) {
    start = tptr->start_time;
    if (start != 0) start += NTP_TO_UNIX_TIME;
    end = tptr->end_time;
    if (end != 0) end += NTP_TO_UNIX_TIME;

    sprintf(buffer, "t="U64" "U64"\n", start, end);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);

    rptr = tptr->repeat;
    while (rptr != NULL) {
      ADD_STR_TO_ENCODE_WITH_RETURN(se, "r=");
      sdp_time_offset_to_str(rptr->repeat_interval, buffer, sizeof(buffer));
      ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
      ADD_STR_TO_ENCODE_WITH_RETURN(se, " ");
      sdp_time_offset_to_str(rptr->active_duration, buffer, sizeof(buffer));
      ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
      for (ix = 0; ix < rptr->offset_cnt; ix++) {
	sprintf(buffer, " %d", rptr->offsets[ix]);
	ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
      }
      ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
      rptr = rptr->next;
    }
    tptr = tptr->next;
  }
  return (0);
}
Ejemplo n.º 2
0
static void time_repeat_dump (time_repeat_desc_t *trptr)
{
  int morethan1;
  char buffer[80], *start;
  int cnt;
  uint32_t ix;

  morethan1 = trptr != NULL && trptr->next != NULL;
  cnt = 0;
  
  while (trptr != NULL) {
    if (morethan1) {
      printf("Repeat %d:\n", cnt + 1);
      start = "\t";
    } else {
      start = "";
    }
    cnt++;
    sdp_time_offset_to_str(trptr->repeat_interval, buffer, sizeof(buffer));
    printf("%sRepeat Interval: %s\n", start, buffer);
    sdp_time_offset_to_str(trptr->active_duration, buffer, sizeof(buffer));
    printf("%sDuration of session: %s\n", start, buffer);
    printf("%sOffsets: ", start);
    for (ix = 0; ix < trptr->offset_cnt; ix++) {
      sdp_time_offset_to_str(trptr->offsets[ix], buffer, sizeof(buffer));
      printf("%s ", buffer);
      if ((ix % 8) == 0) {
	printf("\n%s", start);
      }
    }
    trptr = trptr->next;
  }
}
Ejemplo n.º 3
0
static int encode_time_adj (time_adj_desc_t *aptr, sdp_encode_t *se)
{
  uint64_t time_val;
  uint32_t offset;
  uint32_t len;
  char buffer[40], *buff;
  int dohead;

  if (aptr == NULL) return (0);
  
  dohead = TRUE;
  while (aptr != NULL) {
    ADD_STR_TO_ENCODE_WITH_RETURN(se, dohead ? "z=" : " ");
	time_val = aptr->adj_time + NTP_TO_UNIX_TIME;
    sprintf(buffer, U64" ", time_val);
    ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
    if (aptr->offset < 0) {
      offset = (0 - aptr->offset);
      buffer[0] = '-';
      buff = &buffer[1];
      len = sizeof(buffer) - 1;
    } else {
      offset = aptr->offset;
      buff = buffer;
      len = sizeof(buffer);
    }
    sdp_time_offset_to_str(offset, buff, len);
    
    ADD_STR_TO_ENCODE_WITH_RETURN(se, buffer);
    if (dohead == FALSE)
      ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
    dohead = !dohead;
    aptr = aptr->next;
  }
  if (dohead == FALSE)
    ADD_STR_TO_ENCODE_WITH_RETURN(se, "\n");
  return (0);
}