sdp_mca_t *sdp_alloc_mca () { sdp_mca_t *mca_p; /* Allocate resource for new media stream. */ mca_p = (sdp_mca_t *)SDP_MALLOC(sizeof(sdp_mca_t)); if (mca_p == NULL) { return (NULL); } /* Initialize mca structure */ mca_p->media = SDP_MEDIA_INVALID; mca_p->conn.nettype = SDP_NT_INVALID; mca_p->conn.addrtype = SDP_AT_INVALID; mca_p->conn.conn_addr[0] = '\0'; mca_p->conn.is_multicast = FALSE; mca_p->conn.ttl = 0; mca_p->conn.num_of_addresses = 0; mca_p->transport = SDP_TRANSPORT_INVALID; mca_p->port = SDP_INVALID_VALUE; mca_p->num_ports = SDP_INVALID_VALUE; mca_p->vpi = SDP_INVALID_VALUE; mca_p->vci = 0; mca_p->vcci = SDP_INVALID_VALUE; mca_p->cid = SDP_INVALID_VALUE; mca_p->num_payloads = 0; mca_p->sessinfo_found = FALSE; mca_p->encrypt.encrypt_type = SDP_ENCRYPT_INVALID; mca_p->media_attrs_p = NULL; mca_p->next_p = NULL; mca_p->mid = 0; mca_p->bw.bw_data_count = 0; mca_p->bw.bw_data_list = NULL; return (mca_p); }
/* Function: sdp_init_description * Description: Allocates a new SDP structure that can be used for either * parsing or building an SDP description. This routine * saves the config pointer passed in the SDP structure so * SDP will know how to parse/build based on the options defined. * An SDP structure must be allocated before parsing or building * since the handle must be passed to these routines. * Parameters: config_p The config handle returned by sdp_init_config * Returns: A handle for a new SDP structure as a void ptr. */ sdp_t *sdp_init_description (const char *peerconnection, void *config_p) { int i; sdp_t *sdp_p; sdp_conf_options_t *conf_p = (sdp_conf_options_t *)config_p; if (sdp_verify_conf_ptr(conf_p) == FALSE) { return (NULL); } sdp_p = (sdp_t *)SDP_MALLOC(sizeof(sdp_t)); if (sdp_p == NULL) { return (NULL); } sstrncpy(sdp_p->peerconnection, peerconnection, sizeof(sdp_p->peerconnection)); /* Initialize magic number. */ sdp_p->magic_num = SDP_MAGIC_NUM; sdp_p->conf_p = conf_p; sdp_p->version = SDP_CURRENT_VERSION; sdp_p->owner_name[0] = '\0'; sdp_p->owner_sessid[0] = '\0'; sdp_p->owner_version[0] = '\0'; sdp_p->owner_network_type = SDP_NT_INVALID; sdp_p->owner_addr_type = SDP_AT_INVALID; sdp_p->owner_addr[0] = '\0'; sdp_p->sessname[0] = '\0'; sdp_p->sessinfo_found = FALSE; sdp_p->uri_found = FALSE; sdp_p->default_conn.nettype = SDP_NT_INVALID; sdp_p->default_conn.addrtype = SDP_AT_INVALID; sdp_p->default_conn.conn_addr[0] = '\0'; sdp_p->default_conn.is_multicast = FALSE; sdp_p->default_conn.ttl = 0; sdp_p->default_conn.num_of_addresses = 0; sdp_p->bw.bw_data_count = 0; sdp_p->bw.bw_data_list = NULL; sdp_p->timespec_p = NULL; sdp_p->sess_attrs_p = NULL; sdp_p->mca_p = NULL; sdp_p->mca_count = 0; /* Set default debug flags from application config. */ for (i=0; i < SDP_MAX_DEBUG_TYPES; i++) { sdp_p->debug_flag[i] = conf_p->debug_flag[i]; } return (sdp_p); }